Controlar el acceso a los recursos de AWS 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 AWS Management Console 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 en IAM.
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 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 lo siguiente:
-
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 de usuarios, 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 agregar el usuario a un grupo de usuarios 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 de usuarios, todos los usuarios de ese grupo de usuarios obtienen los permisos. Por ejemplo, puede dar permiso al grupo de usuarios Administrators para que realice cualquiera de las acciones de IAM con cualquiera de los recursos de la cuenta de Cuenta de AWS. Otro ejemplo: puede dar permiso al grupo de usuarios de administradores para describir las instancias de Amazon EC2 de la cuenta de Cuenta de AWS.
Para obtener información sobre cómo delegar permisos básicos a sus usuarios, grupos de usuarios 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 de
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 utilizar 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 de usuarios 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 amzn-s3-demo-bucket1
. 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 amzn-s3-demo-bucket1
. 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": "PermissionsBoundarySomeServices", "Effect": "Allow", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:*", "s3:*" ], "Resource": "*" }, { "Sid": "PermissionsBoundaryNoConfidentialBucket", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
", "arn:aws:s3:::amzn-s3-demo-bucket1
/*" ] } ] }
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:
-
Para obtener más información sobre cómo crear una política de IAM que pueda asociar a una entidad principal, consulte Definir permisos de IAM personalizados con políticas administradas por el cliente.
-
Para obtener información sobre cómo asociar una política de IAM a una entidad principal, consulte Adición y eliminación de permisos de identidad de IAM.
-
Para ver una política de ejemplo que concede acceso completo a EC2, consulte Amazon EC2: permite el acceso completo a EC2 en una región determinada, mediante programación y en la consola.
-
Para permitir el acceso de solo lectura a un bucket de S3, utilice las dos primeras instrucciones de la siguiente política de ejemplo: Amazon S3: permite el acceso de lectura y escritura a objetos en un bucket de S3 mediante programación y en la consola.
-
Para ver una política de ejemplo a fin de permitirles a los usuarios definir sus credenciales, como la contraseña de la consola, las claves de acceso mediante programación y los dispositivos MFA, consulte AWS: permite a los usuarios de IAM autenticados por MFA administrar sus propias credenciales en la página Credenciales de seguridad.
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 de usuarios. 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 de usuarios llamado AllUsers y, a continuación, asociar ese grupo de usuarios a todos los usuarios. Cuando crea el grupo de usuarios, puede otorgarle acceso a todos los usuarios para que definan sus credenciales como se describe en la sección anterior. A continuación, puede crear una política que deniegue el acceso para cambiar el grupo de usuarios 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 de usuarios a todos los miembros del grupo de usuarios. Por último, debe asociar esta política al grupo de usuarios 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 de usuarios, se denegará la solicitud.
Para crear esta política con el editor visual
Inicie sesión en AWS Management Console Management Console y abra la consola IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la izquierda, elija Políticas.
Si es la primera vez que elige Políticas, aparecerá la página Welcome to Managed Policies (Bienvenido a políticas administradas). Elija Get Started (Comenzar).
-
Elija Create Policy (Crear política).
-
En la sección Editor de políticas, seleccione la opción Visual.
-
En Seleccionar un servicio, seleccione IAM.
-
En Acciones permitidas, escriba
group
en el cuadro de búsqueda. El editor visual muestra todas las acciones de IAM que contienen la palabragroup
. Seleccione todas las casillas de verificación. -
Elija Resources (Recursos) para especificar recursos para su política. En función de las acciones que haya elegido, debería ver los tipos de recursos grupo y usuario.
-
grupo: seleccione Agregar ARN. En Recurso en, seleccione la opción Cualquier cuenta. Seleccione la casilla de verificación Cualquier nombre de grupo con ruta y, a continuación, escriba el nombre de grupo de usuarios
AllUsers
. A continuación, seleccione Agregar ARN. -
usuario: seleccione la casilla de verificación situada junto a Cualquiera de esta cuenta.
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 la visualice en el editor JSON, podrá ver que IAM crea automáticamente un nuevo bloque de permisos que conceden a esta acción permiso en todos los recursos. -
-
Para agregar otro bloque de permisos, seleccione Agregar más permisos.
-
Seleccione Seleccionar un servicio, y luego IAM.
-
Seleccione Acciones permitidas, y después Cambiar a denegar permisos. Cuando termine, se utilizará todo el bloque para denegar permisos.
-
Escriba
group
en el cuadro de búsqueda. El editor visual muestra todas las acciones de IAM que contienen la palabragroup
. Seleccione las casillas situadas junto a las siguientes acciones:-
CreateGroup
-
DeleteGroup
-
RemoveUserFromGroup
-
AttachGroupPolicy
-
DeleteGroupPolicy
-
DetachGroupPolicy
-
PutGroupPolicy
-
UpdateGroup
-
-
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). Seleccione Agregar ARN. En Recurso en, seleccione la opción Cualquier cuenta. En Cualquier nombre de grupo con ruta, escriba el nombre de grupo de usuarios
AllUsers
. A continuación, seleccione Agregar ARN. -
Seleccione Solicitar condiciones: opcional, y luego Agregar otra condición. Complete el formulario con los siguientes valores:
-
Clave de condición: seleccione aws:username
-
Calificador - Elija Predeterminado
-
Operador - Elija StringNotEquals
-
Valor: escriba
srodriguez
y después seleccione Agregar para agregar otro valor. Escribamjackson
y después seleccione Agregar para agregar otro valor. Escribaadesai
y después seleccione Agregar condición.
Esta condición garantiza que se denegará el acceso a las acciones de administración del grupo de usuarios 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 de usuarios.
-
-
Cuando haya terminado, elija Next.
nota
Puede alternar entre las opciones Visual y JSON del editor en todo momento. No obstante, si realiza cambios o selecciona Siguiente en la opción Visual del editor, es posible que IAM reestructure la política con el fin de optimizarla para el editor visual. Para obtener más información, consulte Reestructuración de políticas.
-
En la página Revisar y crear, en Nombre de la política, escriba
LimitAllUserGroupManagement
. En Description (Descripción), escribaAllows all users read-only access to a specific user group, and allows only specific users access to make changes to the user group
. Revise los Permisos definidos en esta 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. -
Asocie la política al grupo de usuarios. 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 mediante el editor 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 de usuarios.
Por ejemplo, podría crear una política que permitiera a los usuarios asociar solo las políticas IAMUserChangePassword
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 de usuarios, 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:
-
Para obtener más información sobre cómo crear una política de IAM que pueda asociar a una entidad principal, consulte Definir permisos de IAM personalizados con políticas administradas por el cliente.
-
Para obtener información sobre cómo asociar una política de IAM a una entidad principal, consulte Adición y eliminación de permisos de identidad de IAM.
-
Para ver un ejemplo de política para limitar el uso de las políticas administradas, consulte IAM: limita las políticas administradas que pueden aplicarse a un usuario, grupo o rol de .
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 su cuenta de 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 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 mediante el editor JSON.
ejemplo Ejemplo de 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 mediante el editor 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 Ejemplo de 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
: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 de usuarios y roles que incluyan la ruta de acceso /TEAM-A/. Los ARN del grupo de usuarios 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 de usuarios 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 mediante el editor JSON.
ejemplo Ejemplo de política que permite asociar políticas administradas únicamente a determinados grupos de usuarios o roles
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::
account-id
:group/TEAM-A/*", "arn:aws:iam::account-id
: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 iam:PolicyARN
clave de condición 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 de usuarios 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 mediante el editor JSON.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::
account-id
:group/TEAM-A/*", "arn:aws:iam::account-id
:role/TEAM-A/*" ], "Condition": {"ArnLike": {"iam:PolicyARN": "arn:aws:iam::account-id
:policy/TEAM-A/*"} } } }
Esta política utiliza el operador de condición ArnLike
, pero también puede utilizar el operador de condición ArnEquals
porque estos dos operadores de condición se comportan de forma idéntica. 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:
-
Para obtener más información sobre cómo crear una política de IAM que pueda asociar a una entidad principal, consulte Definir permisos de IAM personalizados con políticas administradas por el cliente.
-
Para obtener información sobre cómo asociar una política de IAM a una entidad principal, consulte Adición y eliminación de permisos de identidad de IAM.
-
Amazon S3 admite el uso de políticas basadas en recursos en sus buckets. Para obtener más información, consulte Ejemplos de política de bucket.
Los creadores de recursos no tienen automáticamente permisos
Si inicia sesión con las credenciales de Usuario raíz de la cuenta 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 Acceso para un usuario de IAM en otra Cuenta de AWS propia.
nota
Algunos servicios de admiten políticas basadas en recursos como se describe en Políticas basadas en identidad y políticas basadas en recursos (como Amazon S3, Amazon SNS y Amazon SQS). Para esos servicios, una alternativa al uso de roles es adjuntar una política al recurso (bucket, tema o cola) que desea compartir. La política basada en recursos puede especificar la cuenta de AWS que tenga permisos para obtener acceso al recurso.