Al usar AWS re:Post, aceptas las AWS re:Post Términos de uso

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

4 minutos de lectura
0

Quiero restringir el acceso de las identidades de AWS Identity and Access Management (IAM) a un recurso específico de Amazon Elastic Compute Cloud (Amazon EC2).

Breve descripción

Amazon EC2 admite parcialmente los permisos o condiciones de nivel de recursos. Puede usar permisos a nivel de recursos para controlar cómo se permite a las identidades de IAM acceder a recursos específicos de Amazon EC2.

También puede usar ABAC (autorización basada en etiquetas) para controlar el acceso a los recursos de AWS. Para obtener más información, consulte el tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas.

Resolución

Utilice el siguiente ejemplo de políticas de IAM para restringir el acceso a las instancias de Amazon EC2 en su caso de uso. A continuación, adjunte la política a la identidad de IAM a la que desea restringir el acceso.

Restrinja el acceso solo a instancias de inicio, parada o reinicio

El siguiente ejemplo de política restringe el acceso a una identidad de IAM solo para iniciar, detener o reiniciar instancias EC2:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "Bob"
                }
            }
        }
    ]
}

Nota: Sustituya Propietario por la clave de la etiqueta, Bob por el valor de la etiqueta y AccountId por el ID de su cuenta de AWS.

Para restringir otros recursos de Amazon EC2 por región de AWS, asegúrese de que las acciones admitan los permisos y las condiciones a nivel de recursos.

Restringir el inicio de instancias EC2 por etiqueta

El siguiente ejemplo de política utiliza la clave de etiqueta Propietario para restringir el acceso a una identidad de IAM solo para iniciar instancias EC2:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:RequestTag/Owner": "*"
                }
            }
        },
        {
            "Sid": "AllowRunInstances",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Sid": "AllowToDescribeAll",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowCreateTagsOnLaunching",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:*/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "RunInstances"
                    ]
                }
            }
        }
    ]
}

Nota: Sustituya Propietario por la clave de la etiqueta y AccountId por el ID de su cuenta.

Restringir el inicio de instancias EC2 por tipo de instancia

El siguiente ejemplo de política restringe el acceso a una identidad de IAM solo para iniciar instancias EC2 con el tipo de instancia t3.*:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "ec2:InstanceType": "t3.*"
                }
            }
        },
        {
            "Sid": "AllowRunInstances",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Sid": "AllowToDescribeAll",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowCreateTagsOnLaunching",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:*/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "RunInstances"
                    ]
                }
            }
        }
    ]
}

Nota: Sustituya el tipo de instancia t3.* con su tipo de instancia, por ejemplo, t3.nano. Además, reemplace AccountId por el ID de su cuenta.

Para obtener más información, consulte las convenciones de nomenclatura de los tipos de instancias de Amazon EC2.

Información relacionada

¿Cómo puedo crear una política de IAM para controlar el acceso a los recursos de Amazon EC2 mediante etiquetas?

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

Políticas basadas en identidad para Amazon EC2