Acciones de Amazon S3 - Amazon Simple Storage Service

Acciones de Amazon S3

Amazon S3 define un conjunto de permisos que se pueden especificar en una política. Estas son las palabras clave, cada una de las cuales se asigna a una operación específica de Amazon S3. Para obtener más información sobre las operaciones de Amazon S3, consulte Actions en la referencia de la API de Amazon Simple Storage Service.

Para ver cómo especificar permisos en una política de Amazon S3, revise las siguientes políticas de ejemplo. Para obtener una lista de acciones, recursos y claves de condición de Amazon S3 para su uso en políticas, consulte Acciones, recursos y claves de condición de Amazon S3. Para obtener una lista completa de las acciones de Amazon S3, consulte Acciones.

En la política de bucket del ejemplo siguiente se conceden los permisos s3:PutObject y s3:PutObjectAcl a un usuario (Dave). Puede asociar la política a un usuario si elimina el elemento Principal. Son operaciones con objetos. En consecuencia, la parte relative-id del Resource ARN identifica los objetos (awsexamplebucket1/*). Para obtener más información, consulte Recursos de Amazon S3 .

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Dave" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*" } ] }

Permisos para todas las acciones de Amazon S3

Puede utilizar un carácter comodín para conceder permisos para todas las acciones de Amazon S3.

"Action": "*"

La política de usuario del ejemplo siguiente concede los permisos s3:CreateBucket, s3:ListAllMyBuckets y s3:GetBucketLocation a un usuario. Para todos estos permisos, establezca la parte relative-id del ARN Resource en "*". Debe especificar un nombre de bucket para todas las demás acciones de bucket. Para obtener más información, consulte Recursos de Amazon S3 .

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }

Política para el acceso a la consola

Si un usuario quiere usar la AWS Management Console para ver los buckets y el contenido en ellos, el usuario debe contar con los permisos s3:ListAllMyBuckets y s3:GetBucketLocation. Para ver un ejemplo, consulte el tema dedicado a la política para acceso a la consola en la entrada de blog Writing IAM Policies: How to Grant Access to an S3 Bucket.

En la siguiente política de usuario de ejemplo se concede el permiso s3:GetBucketAcl en el bucket DOC-EXAMPLE-BUCKET1 para el usuario Dave.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1" ] } ] }

Permisos de objetos DELETE

Para eliminar objetos, puede llamar de forma explícita a la API de DELETE Object o configurar el ciclo de vida (consulte Administración del ciclo de vida del almacenamiento) para que Amazon S3 pueda eliminar los objetos cuando caduque su vida útil. Para impedir de forma explícita que los usuarios o las cuentas eliminen objetos, debe denegarles de forma explícita los permisos s3:DeleteObject, s3:DeleteObjectVersion y s3:PutLifecycleConfiguration.

Denegación explícita

De forma predeterminada, los usuarios no tienen permisos. Sin embargo, a medida que crea usuarios, añade usuarios a grupos y les concede permisos, es posible que obtengan ciertos permisos que no quería conceder. Para evitar esas ambigüedades en los permisos, puede escribir una política de acceso más estricta y añadir una denegación explícita.

La política de bucket anterior otorga el permiso s3:GetBucketAcl del bucket DOC-EXAMPLE-BUCKET1 al usuario Dave. En este ejemplo, deniega explícitamente al usuario los permisos Dave DELETE Object. La denegación explícita siempre sustituye a cualquier otro permiso concedido. A continuación se muestra el ejemplo de política de acceso revisado con denegación explícita añadida.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] } ] }

La política de usuario del ejemplo siguiente concede el permiso s3:GetAccountPublicAccessBlock a un usuario. Para todos estos permisos, estableció el valor Resource en "*". Para obtener más información, consulte Recursos de Amazon S3 .

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }