Cómo funciona Amazon S3 con IAM
Antes de utilizar IAM para administrar el acceso a Amazon S3, obtenga información sobre qué características de IAM se encuentran disponibles para su uso con Amazon S3.
Característica de IAM | Compatibilidad con Amazon S3 |
---|---|
Sí |
|
Sí |
|
Sí |
|
Sí |
|
Sí |
|
Sí |
|
Parcial |
|
Sí |
|
Sí |
|
Sí |
|
Parcial |
Para obtener una perspectiva general sobre cómo funcionan Amazon S3 y otros servicios de AWS con la mayoría de las características de IAM, consulte Servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.
Políticas basadas en identidad para Amazon S3
Compatibilidad con las políticas basadas en identidad: sí
Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener información sobre cómo crear una política basada en identidades, consulte Definición de permisos de IAM personalizados con políticas administradas por el cliente en la Guía del usuario de IAM.
Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. No es posible especificar la entidad principal en una política basada en identidad porque se aplica al usuario o rol al que está adjunto. Para más información sobre los elementos que puede utilizar en una política de JSON, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.
Ejemplos de políticas basadas en identidad para Amazon S3
Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte Políticas basadas en identidad para Amazon S3.
Políticas basadas en recursos dentro de Amazon S3
Compatibilidad con las políticas basadas en recursos: sí
Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Ejemplos de políticas basadas en recursos son las políticas de confianza de roles de IAM y las políticas de bucket de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe especificar una entidad principal en una política en función de recursos. Las entidades principales pueden incluir cuentas, usuarios, roles, usuarios federados o Servicios de AWS.
Para habilitar el acceso entre cuentas, puede especificar toda una cuenta o entidades de IAM de otra cuenta como la entidad principal de una política en función de recursos. Añadir a una política en función de recursos una entidad principal entre cuentas es solo una parte del establecimiento de una relación de confianza. Cuando la entidad principal y el recurso se encuentran en Cuentas de AWS diferentes, un administrador de IAM de la cuenta de confianza también debe conceder a la entidad principal (usuario o rol) permiso para acceder al recurso. Para conceder el permiso, adjunte la entidad a una política basada en identidad. Sin embargo, si la política en función de recursos concede el acceso a una entidad principal de la misma cuenta, no es necesaria una política basada en identidad adicional. Para más información, consulte Cross account resource access in IAM en la Guía del usuario de IAM.
El servicio de Amazon S3 admite políticas de bucket, políticas de puntos de acceso y concesiones de acceso:
-
Las políticas de bucket son políticas basadas en recursos adjuntas a un bucket de Amazon S3. Una política de bucket define qué entidades principales pueden realizar acciones en el bucket.
-
Las políticas de puntos de acceso son políticas basadas en recursos que se evalúan junto con la política de bucket subyacente.
-
Las concesiones de acceso son un modelo simplificado para definir los permisos de acceso a los datos en Amazon S3 por prefijo, bucket u objeto. Para obtener información sobre las concesiones de acceso de S3, consulte Administración del acceso con S3 Access Grants.
Entidades principales de las políticas de bucket
El elemento Principal
especifica el usuario, la cuenta, el servicio u otra entidad con acceso permitido o denegado para un recurso. A continuación se proporcionan ejemplos de la especificación del elemento Principal
. Para obtener más información, consulte Principal en la guía del usuario de IAM.
Concesión de permisos a una Cuenta de AWS
Para conceder permisos a una Cuenta de AWS, use el siguiente formato para identificar la cuenta.
"AWS":"
account-ARN
"
A continuación se muestran algunos ejemplos.
"Principal":{"AWS":"arn:aws:iam::
AccountIDWithoutHyphens
:root"}
"Principal":{"AWS":["arn:aws:iam::
AccountID1WithoutHyphens
:root","arn:aws:iam::AccountID2WithoutHyphens
:root"]}
Conceder permisos a un usuario de IAM
Para conceder permisos a un usuario de IAM dentro de la cuenta, debe proporcionar el par nombre-valor "AWS":"
.user-ARN
"
"Principal":{"AWS":"arn:aws:iam::
account-number-without-hyphens
:user/username
"}
Para obtener ejemplos detallados que proporcionan instrucciones paso a paso, consulte Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios y Ejemplo 3: propietario del bucket que concede a sus usuarios permisos para objetos que no posee.
nota
Si se elimina una identidad de IAM después de actualizar la política de bucket, la política de bucket mostrará un identificador único en el elemento de la entidad principal en lugar de un ARN. Estos ID únicos nunca se reutilizan, por lo que puede eliminar de forma segura las entidades principales con identificadores únicos de todas las instrucciones de política. Para obtener más información acerca de los identificadores únicos, consulte Identificadores de IAM en la Guía del usuario de IAM.
Conceder permisos anónimos
aviso
Extreme las precauciones a la hora de otorgar acceso anónimo a su bucket de Amazon S3. Al otorgar acceso anónimo, cualquier persona puede acceder a su bucket. Se recomienda encarecidamente que no otorgue nunca ningún tipo de acceso de escritura anónimo en su bucket de S3.
Para conceder permisos a todos los usuarios, lo que también se denomina acceso anónimo, puede establecer el carácter comodín ("*"
) como valor de Principal
. Por ejemplo, si configura el bucket como sitio web, es porque desea que todos los objetos en el bucket tengan acceso público.
"Principal":"*"
"Principal":{"AWS":"*"}
Utilizar "Principal": "*"
con un efecto de Allow
en una política basada en recursos permite que cualquier persona, incluso si no ha iniciado sesión en AWS, acceda a su recurso.
Utilizar "Principal" : { "AWS" : "*" }
con un efecto de Allow
en una política basada en recursos permite que cualquier usuario raíz, usuario de IAM, sesión de rol asumido o usuario federado en cualquier cuenta de la misma partición acceda a su recurso.
Para los usuarios anónimos, estos dos métodos son equivalentes. Para obtener más información, consulte Todas las entidades principales en la Guía del usuario de IAM.
No puede utilizar un carácter comodín para buscar coincidencias con parte de un nombre de entidad principal o ARN.
importante
Puesto que cualquiera puede crear una Cuenta de AWS, el nivel de seguridad de estos dos métodos es equivalente, aunque funcionan de forma diferente.
Restringir los permisos de recursos
También puede utilizar la política de recursos para restringir el acceso a los recursos que, de otro modo, estarían disponibles para las entidades principales de IAM. Utilice una instrucción Deny
para impedir el acceso.
El siguiente ejemplo bloquea el acceso si no se utiliza un protocolo de transporte seguro:
{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }
Una práctica recomendada para esta política es usar "Principal": "*"
para que esta restricción se aplique a todo el mundo, en lugar de intentar denegar el acceso solo a cuentas o entidades principales específicas mediante este método.
Requerir acceso a través de URL de CloudFront
Puede exigir a los usuarios que obtengan acceso al contenido de Amazon S3 solo mediante direcciones URL de CloudFront en lugar de direcciones URL de Amazon S3. Para ello, cree un control de acceso de origen (OAC) de CloudFront. A continuación, cambie los permisos de los datos de S3. En la política de bucket, puede configurar CloudFront como entidad principal de la siguiente manera:
"Principal":{"Service":"cloudfront.amazonaws.com"}
Utilice un elemento Condition
en la política para permitir que CloudFront acceda al bucket solo cuando la solicitud sea en nombre de la distribución de CloudFront que contiene el origen de S3.
"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::
111122223333
:distribution/CloudFront-distribution-ID
" } }
Para obtener más información acerca de cómo solicitar acceso de S3 a través de las URL de CloudFront, consulte Restricción del acceso a un origen de Amazon Simple Storage Service en la Guía para desarrolladores de Amazon CloudFront. Para obtener más información sobre los beneficios de seguridad y privacidad de usar Amazon CloudFront, consulte Configuración de acceso seguro y acceso restringido al contenido.
Ejemplos de políticas basadas en recursos para Amazon S3
Para ver ejemplos de políticas de buckets de Amazon S3, consulte Políticas de buckets para Amazon S3.
Para ver ejemplos de políticas de puntos de acceso, consulte Configurar las políticas de IAM para el uso de puntos de acceso.
Acciones de políticas para Amazon S3
Compatibilidad con las acciones de política: sí
Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.
El elemento Action
de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones de la política generalmente tienen el mismo nombre que la operación de API de AWS asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.
Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.
A continuación, se muestran los diferentes tipos de relaciones de mapeo entre las operaciones de la API de S3 y las acciones de políticas requeridas.
Mapeo uno a uno con el mismo nombre. Por ejemplo, para utilizar la operación de la API
PutBucketPolicy
, se necesita la acción de políticas3:PutBucketPolicy
.Mapeo uno a uno con diferentes nombres. Por ejemplo, para utilizar la operación de la API
ListObjectsV2
, se necesita la acción de políticas3:ListBucket
.Mapeo uno a varios. Por ejemplo, para utilizar la operación de la API
HeadObject
, se necesitas3:GetObject
. Además, si utiliza el bloqueo de objetos de S3 y desea obtener el estado de retención legal o la configuración de retención de un objeto, también son necesarias las acciones de políticass3:GetObjectLegalHold
ys3:GetObjectRetention
correspondientes para poder utilizar la operación de APIHeadObject
.Mapeo uno a varios. Por ejemplo, para utilizar las operaciones de la API
ListObjectsV2
oHeadBucket
, se necesita la acción de políticas3:ListBucket
.
Para ver una lista de las acciones de Amazon S3 para usar en políticas, consulte Acciones definidas por Amazon S3 en la Referencia de autorizaciones de servicio. Para obtener una lista de operaciones de la API de Amazon S3, consulte Amazon S3 API Actions en la Referencia de la API de Amazon Simple Storage Service.
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.
Las acciones de políticas de Amazon S3 utilizan el siguiente prefijo antes de la acción:
s3
Para especificar varias acciones en una única instrucción, sepárelas con comas.
"Action": [ "s3:
action1
", "s3:action2
" ]
Operaciones con buckets
Las operaciones de buckets son operaciones de la API de S3 que funcionan en el tipo de recurso de bucket. Por ejemplo, CreateBucket
, ListObjectsV2
y PutBucketPolicy
. Las acciones de las políticas de S3 para operaciones de buckets requieren que el elemento Resource
de las políticas de buckets o de las políticas basadas en identidades de IAM sea el identificador de Nombre de recurso de Amazon (ARN) del tipo de bucket de S3 en el siguiente formato de ejemplo.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
"
La siguiente política de buckets otorga al usuario
la cuenta Akua
con el permiso 12345678901
s3:ListBucket
para realizar la operación de la API ListObjectsV2 y mostrar los objetos de un bucket de S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
12345678901
:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" } ] }
Operaciones de buckets en políticas de puntos de acceso
Los permisos concedidos en una política de puntos de acceso solo se aplican si el bucket subyacente permite los mismos permisos. Cuando utilice puntos de acceso de S3, debe delegar el control de acceso del bucket al punto de acceso o añadir los mismos permisos en las políticas del punto de acceso a la política del bucket subyacente. Para obtener más información, consulte Configurar las políticas de IAM para el uso de puntos de acceso. En las políticas de puntos de acceso, las acciones de la política de S3 para las operaciones de buckets requieren que utilice el ARN de punto de acceso para el elemento Resource
en el siguiente formato.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La siguiente política de punto de acceso otorga al usuario
la cuenta Akua
el permiso 12345678901
s3:ListBucket
para realizar la operación de la API ListObjectsV2 a través del punto de acceso de S3 denominado
. Este permiso permite a example-access-point
mostrar los objetos del bucket al que está asociado Akua
. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
" } ] }
nota
El punto de acceso de S3 no admite todas las operaciones de bucket. Para obtener más información, consulte Compatibilidad de los puntos de acceso con las operaciones de S3.
Operaciones con objetos
Las operaciones de objetos son operaciones de la API de S3 que actúan en función del tipo de recurso del objeto. Por ejemplo, GetObject
, PutObject
y DeleteObject
. Las acciones de políticas de S3 para las operaciones de objetos necesitan que el elemento Resource
de las políticas sea el ARN del objeto de S3 en los siguientes formatos de ejemplo.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*"
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/prefix
/*"
nota
El ARN del objeto debe contener una barra inclinada después del nombre del bucket, como se ha visto en los ejemplos anteriores.
La siguiente política de bucket concede al usuario
la cuenta Akua
el permiso 12345678901
s3:PutObject
. Este permiso permite a
utilizar la operación de la API PutObject para cargar objetos en el bucket de S3 denominado Akua
.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
Operaciones de objetos en políticas de puntos de acceso
Cuando utilice puntos de acceso de S3 para controlar el acceso a las operaciones de los objetos, puede utilizar políticas de puntos de acceso. Cuando utilice políticas de puntos de acceso, las acciones de la política de S3 para operaciones con objetos requieren que utilice el ARN de punto de acceso para el elemento Resource
en el siguiente formato: arn:aws:s3:
. Para las operaciones de objetos que utilizan puntos de acceso, debe incluir el valor region
:account-id
:accesspoint/access-point-name
/object/resource
/object/
después de todo el ARN del punto de acceso en el elemento Resource
. Estos son algunos ejemplos.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/*"
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/prefix
/*"
La siguiente política de punto de acceso concede al usuario
la cuenta Akua
el permiso 12345678901
s3:GetObject
. Este permiso permite a
realizar la operación de la API GetObject a través del punto de acceso denominado Akua
en todos los objetos del bucket asociado al punto de acceso. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
/object/*" } ] }
nota
Los puntos de acceso no admiten todas las operaciones de objetos. Para obtener más información, consulte Compatibilidad de los puntos de acceso con las operaciones de S3.
Operaciones de puntos de acceso
Las operaciones de puntos de acceso son operaciones de la API de S3 que funcionan en el tipo de recurso accesspoint
. Por ejemplo, CreateAccessPoint
, DeleteAccessPoint
y GetAccessPointPolicy
. Las acciones de políticas de S3 para las operaciones de punto de acceso solo pueden utilizarse en las políticas de IAM basadas en identidades, no en las políticas de buckets ni en las de puntos de acceso. Las operaciones de puntos de acceso requieren que el elemento Resource
sea el ARN de punto de acceso en el siguiente formato de ejemplo.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
La siguiente política de IAM basada en identidades concede el permiso s3:GetAccessPointPolicy
para realizar la operación de la API GetAccessPointPolicy en el punto de acceso de S3 denominado
.example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/example-access-point
" } ] }
Cuando utilice puntos de acceso, para controlar el acceso a las operaciones de buckets, consulte Operaciones de buckets en políticas de puntos de acceso; para controlar el acceso a las operaciones de objetos, consulte Operaciones de objetos en políticas de puntos de acceso. Para obtener más información acerca de cómo configurar políticas de punto de acceso, consulte Configurar las políticas de IAM para el uso de puntos de acceso.
Operaciones de punto de acceso de Object Lambda
Con Amazon S3 Object Lambda, puede agregar su propio código a las solicitudes GET
, LIST
y HEAD
de Amazon S3 para modificar y procesar los datos a medida que vuelven a una aplicación. Puede realizar solicitudes a través de un punto de acceso de Object Lambda, que funciona como realizar solicitudes a través de otros puntos de acceso. Para obtener más información, consulte Transformación de objetos con Lambda para objetos S3.
Para obtener más información sobre cómo configurar políticas para operaciones de puntos de acceso de Object Lambda, consulte Configuración de las políticas de IAM para puntos de acceso de Object Lambda.
Operaciones de puntos de acceso multirregión
Un punto de acceso de varias regiones proporciona un punto de conexión global que las aplicaciones pueden utilizar para satisfacer las solicitudes de los buckets de S3 ubicados en varias Región de AWS. Puede utilizar un punto de acceso de varias regiones para crear aplicaciones de varias regiones con la misma arquitectura que se utiliza en una sola región y, a continuación, ejecutar esas aplicaciones en cualquier parte del mundo. Para obtener más información, consulte Administración del tráfico de varias regiones con puntos de acceso de varias regiones.
Para obtener más información sobre cómo configurar políticas para operaciones de puntos de acceso multiregionales, consulte Ejemplos de política de punto de acceso multirregional.
Operaciones de trabajos por lotes
Las operaciones de trabajos (operaciones por lotes) son operaciones de la API de S3 que funcionan en el tipo de recurso de trabajo. Por ejemplo, DescribeJob
y CreateJob
. Las acciones de políticas de S3 para operaciones de trabajo solo pueden utilizarse en políticas basadas en identidades de IAM, no en políticas de buckets. Además, las operaciones de trabajos requieren que el elemento Resource
de las políticas basadas en identidades de IAM sean el ARN de job
en el siguiente formato de ejemplo.
"Resource": "arn:aws:s3:*:
123456789012
:job/*"
La siguiente política de IAM basada en identidades concede el permiso s3:DescribeJob
para realizar la operación de la API DescribeJob en el trabajo de operaciones por lotes de S3 denominado
.example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/example-job
" } ] }
Operaciones de configuración de S3 Storage Lens
Para obtener más información acerca de cómo configurar las operaciones de configuración de S3 Storage Lens, consulte Configuración de permisos de Lente de almacenamiento de Amazon S3.
Operaciones de cuentas
Las operaciones de cuentas son operaciones de la API de S3 que funcionan en el nivel de la cuenta. Por ejemplo, GetPublicAccessBlock
(para una cuenta). La cuenta no es un tipo de recurso definido por Amazon S3. Las acciones de políticas de S3 para operaciones de cuentas solo pueden utilizarse en políticas basadas en identidades de IAM, no en políticas de buckets. Además, las operaciones de cuentas requieren que el elemento Resource
de las políticas basadas en identidades de IAM sean "*"
.
La siguiente política de IAM basada en identidades concede el permiso s3:GetAccountPublicAccessBlock
para realizar la operación de la API GetPublicAccessBlock en el nivel de la cuenta y recuperar la configuración del bloque de acceso público en el nivel de la cuenta.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }
Ejemplos de políticas para Amazon S3
-
Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte Políticas basadas en identidad para Amazon S3.
-
Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte Políticas de buckets para Amazon S3 y Configurar las políticas de IAM para el uso de puntos de acceso.
Recursos de políticas para Amazon S3
Compatibilidad con los recursos de políticas: sí
Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.
El elemento Resource
de la política JSON especifica el objeto u objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource
o NotResource
. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.
Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.
"Resource": "*"
Algunas acciones de la API de Amazon S3 admiten varios recursos. Por ejemplo, s3:GetObject
accede a
y example-resource-1
, por lo que una entidad principal debe tener permisos para acceder a ambos recursos. Para especificar varios recursos en una única instrucción, separe los ARN con comas, como se muestra en el siguiente ejemplo. example-resource-2
"Resource": [ "
example-resource-1
", "example-resource-2
"
Los recursos de Amazon S3 son buckets, objetos, puntos de acceso o trabajos. En una política, utilice el nombre de recurso de Amazon (ARN) del bucket, objeto, punto de acceso o trabajo para identificar el recurso.
Para ver una lista completa de los tipos de recursos de Amazon S3 y los ARN, consulte Recursos definidos por Amazon S3 en la Referencia de autorizaciones de servicio. Para obtener información acerca de las acciones con las que puede especificar el ARN de cada recurso, consulte Acciones definidas por Amazon S3.
Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.
Comodines en ARN de recursos
Puede utilizar caracteres comodín como parte del ARN del recurso. Puede utilizar caracteres comodín (*
y ?
) en cualquier segmento del ARN (las partes se separan mediante signos de dos puntos). Un asterisco (*
) representa cualquier combinación de cero o más caracteres y un signo de interrogación (?
) representa un único carácter. Puede utilizar varios caracteres *
o ?
de cada segmento. Sin embargo, un carácter comodín no puede abarcar segmentos.
-
El ARN siguiente utiliza el carácter comodín
*
en la parterelative-ID
del ARN para identificar todos los objetos del bucket de
.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
El siguiente ARN utiliza
*
para indicar todos los buckets de S3 y objetos.arn:aws:s3:::*
-
El siguiente ARN utiliza ambos caracteres comodines,
*
y?
, en la parterelative-ID
. Este ARN Identifica todos los objetos en los buckets como
,amzn-s3-demo-example1bucket
,amzn-s3-demo-example2bucket
, etc.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Variables de política para ARN de recursos
Puede utilizar variables de política en los ARN de Amazon S3. Cuando se evalúa una política, estas variables predefinidas se sustituyen por los valores correspondientes. Supongamos que organiza el bucket como una recopilación de carpetas, con una carpeta para cada uno de los usuarios. El nombre de la carpeta será igual al nombre del usuario. Para conceder a los usuarios permisos para sus carpetas, puede especificar una variable de política en el ARN del recurso:
arn:aws:s3:::
bucket_name
/developers
/${aws:username}/
En tiempo de ejecución, cuando se evalúa la política, la variable ${aws:username}
en el ARN del recurso se sustituye por el nombre de usuario de la persona que realiza la solicitud.
Ejemplos de políticas para Amazon S3
-
Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte Políticas basadas en identidad para Amazon S3.
-
Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte Políticas de buckets para Amazon S3 y Configurar las políticas de IAM para el uso de puntos de acceso.
Claves de condición de políticas para Amazon S3
Compatibilidad con claves de condición de políticas específicas del servicio: sí
Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.
El elemento Condition
(o bloque de Condition
) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition
es opcional. Puede crear expresiones condicionales que utilicen operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.
Si especifica varios elementos de Condition
en una instrucción o varias claves en un único elemento de Condition
, AWS las evalúa mediante una operación AND
lógica. Si especifica varios valores para una única clave de condición, AWS evalúa la condición con una operación lógica OR
. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.
También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puede conceder un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombre de usuario de IAM. Para más información, consulte Elementos de la política de IAM: variables y etiquetas en la Guía del usuario de IAM.
AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición globales de AWS, consulte Claves de contexto de condición globales de AWSen la Guía del usuario de IAM.
Cada clave de condición de Amazon S3 se asigna al encabezado de solicitud con el mismo nombre permitido por la API en la que se puede establecer la condición. Las claves de condición específicas de Amazon S3 dictan el comportamiento de los encabezados de solicitudes del mismo nombre. Por ejemplo, la clave de condición s3:VersionId
utilizada para conceder permisos condicionales para el permiso s3:GetObjectVersion
define el comportamiento del parámetro de consulta versionId
que establece en una solicitud GET Object.
Para ver una lista de las claves de condición de Amazon S3, consulte Claves de condición para Amazon S3 en la Referencia de autorizaciones de servicio. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte Acciones definidas por Amazon S3.
Ejemplo: restricción de cargas de objetos a objetos con una clase de almacenamiento específica
Supongamos que la cuenta A, representada por el ID de cuenta
, posee un bucket. El administrador de la cuenta A desea restringir a 123456789012
, un usuario en la cuenta A, para que Dave
pueda cargar objetos en el bucket solo si se almacena el objeto en la clase de almacenamiento Dave
STANDARD_IA
. Para restringir las cargas de objetos a una clase de almacenamiento específica, el administrador de cuenta A puede utilizar la clave de condición s3:x-amz-storage-class
, como se muestra en la siguiente política de bucket de ejemplo.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave
" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1
/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }
En el ejemplo, el bloque Condition
especifica la condición StringEquals
que se aplica al par clave-valor especificado, "s3:x-amz-acl":["public-read"]
. Existe un conjunto de claves predefinidas que puede usar para expresar una condición. En el ejemplo se utiliza la clave de condición s3:x-amz-acl
. Esta condición requiere que el usuario incluya el encabezado x-amz-acl
con el valor public-read
en cada solicitud de PutObject
.
Ejemplos de políticas para Amazon S3
-
Para ver ejemplos de políticas basadas en identidad de Amazon S3, consulte Políticas basadas en identidad para Amazon S3.
-
Para ver ejemplos de políticas basadas en recursos de Amazon S3, consulte Políticas de buckets para Amazon S3 y Configurar las políticas de IAM para el uso de puntos de acceso.
ACL en Amazon S3
Compatibilidad con ACL: sí
En Amazon S3, las listas de control de acceso (ACL) controlan qué Cuentas de AWS tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.
importante
La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL.
Para obtener información acerca de cómo usar ACL para controlar el acceso en Amazon S3, consulte Administración de acceso con ACL.
ABAC con Amazon S3
Compatibilidad con ABAC (etiquetas en las políticas): parcial
El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos. En AWS, estos atributos se denominan etiquetas. Puede adjuntar etiquetas a entidades de IAM (usuarios o roles) y a muchos recursos de AWS. El etiquetado de entidades y recursos es el primer paso de ABAC. A continuación, designa las políticas de ABAC para permitir operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso al que se intenta acceder.
ABAC es útil en entornos que crecen con rapidez y ayuda en situaciones en las que la administración de las políticas resulta engorrosa.
Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición aws:ResourceTag/
, key-name
aws:RequestTag/
o key-name
aws:TagKeys
.
Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es Sí para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es Parcial.
Para obtener más información sobre ABAC, consulte Definición de permisos con la autorización de ABAC en la Guía del usuario de IAM. Para ver un tutorial con los pasos para configurar ABAC, consulte Uso del control de acceso basado en atributos (ABAC) en la Guía del usuario de IAM.
Para ver ejemplos de políticas basadas en identidades para limitar el acceso a trabajos de operaciones por lotes de S3 en función de etiquetas, consulte Control de permisos para Operaciones por lotes mediante etiquetas de trabajo.
ABAC y etiquetas de objetos
En las políticas de ABAC, los objetos utilizan etiquetas de s3:
en lugar de etiquetas de aws:
. Para controlar el acceso a objetos en función de etiquetas de objetos, debe proporcionar información de las etiquetas en el elemento de Condition de una política con las siguientes etiquetas:
-
s3:ExistingObjectTag/
tag-key
-
s3:s3:RequestObjectTagKeys
-
s3:RequestObjectTag/
tag-key
Para obtener información sobre el uso de etiquetas de objetos para controlar el acceso, incluidos ejemplos de políticas de permisos, consulte Etiquetado y políticas de control de acceso.
Uso de credenciales temporales con Amazon S3
Compatibilidad con credenciales temporales: sí
Algunos Servicios de AWS no funcionan cuando inicia sesión con credenciales temporales. Para obtener información adicional, incluida la información sobre qué Servicios de AWS funcionan con credenciales temporales, consulte Servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.
Utiliza credenciales temporales si inicia sesión en la AWS Management Console con cualquier método, excepto un nombre de usuario y una contraseña. Por ejemplo, cuando accede a AWS utilizando el enlace de inicio de sesión único (SSO) de la empresa, ese proceso crea automáticamente credenciales temporales. También crea automáticamente credenciales temporales cuando inicia sesión en la consola como usuario y luego cambia de rol. Para obtener más información sobre el cambio de roles, consulte Cambio de un rol de usuario a un rol de IAM (consola) en la Guía del usuario de IAM.
Puede crear credenciales temporales de forma manual mediante la AWS CLI o la API de AWS. A continuación, puede usar esas credenciales temporales para acceder a AWS. AWS recomienda generar credenciales temporales de forma dinámica en lugar de usar claves de acceso a largo plazo. Para más información, consulte Credenciales de seguridad temporales en IAM.
Sesiones de acceso directo para Amazon S3
Admite sesiones de acceso directo (FAS): sí
Cuando utiliza un usuario o un rol de IAM para llevar a cabo acciones en AWS, se lo considera una entidad principal. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. FAS utiliza los permisos de la entidad principal para llamar a un Servicio de AWS, combinados con el Servicio de AWS solicitante para realizar solicitudes a servicios posteriores. Las solicitudes de FAS solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS o recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte Reenviar sesiones de acceso.
Amazon S3 utiliza FAS para realizar llamadas a AWS KMS para descifrar un objeto cuando se ha utilizado SSE-KMS para cifrarlo. Para obtener más información, consulte Uso del cifrado del servidor con claves de AWS KMS (SSE-KMS).
Las concesiones de acceso de S3 también utilizan FAS. Tras crear una concesión de acceso a los datos de S3 para una identidad concreta, el concesionario solicita una credencial temporal de concesiones de acceso de S3. Las concesiones de acceso de S3 obtienen una credencial temporal para el solicitante de AWS STS y venden la credencial al solicitante. Para obtener más información, consulte Solicitar acceso a los datos de Amazon S3 a través de S3 Access Grants.
Roles de servicio para Amazon S3
Compatibilidad con roles de servicio: sí
Un rol de servicio es un rol de IAM que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.
aviso
Es posible que cambiar los permisos de un rol de servicio interrumpa la funcionalidad de Amazon S3. Edite los roles de servicio solo cuando Amazon S3 proporcione orientación para hacerlo.
Roles vinculados a servicios para Amazon S3
Compatibilidad con roles vinculados al servicio: parcial
Un rol vinculado al servicio es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.
Amazon S3 admite roles vinculados a servicios para Amazon S3 Storage Lens. Para obtener más información sobre cómo crear o administrar roles vinculados a servicios de Amazon S3, consulte Uso de roles vinculados a servicios para Amazon S3 Storage Lens.
Servicio de Amazon S3 como entidad principal
Nombre del servicio en la política | Característica de S3 | Más información |
---|---|---|
|
Replicación de S3 |
Descripción general de la configuración de la replicación en directo |
|
Notificaciones de eventos de S3 |
|
|
Inventario de S3 |
|
|
Permisos de acceso de S3 |
|
|
Operaciones por lotes de S3 |
|
|
Registro de acceso al servidor de S3 |
Habilitación del registro de acceso al servidor de Amazon S3 |
|
Lente de almacenamiento de S3 |
Visualización de las métricas de Amazon S3 Storage Lens mediante una exportación de datos |