Saltar al contenido

¿Cómo puedo restringir el acceso a una sesión de rol de IAM específica mediante una política basada en identidad de IAM?

3 minutos de lectura
0

Quiero usar una política basada en identidad para conceder permisos a una sesión de rol específica de AWS Identity and Access Management (IAM).

Resolución

Para crear una política de IAM que permita el acceso a una sesión de rol de IAM específica, utiliza la clave de contexto de condición global de AWS aws:userid.

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

La clave de condición global aws:userid comprueba si el ID único de la entidad principal que hace la solicitud coincide con el ID único especificado en la política de IAM. Por ejemplo, para permitir que una sesión de rol de IAM realice acciones específicas de Amazon Elastic Compute Cloud (Amazon EC2) en tu cuenta de AWS, crea una política de IAM:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowASpecificRoleSession",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:TerminateInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:userid": "AROA123456789EXAMPLE:&ExampleRoleSessionName"
                }
            }
        }
    ]
}

Nota: Sustituye aws:userid por el nombre de sesión y el ID único de tu rol.

La política de IAM anterior concede a la instancia de Amazon EC2 acceso a la sesión de rol de IAM en la clave de condición global aws:userid. Otras sesiones de roles no pueden realizar acciones de Amazon EC2.

Para obtener el ID de rol para el rol de IAM, ejecuta el comando get-role de la AWS CLI:

aws iam get-role --role-name role_name

Nota: Sustituye role_name por el nombre de tu rol.

Recibirás un resultado similar al siguiente:

{
    "Role": {
        "Path": "/",
        "RoleName": "Test-Role",
        "RoleId": "AROA123456789EXAMPLE",
        "Arn": "arn:aws:iam::444455556666:role/Role",
        "CreateDate": "2023-08-04T12:37:14+00:00",
        "AssumeRolePolicyDocument": "URL-encoded-JSON",
        "Description": "Test Role",
        "MaxSessionDuration": 3600,
        "RoleLastUsed": {
            "Region": "us-east-1",
            "LastUsedDate": "2025-10-27T12:36:29+00:00"
        }
    }
}

En el resultado, compruebe la cadena RoleId. El ID de rol se usa en la política basada en identidad para limitar el acceso de la instancia de Amazon EC2 a la sesión de rol de IAM.

Nota: La clave de condición global aws:userid se puede usar en cualquier tipo de política de IAM, como una política basada en identidad, una política basada en recursos y una política de límites de permisos. Los valores de la clave de condición global aws:userid dependen del tipo de entidad principal que inicie la solicitud. Para determinar los valores de los diferentes tipos de entidades principales, consulta Valores clave de entidades principales.

Información relacionada

¿Cómo puedo restringir el acceso de las identidades de IAM a recursos específicos de Amazon EC2?

¿Cómo puedo usar las etiquetas de políticas de IAM para restringir la forma en que se puede crear una instancia de EC2 o un volumen de EBS y acceder a estos?