Lógica de evaluación de políticas entre cuentas - AWS Identity and Access Management

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 Especificación de 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 o permitir el acceso a todos los recursos (*).

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 que se pueden aplicar a una o varias entidades principales. 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 determinar si se una solicitud se permite o se deniega dentro de una cuenta. La solicitud solo se permite si ambas evaluaciones devuelven una decisión de tipo Allow.

Evaluación entre cuentas
  1. 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.

  2. 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 dentro de una misma cuenta.

  3. 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 dentro de una misma cuenta.

  4. 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 usuario de otra cuenta.

Suponga que Carlos es un desarrollador con un usuario de IAM denominado 111111111111 en la cuenta carlossalazar. Carlos quiere guardar un archivo en el bucket Production-logs Amazon S3 de la cuenta 222222222222.

Supongamos también que la política siguiente está asociada al usuario de IAM carlossalazar.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Sid": "AllowS3ProductionObjectActions", "Effect": "Allow", "Action": "s3:*Object*", "Resource": "arn:aws:s3:::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 Production. La instrucción DenyS3Logs deniega a Carlos el acceso a los buckets de S3 que contengan log en el nombre. También deniega el acceso a todos los objetos de esos buckets.

Además, la siguiente política basada en recursos (denominada política de bucket) está asociada al 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:user/carlossalazar" }, "Resource": "arn:aws:s3:::Production/*" } ] }

Esta política permite al usuario carlossalazar obtener acceso a los objetos del bucket Production. Puede crear y editar, pero no eliminar los objetos del bucket. No puede administrar el propio bucket.

Cuando Carlos solicita guardar un archivo en el 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 usuario de carlossalazar 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 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 determinar si se una solicitud se permite o se deniega dentro de una cuenta.

Dado que la solicitud se deniega explícitamente dentro de una de las cuentas, la decisión final es denegar la solicitud.

Solicitud al bucket de registros Production

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.

Solicitud al bucket Production