Evaluación de políticas para solicitudes dentro de una misma cuenta
El modo en que AWS evalúa las políticas depende de los tipos de las políticas aplicables al contexto de la solicitud. Los tipos de políticas siguientes, que se muestran por orden de frecuencia, están disponibles para su uso dentro de una misma Cuenta de AWS. Para obtener más información acerca de estos tipos de políticas, consulte Políticas y permisos en AWS Identity and Access Management. Para obtener información sobre cómo AWS evalúa las políticas para el acceso entre cuentas, consulte Lógica de evaluación de políticas entre cuentas.
-
Políticas basadas en identidad - Las políticas basadas en identidad se asocian a una identidad de IAM (usuario, grupo de usuarios o rol) y conceden permisos a entidades de IAM (usuarios y roles). Cuando a una solicitud solo le son aplicables políticas basadas en identidad, AWS comprueba toda ellas para obtener al menos un permiso
Allow
. -
Políticas basadas en recursos: las políticas basadas en recursos otorgan permisos a las entidades principales especificadas en la política. Los permisos definen lo que la entidad principal puede hacer con el recurso al que está asociada la política.
-
Límites de permisos de IAM: los límites de permisos son una característica que le permite establecer los permisos máximos que una política basada en identidades puede conceder a una entidad de IAM (usuario o rol). Al establecer un límite de permisos para una entidad, la entidad solo puede realizar las acciones que le permitan tanto sus políticas basadas en identidad como sus límites de permisos. En algunos casos, una denegación implícita en un límite de permisos puede limitar los permisos concedidos por una política basada en recursos. Para obtener más información, consulte Cómo la lógica del código de aplicación de AWS evalúa las solicitudes para permitir o denegar el acceso.
-
AWS OrganizationsPolíticas de control de servicios (SCP): Las SCP de Organizations especifican los permisos máximos disponibles para los principales dentro de las cuentas de una organización o unidad organizativa (OU). Las SCP se aplican a las entidades principales de las cuentas miembro, incluido cada Usuario raíz de la cuenta de AWS. Si existe una SCP, los permisos otorgados por las políticas basadas en identidades y en recursos a las entidades principales de las cuentas miembro solo tendrán efecto si la SCP también permite la acción. Las únicas excepciones son las entidades principales de la cuenta de administración de la organización y los roles vinculados al servicio.
-
Políticas de control de recursos (RCP) de AWS Organizations: las RCP de Organizations especifican los permisos máximos disponibles para los recursos en las cuentas de una organización o unidad organizativa (OU). Las RCP se aplican a los recursos de las cuentas de los miembros y afectan a los permisos efectivos de las entidades principales, incluida la Usuario raíz de la cuenta de AWS, independientemente de si las entidades principales pertenecen a la organización. Las RCP no se aplican a los recursos de la cuenta de administración de la organización ni a las llamadas realizadas por los roles vinculados al servicio.
-
Políticas de sesión: las políticas de sesión son políticas que se pasan como parámetros cuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Para crear una sesión de rol mediante programación, utilice una de las operaciones de API
AssumeRole*
. Al hacerlo y pasar las políticas de sesión, los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades de la entidad IAM y las políticas de la sesión. Para crear una sesión de un usuario federado, se usan las claves de acceso de un usuario de IAM para llamar mediante programación a la operación de APIGetFederationToken
. Para obtener más información, consulte Políticas de sesión.
Recuerde que una denegación explícita en cualquiera de estas políticas anulará el permiso.
Evaluación de políticas basadas en identidad con políticas basadas en recursos
Las políticas basadas en identidad y las políticas basadas en recursos conceden permisos referidos a las identidades o recursos a los que están asociadas. Cuando una entidad de IAM (usuario o rol) solicita acceso a un recurso de la misma cuenta, AWS evalúa todos los permisos concedidos por las políticas basadas en identidad y las basadas en recursos. Los permisos resultantes son la unión de aplicar los dos tipos. Si una política basada en identidad, una política basada en recursos, o ambas, permiten una acción, entonces AWS permite la acción. Una denegación explícita en una de estas políticas anulará el permiso.
Evaluación de políticas basadas en identidad con límites de permisos
Cuando AWS evalúa las políticas basadas en identidad y el límite de permisos para un usuario, los permisos resultantes son la intersección de las dos categorías. Esto significa que, cuando se añade un límite de permisos a un usuario que ya tiene políticas de permisos basadas en identidad, es posible que se reduzca el número de acciones que puede realizar. Del mismo modo, al eliminar un límite de permisos de un usuario, es posible que aumente el número de acciones que este puede realizar. Una denegación explícita en una de estas políticas anulará el permiso. Para ver información acerca del modo en que se evalúan otros tipos de políticas con los límites de permisos, consulte Evaluación de los permisos efectivos cuando se usan límites.
Evaluación de políticas basadas en identidad con SCP o RCP de Organizations
Cuando un usuario pertenece a una cuenta que es miembro de una organización y accede a un recurso que no tiene configurada una política basada en recursos, los permisos resultantes son la intersección de las políticas del usuario, las políticas de control de servicios (SCP) y la política de control de recursos (RCP). Esto significa que los tres tipos de políticas deben permitir una acción. Una denegación explícita en la política basada en la identidad, una SCP o una RCP anula la autorización.
Puede saber si su cuenta es miembro de una organización en AWS Organizations. Los miembros de la organización podrían verse afectados por una SCP o RCP. Para ver estos datos a través del comando AWS CLI u operación de la API de AWS, debe tener permisos para la acción organizations:DescribeOrganization
para su entidad de Organizations. Debe tener permisos adicionales para realizar la operación en la consola Organizations. Para saber si una SCP o RCP deniega el acceso a una solicitud específica o para cambiar los permisos efectivos, póngase en contacto con su administrador de AWS Organizations.
Ejemplo de evaluación de políticas basadas en identidad y políticas basadas en recursos
Los tipos de políticas más habituales son las políticas basadas en identidad y las políticas basadas en recursos. Cuando se solicita acceso a un recurso, AWS evalúa todos los permisos otorgados por las políticas para que haya al menos un permiso dentro de la misma cuenta. Una denegación explícita en cualquiera de las políticas anulará el permiso.
importante
Si la política basada en identidad o la política basada en recursos de la misma cuenta permite la solicitud y la otra no, la solicitud aún está permitida.
Supongamos que Carlos tiene el nombre de usuario carlossalazar
y que intenta guardar un archivo en el bucket de Amazon S3 amzn-s3-demo-bucket-carlossalazar-logs
.
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:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowS3Self", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::*log*" } ] }
La instrucción AllowS3ListRead
de esta política permite a Carlos ver una lista de todos los buckets de la cuenta. La instrucción AllowS3Self
concede a Carlos acceso completo al bucket que tiene el mismo nombre que su nombre de usuario. La instrucción DenyS3Logs
deniega a Carlos el acceso a los buckets de S3 que contengan log
en el nombre.
Además, la siguiente política basada en recursos (denominada política de bucket) está asociada al bucket amzn-s3-demo-bucket-carlossalazar
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/carlossalazar" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] } ] }
Esta política especifica que únicamente el usuario carlossalazar
puede obtener acceso al bucket amzn-s3-demo-bucket-carlossalazar
.
Cuando Carlos solicita guardar un archivo en el bucket amzn-s3-demo-bucket-carlossalazar-logs
, AWS determina qué políticas se aplican a la solicitud. En este caso, solo se aplican la política basada en identidad y la política basada en recursos. Ambas son políticas de permisos. Debido a que no se aplica ningún límite de permisos, la lógica de evaluación se reduce a lo siguiente.
AWS comprueba en primer lugar si existe una instrucción Deny
que se aplique al contexto de la solicitud. Encuentra una, ya que la política basada en identidad deniega explícitamente a Carlos el acceso a los buckets de S3 que se usan para el registro. A Carlos se le deniega el acceso.
Supongamos que luego se da cuenta de su error e intenta guardar el archivo en el bucket amzn-s3-demo-bucket-carlossalazar
. AWS comprueba si existe una instrucción Deny
y no encuentra ninguna. A continuación, comprueba las políticas de permisos. Tanto la política basada en la identidad como la política basada en los recursos permiten la solicitud. Por lo tanto, AWS permite la solicitud. Si alguna de ellas denegase explícitamente la instrucción, la solicitud habría sido denegada. Si uno de los tipos de política permite la solicitud y el otro no, la solicitud sigue estando permitida.