Ao usar o AWS re:Post, você concorda com os AWS re:Post Termos de uso

Como faço para restringir o acesso das identidades do IAM a recursos específicos do Amazon EC2?

4 minuto de leitura
0

Quero restringir o acesso das identidades do AWS Identity and Access Management (IAM) a um recurso específico do Amazon Elastic Compute Cloud (Amazon EC2).

Breve descrição

O Amazon EC2 tem suporte parcial para permissões ou condições em nível de recurso. Você pode usar permissões em nível de recurso para controlar como as identidades do IAM podem acessar recursos específicos do Amazon EC2.

Você também pode usar o ABAC (autorização baseada em tags) para controlar o acesso aos recursos da AWS. Para mais informações, consulte Tutorial do IAM: definir permissões para acessar recursos da AWS com base em etiquetas.

Resolução

Use o exemplo de políticas do IAM a seguir para restringir o acesso às instâncias do Amazon EC2 para seu caso de uso. Em seguida, anexe a política à identidade do IAM à qual você deseja restringir o acesso.

Restringir o acesso apenas para iniciar, interromper ou reinicializar instâncias

O exemplo de política a seguir restringe o acesso de uma identidade do IAM apenas para iniciar, interromper ou reinicializar instâncias do 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"
                }
            }
        }
    ]
}

Observação: substitua Proprietário pela sua chave de tag, Bob pelo valor da tag e AccountId pelo ID da sua conta da AWS.

Para restringir outros recursos do Amazon EC2 por região da AWS, certifique-se de que as ações suportem permissões e condições em nível de recurso.

Restringir o lançamento de instâncias do EC2 por tag

O exemplo de política a seguir usa a chave da tag Proprietário para restringir o acesso de uma identidade do IAM para iniciar apenas instâncias do 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"
                    ]
                }
            }
        }
    ]
}

Observação: substitua o Proprietário pela sua chave de tag e o AccountId pelo ID da sua conta.

Restringir o lançamento de instâncias do EC2 por tipo de instância

O exemplo de política a seguir restringe o acesso de uma identidade do IAM para iniciar somente instâncias do EC2 com o tipo de instância 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"
                    ]
                }
            }
        }
    ]
}

Observação: substitua o tipo de instância t3.* pelo seu tipo de instância, por exemplo, t3.nano. Além disso, substitua AccountId pelo ID da sua conta.

Para obter mais informações, consulte Convenções de nomenclatura de tipos de instâncias do Amazon EC2.

Informações relacionadas

Como crio uma política do IAM para controlar o acesso aos recursos do Amazon EC2 usando etiquetas?

Como posso usar as tags de política do IAM para restringir a forma como uma instância do EC2 ou um volume do EBS podem ser criados e acessados?

Políticas baseadas em identidade para o Amazon EC2