Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
¿Cómo puedo conceder a un usuario acceso a una carpeta específica de mi bucket de Amazon S3?
Quiero restringir el acceso de un usuario de AWS Identity and Access Management (IAM) a carpetas específicas de Amazon Simple Storage Service (Amazon S3).
Resolución
Si el usuario y el bucket de IAM pertenecen a la misma cuenta de AWS, utilice una política de IAM para conceder al usuario acceso a la carpeta del bucket. Cuando concede acceso en la política de IAM, no necesita actualizar la política de bucket. Sin embargo, si la política de bucket deniega explícitamente al usuario de IAM el acceso a la carpeta, debe actualizar la política de bucket.
Si el usuario de IAM y el bucket de S3 pertenecen a cuentas diferentes, conceda acceso tanto en la política de IAM como en la política de bucket. Para obtener más información, consulte ¿Cómo puedo conceder a un usuario de otra cuenta de AWS el acceso para cargar objetos en mi bucket de Amazon S3?
Puede conceder acceso a uno o varios usuarios en la política de IAM. Para varios usuarios, la política puede incluir grupos o un ID de AWS IAM Identity Center.
Concesión de acceso a un solo usuario
Para conceder acceso a un único usuario solo para su carpeta, cree una política de IAM.
Ejemplo de política:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowStatement1", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowStatement2A", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/", "home/David" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowStatement3", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/David/*" ] } } }, { "Sid": "AllowStatement4A", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/David/*" ] } ] }
En la política, puede incluir instrucciones como las siguientes:
- Use AllowStatement1 para permitir al usuario enumerar los buckets que pertenecen a su cuenta y navegar hasta el bucket en la consola.
- Use AllowStatement2A para permitir al usuario enumerar las carpetas en DOC-EXAMPLE-BUCKET y navegar hasta la carpeta de la consola.
- Use AllowStatement3 para permitir al usuario enumerar el contenido de la carpeta DOC-EXAMPLE-BUCKET/home/Username.
- Use AllowStatement4A para permitir todas las acciones, como los permisos de lectura, escritura y eliminación, únicamente en la carpeta DOC-EXAMPLE-BUCKET/home/Username.
Uso de una política de grupo para conceder acceso a varios usuarios
Use variables de política para crear una política de grupo para varios usuarios.
Ejemplo de política de bucket que usa la variable de política ${aws:username}:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGroupToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfCompanyBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/${aws:username}/*", "home/${aws:username}" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/${aws:username}/*" ] } ] }
La política anterior usa la clave aws:username y devuelve el nombre descriptivo del usuario, como «Adele» o «David». También puede usar un ID único cuando el valor aws:username no sea válido para un rol de IAM específico. Para obtener más información, consulte Valores clave principales.
Los usuarios de IAM pueden enumerar todos los prefijos del nivel principal, como DOC-EXAMPLE-BUCKET/. Los usuarios también pueden navegar a su directorio principal en cualquier cliente de interfaz gráfica de usuario (GUI). Si no proporciona la acción Enumerar en el nivel principal, debe usar una interfaz de la línea de comandos para acceder a la carpeta especificada.
Uso de AWS IAM Identity Center para conceder acceso a varios usuarios
Puede controlar el acceso a una carpeta de bucket de S3 en función de la entidad principal de AWS IAM Identity Center. Cada usuario del directorio de IAM Identity Center tiene un ID de usuario único. Use la variable de política ${identitystore:UserId} para cada usuario al que quiera restringir el acceso a la carpeta.
Al crear la carpeta de S3, use un nombre de carpeta que corresponda al ID del usuario en el directorio de IAM Identity Center. Por ejemplo, el usuario John tiene un ID de usuario único: 1111111111-2a2aaa222-bb33-4444-5555-5cc5555c555c. Para administrar a John, cree una carpeta para John en el bucket de S3 con el nombre /home/1111111111-2a2aaa222-bb33-4444-5555-5cc5555c555c. Para encontrar los ID de usuario de sus usuarios, navegue hasta cada usuario en la consola de IAM Identity Center o utilice la API DescribeUser.
El siguiente ejemplo de política de IAM usa la variable ${identitystore:UserId}:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGroupToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfCompanyBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringEquals": { "s3:prefix": [ "", "home/" ], "s3:delimiter": [ "/" ] } } }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ], "Condition": { "StringLike": { "s3:prefix": [ "home/${identitystore:UserId}/*", "home/${identitystore:UserId}" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/home/${identitystore:UserId}/*" ] } ] }
Información relacionada
Control del acceso a un bucket con las políticas de usuario
Ejemplos: claves de condición de Amazon S3 para operaciones de bucket
Pruebas de políticas de IAM con el simulador de política de IAM
- Temas
- Storage
- Etiquetas
- Amazon Simple Storage Service
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace un año
- preguntada hace 3 meses
- preguntada hace 8 meses