AWS Identity and Access Management
Guía del usuario

Control del acceso mediante políticas

Puede utilizar una política para controlar el acceso a los recursos de IAM o de todo AWS.

Para utilizar una política para controlar el acceso en AWS, debe entender cómo AWS otorga acceso. AWS se compone de colecciones de recursos. Un usuario de IAM es un recurso. Un bucket de Amazon S3 es un recurso. Cuando se utiliza la API de AWS, la AWS CLI o la Consola de administración de AWS para realizar una operación (como, por ejemplo, crear un usuario), se envía una solicitud para dicha operación. La solicitud especifica una acción, un recurso, una entidad principal (usuario o rol), una cuenta principal y toda la información de la solicitud necesaria. Toda esta información proporciona el contexto.

AWS comprueba entonces que usted (la entidad principal) se ha autenticado (ha iniciado sesión) y está autorizado (tiene permiso) para realizar la acción especificada en el recurso especificado. Durante la autorización, AWS comprueba todas las políticas aplicables al contexto de la solicitud. La mayoría de las políticas se almacenan en AWS como documentos JSON y especifican los permisos de las entidades principales. Para obtener más información sobre los tipos de políticas y sus usos, consulte Políticas y permisos.

AWS autoriza la solicitud únicamente si cada parte de la solicitud está permitida por las políticas. Para ver un diagrama de este proceso, consulte Entender cómo funciona IAM. Para obtener información detallada acerca de cómo AWS determina si una solicitud está permitida, consulte Lógica de evaluación de políticas.

Cuando crea una política de IAM, puede controlar el acceso a los siguientes recursos:

  • Entidades principales – Controle qué puede hacer la persona que realiza la solicitud (la entidad principal).

  • Identidades de IAM – Controle a qué identidades de IAM (grupos, usuarios y roles) se puede tener acceso y cómo.

  • Políticas de IAM – Controle quién puede crear, editar y eliminar políticas administradas por el cliente y quién puede asociar y desasociar todas las políticas administradas.

  • Recursos de AWS – Controle quién tiene acceso a los recursos a través de una política basada en identidad o una política basada en recursos.

  • Cuentas de AWS – Controle si una solicitud se permite únicamente para los miembros de una cuenta determinada.

Las políticas le permiten especificar quién tiene acceso a recursos de AWS y qué acciones pueden realizar en dichos recursos. Todos los usuarios de IAM empiezan sin permisos. En otras palabras, de forma predeterminada, los usuarios no pueden hacer nada, ni siquiera consultar sus propias claves de acceso. Para proporcionar a un usuario permiso para hacer algo, puede añadir el permiso al usuario (es decir, asociar una política al usuario). También puede añadir el usuario a un grupo que tenga el permiso necesario.

Por ejemplo, puede conceder a un usuario permiso para generar una lista de sus propias claves de acceso. También puede ampliar ese permiso y permitir que cada usuario cree, actualice y elimine sus propias claves.

Cuando concede permisos a un grupo, todos los usuarios de ese grupo obtienen los permisos. Por ejemplo, puede dar permiso al grupo Administrators para que realice cualquiera de las acciones de IAM con cualquiera de los recursos de la cuenta de AWS. Otro ejemplo: puede dar al grupo Managers permiso para describir las instancias Amazon EC2 de la cuenta de AWS.

Para obtener información sobre cómo delegar permisos básicos a sus usuarios, grupos y roles, consulte Permisos obligatorios para obtener acceso a recursos de IAM. Para ver ejemplos de políticas adicionales que ilustran estos permisos básicos, consulte Ejemplos de políticas para administrar recursos de IAM.

Control del acceso para entidades principales

Puede utilizar políticas para controlar qué puede hacer la persona que realiza la solicitud (la entidad principal). Para ello, debe asociar una política basada en identidad a la identidad de esa persona (usuario, grupo de usuarios o rol). También puede usar un límite de permisos que establezca los permisos máximos que una entidad (usuario o rol) puede tener.

