Entidades principales - Amazon Simple Storage Service

Entidades principales

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"]}

Amazon S3 también admite un ID de usuario canónico, que es una forma encubierta del ID de Cuenta de AWS. Puede usar el siguiente formato para especificar este ID.

"CanonicalUser":"64-digit-alphanumeric-value"

A continuación se muestra un ejemplo.

"Principal":{"CanonicalUser":"64-digit-alphanumeric-value"}

Para obtener información acerca de cómo encontrar el ID de usuario canónico de la cuenta, consulte Buscar el ID de usuario canónico de la cuenta.

importante

Cuando se utiliza un ID de usuario canónico en una política, Amazon S3 podría cambiarlo por el ID de la Cuenta de AWS correspondiente. Esto no afecta a la política, ya que los dos ID identifican la misma cuenta.

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

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.

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.

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 a su contenido de Amazon S3 mediante direcciones URL de Amazon CloudFront en lugar de direcciones URL de Amazon S3. Para ello, cree una identidad de acceso de origen (OAI) de CloudFront. A continuación, cambie los permisos en el bucket o en los objetos del bucket. El formato para especificar la OAI en una declaración Principal es el siguiente:

"Principal":{"CanonicalUser":"Amazon S3 Canonical User ID assigned to origin access identity"}

Para obtener más información, consulte Restricción del acceso a contenido de Amazon S3 utilizando una identidad de acceso de origen en la guía del desarrollador de Amazon CloudFront.