Lógica de evaluación de políticas entre cuentas
Puede permitir que un principal de una cuenta acceda a los recursos de una segunda cuenta. Esto se denomina acceso entre cuentas. Cuando permite el acceso entre cuentas, la cuenta donde se encuentra el principal se denomina cuenta de confianza. La cuenta donde se encuentra el recurso es la cuenta de confianza.
Para permitir el acceso entre cuentas, debe asociar una política basada en recursos al recurso que desea compartir. También debe asociar una política basada en identidad a la identidad que actúa como entidad principal en la solicitud. La política basada en recursos de la cuenta de confianza debe especificar la entidad principal de la cuenta de confianza que tendrá acceso al recurso. Puede especificar toda la cuenta o los usuarios de IAM, los usuarios federados, los roles de IAM o las sesiones de rol asumido. También puede especificar un servicio de AWS como principal. Para obtener más información, consulte Cómo especificar una entidad principal.
La política basada en la identidad del principal debe permitir el acceso solicitado al recurso en el servicio de confianza. Para ello, puede especificar el ARN del recurso.
En IAM, puede asociar una política basada en recursos a un rol de IAM para permitir que los principales de otras cuentas asuman ese rol. La política basada en recursos del rol se denomina política de confianza de rol. Después de asumir ese rol, los principales permitidos pueden utilizar las credenciales temporales resultantes para acceder a varios recursos de la cuenta. Este acceso se define en la política de permisos basada en la identidad del rol. Para saber la diferencia entre permitir el acceso entre cuentas mediante roles y permitir el acceso entre cuentas mediante otras políticas basadas en recursos, consulte Acceso a recursos entre cuentas en IAM.
importante
Otros servicios pueden afectar a la lógica de evaluación de políticas. Por ejemplo, AWS Organizations admite políticas de control de servicios y políticas de control de recursos que se pueden aplicar a entidades principales y recursos de una o varias cuentas. AWS Resource Access Manager admite fragmentos de políticas que controlan las acciones que las entidades principales pueden realizar en los recursos que se comparten con ellas.
Determinación de si se permite una solicitud entre cuentas
Para las solicitudes entre cuentas, el solicitante en la AccountA
de confianza debe tener una política basada en la identidad. Dicha política debe permitirles hacer una solicitud al recurso en la AccountB
de confianza. Además, la política basada en recursos en AccountB
debe permitir al solicitante en AccountA
obtener acceso al recurso.
Cuando realiza una solicitud entre cuentas, AWS realiza dos evaluaciones. AWS evalúa la solicitud en la cuenta de confianza y en la cuenta en que se confía. Para obtener más información acerca de cómo se evalúa una solicitud dentro de una sola cuenta, consulte Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso. La solicitud solo se permite si ambas evaluaciones devuelven una decisión de tipo Allow
.
-
Una solicitud entre cuentas es el proceso mediante el cual un principal de una cuenta realiza una solicitud para acceder a un recurso de otra cuenta.
-
El principal solicitante existe en la cuenta en la que se confía (
AccountA
). Cuando AWS evalúa esta cuenta, comprueba la política basada en la identidad y cualquier política que pueda limitar una política basada en la identidad. Para obtener más información, consulte Evaluación de políticas basadas en identidad con límites de permisos. -
El recurso solicitado existe en la cuenta de confianza (
AccountB
). Cuando AWS evalúa esta cuenta, comprueba la política basada en recursos que está asociada al recurso solicitado y cualquier política que pueda limitar una política basada en recursos. Para obtener más información, consulte Evaluación de políticas basadas en identidad con políticas basadas en recursos. -
AWS permite la solicitud solo si ambas evaluaciones de políticas de cuenta permiten la solicitud.
Ejemplo de evaluación de política entre cuentas
En el ejemplo siguiente se muestra una situación en la que una política basada en recursos de una cuenta concede permisos a un rol de otra cuenta.
Supongamos que Carlos es un desarrollador con un rol de IAM denominado Demo
en la cuenta 111111111111. Carlos quiere guardar un archivo en el bucket amzn-s3-demo-bucket-production-logs
Amazon S3 de la cuenta 222222222222.
Supongamos también que la política siguiente está asociada al rol de IAM Demo
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "AllowS3ProductionObjectActions", "Effect": "Allow", "Action": "s3:*Object*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*" }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::*log*", "arn:aws:s3:::*log*/*" ] } ] }
La instrucción AllowS3ListRead
de esta política permite a Carlos ver una lista de todos los buckets de Amazon S3. La instrucción AllowS3ProductionObjectActions
concede a Carlos acceso completo al bucket amzn-s3-demo-bucket-production
.
Además, la siguiente política basada en recursos (denominada política de bucket) está asociada al bucket amzn-s3-demo-bucket-production
de la cuenta 222222222222.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject*", "s3:PutObject*", "s3:ReplicateObject", "s3:RestoreObject" ], "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" }, "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*" } ] }
Esta política permite al rol Demo
obtener acceso a los objetos del bucket amzn-s3-demo-bucket-production
. El rol puede crear y editar, pero no eliminar los objetos del bucket. El rol no puede administrar el propio bucket.
Cuando Carlos solicita guardar un archivo en el bucket amzn-s3-demo-bucket-production-logs
, AWS determina qué políticas se aplican a la solicitud. En este caso, la política basada en la identidad asociada al rol de Demo
es la única política que se aplica en la cuenta 111111111111
. En la cuenta 222222222222
, no hay ninguna política basada en recursos asociada al bucket amzn-s3-demo-bucket-production-logs
. Cuando AWS evalúa la cuenta 111111111111
, devuelve una decisión de tipo Deny
. Esto se debe a que la instrucción DenyS3Logs
de la política basada en la identidad deniega explícitamente el acceso a cualquier bucket de registro. Para obtener más información acerca de cómo se evalúa una solicitud dentro de una sola cuenta, consulte Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso.
Dado que la solicitud se deniega explícitamente dentro de una de las cuentas, la decisión final es denegar la solicitud.
Supongamos que Carlos se da cuenta de su error e intenta guardar el archivo en el bucket Production
. AWS primero comprueba la cuenta 111111111111
para determinar si la solicitud está permitida. Solo se aplica la política basada en la identidad, que permite la solicitud. A continuación, AWS comprueba la cuenta 222222222222
. Solo se aplica la política basada en recursos asociada al bucket Production
, que permite la solicitud. Dado que ambas cuentas permiten la solicitud, la decisión final es permitir la solicitud.