Por ejemplo, suponga que desea que el usuario Zhang Wei tenga acceso completo a CloudWatch, Amazon DynamoDB, Amazon EC2 y Amazon S3. Puede crear dos políticas diferentes para poder dividirlas más adelante si necesita un conjunto de permisos para un usuario distinto. O puede incluir los dos permisos en una única política y, a continuación, asociar dicha política al usuario de IAM llamado Zhang Wei. También podría asociar una política a un grupo al que pertenezca Zhang o a un rol que Zhang pueda asumir. Como resultado, cuando Zhang vea el contenido de un bucket de S3, se permitirán sus solicitudes. Si intenta crear un usuario de IAM, se denegará su solicitud porque no tiene permiso.

Puede utilizar un límite de permisos con Zhang para asegurarse de que nunca se le concede acceso al bucket de S3 CompanyConfidential. Para ello, determine los permisos que desea que Zhang tenga como máximo. En este caso, puede controlar lo que hace con sus políticas de permisos. Aquí, solo le importa que no tenga acceso al bucket confidencial. Por lo tanto, utilice la siguiente política para definir el límite de Zhang de forma que se le permitan todas las acciones de AWS para Amazon S3 y algunos otros servicios, pero se le deniegue el acceso al bucket de S3 CompanyConfidential. Debido a que el límite de permisos no permite ninguna acción de IAM, evita que Zhang elimine su límite (o el de cualquier otra persona).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SomeServices", "Effect": "Allow", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:*", "s3:*" ], "Resource": "*" }, { "Sid": "NoConfidentialBucket", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::CompanyConfidential/*", "arn:aws:s3:::CompanyConfidential" ] } ] }

Cuando asigne una política de este tipo como un límite de permisos para un usuario, recuerde que no concede ningún permiso. Solo establece los permisos máximos que una política basada en la identidad puede conceder a una entidad de IAM. Para obtener más información sobre los límites de permisos, consulte Límites de permisos para las entidades de IAM.

Para obtener información detallada sobre los procedimientos mencionados anteriormente, consulte estos recursos:

Control del acceso a identidades

Puede utilizar políticas de IAM para controlar lo que los usuarios pueden hacer con una identidad creando una política y asociándola a todos los usuarios mediante un grupo. Para ello, cree una política que limite lo que se puede hacer en una identidad o quién puede tener acceso a ella.

Por ejemplo, puede crear un grupo llamado AllUsers y, a continuación, asociar ese grupo a todos los usuarios. Cuando cree el grupo, puede conceder a todos los usuarios acceso para rotar sus credenciales tal y como se describe en la sección anterior. A continuación, puede crear una política que deniegue el acceso para cambiar el grupo a menos que el nombre de usuario se incluya en la condición de la política. Sin embargo, esa parte de la política solo deniega el acceso a todos los usuarios menos a los indicados. También debe incluir permisos para permitir todas las acciones de administración del grupo a todos los miembros del grupo. Por último, debe asociar esta política al grupo de forma que se aplique a todos los usuarios. Como resultado, cuando un usuario no especificado en la política intente realizar cambios en el grupo, se denegará la solicitud.

Para crear esta política con el editor visual

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la izquierda, elija Policies (Políticas).

    Si es la primera vez que elige Policies (Políticas), aparecerá la página Welcome to Managed Policies (Bienvenido a políticas administradas). Elija Get Started.

  3. Elija Create Policy.

  4. En la pestaña Visual editor (Editor visual), seleccione Choose a service (Elegir un servicio) para empezar. A continuación, elija IAM.

  5. Seleccione Select actions (Seleccionar acciones) y escriba group en el cuadro de búsqueda. El editor visual muestra todas las acciones de IAM que contienen la palabra group. Seleccione todas las casillas de verificación.

  6. Elija Resources (Recursos) para especificar recursos para su política. En función de las acciones que ha elegido, debería ver los tipos de recursos group (grupo), group-path (ruta-grupo) y user (usuario).

    • group (grupo) – Elija Add ARN (Añadir ARN). En Resource (Recurso), seleccione la casilla situada junto a Any (Cualquiera). En Group Name With Path (Nombre de grupo con ruta), escriba el nombre de grupo AllUsers. A continuación, elija Add (Añadir).

    • group-path (ruta-grupo) – Seleccione la casilla situada junto a Any (Cualquiera).

    • user (usuario) – Seleccione la casilla situada junto a Any (Cualquiera).

    Una de las acciones que ha elegido, ListGroups, no permite el uso de recursos específicos. No tiene que elegir All resources (Todos los recursos) para esa acción. Cuando guarde la política o vea la política en la pestaña JSON, podrá ver que IAM crea automáticamente un nuevo bloque de permisos que concede permiso a esta acción en todos los recursos.

  7. Para añadir otro bloque de permisos, seleccione Add additional permissions (Añadir permisos adicionales).

  8. Elija Choose a service (Elegir un servicio) y después IAM.

  9. Seleccione Select actions (Seleccionar acciones) y después Switch to deny permissions (Cambiar a denegar permisos). Cuando termine, se usará todo el bloque para denegar permisos.

  10. Escriba group en el cuadro de búsqueda. El editor visual muestra todas las acciones de IAM que contienen la palabra group. Seleccione las casillas situadas junto a las siguientes acciones:

    • CreateGroup

    • DeleteGroup

    • RemoveUserFromGroup

    • AttachGroupPolicy

    • DeleteGroupPolicy

    • DetachGroupPolicy

    • PutGroupPolicy

    • UpdateGroup

  11. Elija Resources (Recursos) para especificar los recursos para su política. En función de las acciones que ha elegido, debería ver el tipo de recurso group (grupo). Elija Add ARN (Añadir ARN). En Resource (Recurso), seleccione la casilla situada junto a Any (Cualquiera). En Group Name With Path (Nombre de grupo con ruta), escriba el nombre de grupo AllUsers. A continuación, elija Add (Añadir).

  12. Elija Specify request conditions (optional) (Especificar condiciones de solicitud [opcional]) y, a continuación, seleccione Add condition (Añadir condición). Complete el formulario con los siguientes valores:

    • Key (Clave) – Elija aws:username

    • Qualifier (Calificador) – Elija Default (Predeterminado)

    • Operator (Operador) – Elija StringNotEquals

    • Value (Valor) – Escriba srodriguez y después elija Add another condition value (Añadir otro valor de condición). Escriba mjackson y después elija Add another condition value (Añadir otro valor de condición). Escriba adesai y después elija Add (Añadir).

    Esta condición garantiza que se denegará el acceso a las acciones de administración del grupo especificadas cuando el usuario que realice la llamada no esté incluido en la lista. Dado que este permiso deniega el permiso de forma explícita, invalida el bloque anterior que permitía a los usuarios llamar a las acciones. A los usuarios de la lista no se les denegará el acceso y se les concederá permiso en el primer bloque de permisos, por lo que podrán administrar totalmente el grupo.

  13. Cuando haya terminado, seleccione Review policy.

    nota

    Puede alternar entre las pestañas Visual editor (Editor visual) y JSON en cualquier momento. Sin embargo, si realiza cambios o elige Review policy (Revisar política) en la pestaña Visual editor (Editor visual), IAM podría reestructurar la política para optimizarla para el editor visual. Para obtener más información, consulte Reestructuración de políticas.

  14. En la página Review policy (Revisar política), en Name (Nombre), escriba LimitAllUserGroupManagement. En Description (Descripción), escriba Allows all users Read-only access to a specific group, and allows only specific users access to make changes to the group. Revise el resumen de política para asegurarse de que ha concedido los permisos deseados. A continuación, seleccione Create policy (Crear política) para guardar la nueva política.

  15. Asocie la política al grupo. Para obtener más información, consulte Adición y eliminación de permisos de identidad de IAM.

También puede crear la misma política utilizando este documento de política JSON de ejemplo. Para consultar esta política de JSON, visite IAM: Permite que usuarios específicos de IAM administren un grupo, mediante programación y en la consola. Para obtener instrucciones detalladas para crear una política utilizando un documento JSON, consulte Creación de políticas en la pestaña JSON.

Control del acceso a políticas

Puede controlar la forma en que los usuarios pueden aplicar políticas administradas por AWS. Para ello, asocie esta política a todos los usuarios. Lo ideal sería hacer esto mediante un grupo.

Por ejemplo, podría crear una política que permitiera a los usuarios asociar solo las políticas IAMUserChangePassword y PowerUserAccess administradas por AWS a un nuevo usuario, grupo o rol de IAM.

Para las políticas administradas por el cliente, puede controlar quién puede crear, actualizar y eliminar estas políticas. Puede controlar quién puede asociar y desvincular políticas de entidades principales (grupos, usuarios y roles). También puede controlar las políticas que un usuario puede asociar a determinadas entidades, o bien desasociarlas.

Por ejemplo, puede conceder permisos a un administrador de la cuenta para crear, actualizar y eliminar políticas. A continuación, puede conceder permisos a un jefe de equipo o a otro administrador con permisos limitados para asociar estas políticas a entidades principales, o bien desvincularlas, que dicho administrador administra.

Para obtener más información, consulte estos recursos:

Control de permisos para crear, actualizar y eliminar políticas administradas por el cliente

Puede utilizar las políticas de IAM para controlar quién puede crear, actualizar y eliminar las políticas administradas por el cliente en la cuenta de AWS. En la siguiente lista se incluyen las operaciones de API relacionadas directamente con la creación, actualización y eliminación de políticas o versiones de políticas:

Las operaciones de la API de la lista anterior corresponden a acciones que puede permitir o denegar —es decir, permisos que puede conceder— con una política de IAM.

Considere la política de ejemplo siguiente. Permite a un usuario crear, actualizar (es decir, crear una nueva versión de la política), eliminar y configurar una versión predeterminada para todas las políticas administradas por el cliente de una cuenta de AWS. El ejemplo de política también permite a los usuarios enumerar políticas y obtener políticas. Para obtener información sobre cómo crear una política mediante este documento de política JSON de ejemplo, consulte Creación de políticas en la pestaña JSON.

ejemplo política que permite crear, actualizar, eliminar, enumerar, obtener y configurar la versión predeterminada de todas las políticas

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion" ], "Resource": "*" } }

Puede crear políticas que limiten el uso de estas operaciones de API de modo que solo afecten a las políticas administradas que especifique. Por ejemplo, es posible que quiera permitir a un usuario configurar la versión predeterminada y eliminar las versiones de políticas, pero solo para determinadas políticas administradas por el cliente. Para ello, especifique el ARN de la política en el elemento Resource de la política que concede dichos permisos.

En el siguiente ejemplo, se muestra una política que permite a un usuario eliminar versiones de políticas y configurar la versión predeterminada. Sin embargo, estas acciones solo están permitidas para las políticas administradas por el cliente que incluyan la ruta /TEAM-A. El ARN de la política administrada por el cliente se especifica en el elemento Resource de la política. (En este ejemplo, el ARN incluye una ruta y un carácter comodín y, por tanto, coincide con todas las políticas administradas por el cliente que incluyan la ruta /TEAM-A/). Para obtener información sobre cómo crear una política mediante este documento de política JSON de ejemplo, consulte Creación de políticas en la pestaña JSON.

Para obtener más información sobre cómo utilizar las rutas de acceso en los nombres de las políticas administradas por el cliente, consulte Nombres fáciles de recordar y rutas.

ejemplo política que permite eliminar las versiones de políticas y configurar la versión predeterminada únicamente para políticas específicas

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:DeletePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*" } }

Control de permisos para asociar políticas administradas y desasociarlas

También puede utilizar políticas de IAM para permitir a los usuarios trabajar solo con determinadas políticas administradas. De hecho, puede controlar los permisos que un usuario puede conceder a otras entidades principales.

En la siguiente lista se muestran las operaciones de API relacionadas directamente con la asociación de políticas administradas a entidades principales y su desvinculación:

Puede crear políticas que limiten el uso de estas operaciones de API de forma que solo afecten a las políticas administradas o entidades principales especificadas. Por ejemplo, es posible que quiera permitir a un usuario asociar políticas administradas, pero solo las que usted especifique. O bien, es posible que quiera permitir a un usuario asociar políticas administradas, pero solo a las entidades principales que usted especifique.

En el siguiente ejemplo de política se permite a un usuario asociar políticas administradas a únicamente los grupos y roles que incluyan la ruta de acceso /TEAM-A/. Los ARN del grupo y del rol se especifican en el elemento Resource de la política. (En este ejemplo, los ARN incluyen una ruta y un carácter comodín y, por lo tanto, coinciden con todos los grupos y roles que contienen la ruta /TEAM-A/). Para obtener información sobre cómo crear una política mediante este documento de política JSON de ejemplo, consulte Creación de políticas en la pestaña JSON.

ejemplo política que permite asociar políticas administradas únicamente a determinados grupos o roles

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ] } }

Puede limitar incluso más las acciones del ejemplo anterior para que afecten únicamente a determinadas políticas. Es decir, puede controlar los permisos que un usuario puede asociar a otras entidades principales —mediante la adición de una condición a la política.

En el siguiente ejemplo, la condición garantiza que los permisos AttachGroupPolicy y AttachRolePolicy solo están permitidos cuando la política que se asocia coincide con una de las políticas especificadas. La condición utiliza la clave de condición iam:PolicyARN para determinar la política o políticas que pueden asociarse. En la política de ejemplo siguiente, se amplía el ejemplo anterior. Se permite a un usuario asociar únicamente las políticas administradas que incluyen la ruta /TEAM-A/ únicamente a los grupos y roles que incluyan la ruta /TEAM-A/. Para obtener información sobre cómo crear una política mediante este documento de política JSON de ejemplo, consulte Creación de políticas en la pestaña JSON.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ], "Condition": {"ArnLike": {"iam:PolicyARN": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"} } } }

Esta política utiliza el operador de condición ArnLike porque el operador ARN incluye un carácter comodín. Para un ARN específico, utilice el operador de condición ArnEquals. Para obtener más información sobre los tipos de condición ArnLike y ArnEquals, consulte Operadores de condición de nombre de recurso de Amazon (ARN) en la sección Tipos de condición de la Referencia de los elementos de la política.

Por ejemplo, puede limitar el uso de estas acciones para involucrar únicamente a las políticas administradas que especifique. Para ello, especifique el ARN de la política en el elemento Condition de la política que concede dichos permisos. Por ejemplo, para especificar el ARN de una política administrada por el cliente:

"Condition": {"ArnEquals": {"iam:PolicyARN": "arn:aws:iam::123456789012:policy/POLICY-NAME"} }

También puede especificar el ARN de una política administrada por AWS en el elemento Condition de una política. El ARN de una política administrada por AWS utiliza el alias especial aws en el ARN de la política, en lugar de un ID de cuenta, tal y como se indica en este ejemplo:

"Condition": {"ArnEquals": {"iam:PolicyARN": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"} }

Control del acceso a los recursos

Puede controlar el acceso a los recursos a través de una política basada en la identidad o una política basada en recursos. En una política basada en la identidad, la política se asocia a una identidad y se especifica a qué recursos tiene acceso dicha identidad. En una política basada en recursos, se asocia una política al recurso que desea controlar. En la política, especifica las entidades principales que pueden tener acceso a dicho recurso. Para obtener más información sobre ambos tipos de políticas, consulte Políticas basadas en identidad y políticas basadas en recursos.

Para obtener más información, consulte estos recursos:

Los creadores de recursos no tienen automáticamente permisos

Si inicia sesión con las credenciales de Usuario de la cuenta raíz de AWS, tendrá permiso para realizar cualquier acción en los recursos que pertenecen a la cuenta. Sin embargo, esto no es cierto en el caso de los usuarios de IAM. Puede que a un usuario de IAM se le haya concedido permiso para obtener acceso a un recurso, pero los permisos de usuario, incluso sobre ese recurso, se limitan a lo que se ha concedido explícitamente. Esto significa que solo por el hecho de crear un recurso, como un rol de IAM, no se le concede automáticamente permiso para editar o eliminar dicho rol. Además, el propietario de la cuenta u otro usuario al que se haya concedido acceso para administrar sus permisos pueden revocar su permiso en cualquier momento.

Control del acceso a entidades principales en una cuenta específica

Puede conceder directamente a los usuarios de IAM de su propia cuenta acceso a los recursos. Si hay usuarios de otra cuenta que necesitan tener acceso a sus recursos, puede crear un rol de IAM. Un rol es una entidad que incluye permisos, pero que no está asociada a un usuario concreto. Los usuarios de otras cuentas pueden asumir el rol y obtener acceso a recursos en función de los permisos que haya asignado al rol. Para obtener más información, consulte Proporcionar acceso a un usuario de IAM a otra cuenta de AWS de la que es propietario.

nota

Algunos servicios admiten las políticas basadas en recursos que se describen en Políticas basadas en identidad y políticas basadas en recursos (como Amazon S3, Amazon SNS y Amazon SQS). En estos servicios, una alternativa al uso de funciones es asociar una política al recurso (bucket, tema o cola) que quiere compartir. La política basada en recursos permiten especificar la cuenta de AWS que tiene permisos de acceso al recurso.