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 para Amazon S3. Para obtener una lista completa de las acciones de Amazon S3, consulte Acciones.
Temas
Ejemplo: operaciones con objetos
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": "*"
Ejemplo: operaciones con buckets
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
Ejemplo: operaciones de subrecurso del bucket
En la siguiente política de usuario de ejemplo se concede el permiso s3:GetBucketAcl
en el bucket
para el usuario Dave.DOC-EXAMPLE-BUCKET1
{ "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
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.DOC-EXAMPLE-BUCKET1
{ "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:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::
DOC-EXAMPLE-BUCKET1
/*123456789012
:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET1
/*
Ejemplo: operaciones con cuentas
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":[ "*" ] } ] }