Como faço para criar uma política do IAM para conceder explicitamente permissões para criar e gerenciar instâncias do EC2 em uma VPC especificada que tenha tags?
Quero criar uma política do AWS Identity and Access Management (IAM) que conceda explicitamente permissões às identidades do IAM para gerenciar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) em uma nuvem privada virtual (VPC).
Breve descrição
A política do IAM deve limitar as permissões da identidade do IAM para gerenciar as instâncias na VPC que tem tags.
O Amazon EC2 fornece permissões parciais em nível de recurso, mas há várias ações, recursos e condições em nível de serviço que você pode usar. Para controlar o acesso aos recursos do EC2, use tags de recursos.
Resolução
Crie uma política que conceda permissões para iniciar as instâncias na VPC, mas restrinja as permissões da identidade do IAM para gerenciar as instâncias. Para restringir o gerenciamento de instâncias, use a condição de política ec2:ResourceTag.
Crie uma política gerenciada para aplicar às entidades do IAM que iniciam suas instâncias
Conclua as seguintes etapas:
-
Abra o console do IAM, escolha Políticas e depois escolha Criar política.
-
Escolha a guia JSON e insira a seguinte política personalizada:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME", "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ReadOnlyEC2WithNonResource", "Action": [ "ec2:Describe*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "ModifyingEC2WithNonResource", "Action": [ "ec2:CreateKeyPair", "ec2:CreateSecurityGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "RunInstancesWithTagRestrictions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "RemainingRunInstancePermissionsNonResource", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION::image/*", "arn:aws:ec2:REGION::snapshot/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:network-interface/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:key-pair/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER*:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:REGION:ACCOUNTNUMBER:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "EC2VpcNonResourceSpecificActions", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" } } }, { "Sid": "AllowInstanceActionsTagBased", "Effect": "Allow", "Action": [ "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:StartInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:AssociateIamInstanceProfile", "ec2:DisassociateIamInstanceProfile", "ec2:GetConsoleScreenshot", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "TAG-VALUE" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:REGION:ACCOUNTNUMBER:instance/*", "arn:aws:ec2:REGION:ACCOUNTNUMBER:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }
Observação: substitua os parâmetros ACCOUNTNUMBER, REGION, TAG-KEY, TAG-VALUE, VPC-ID e ROLENAME pelos seus valores.
-
(Opcional) Para atribuir a política somente a usuários ou grupos do IAM, substitua os parâmetros TAG-KEY ou TAG-VALUE pela variável ${aws:username} de política do IAM. Essa variável de política permite que o IAM preencha previamente os parâmetros com o nome amigável do usuário do IAM. Os usuários do IAM podem iniciar uma instância somente na VPC especificada e controlar suas próprias instâncias.
-
Escolha Revisar política e, em seguida, insira um nome. Por exemplo, insira VPC_Lockdown_VPC-ID.
-
Selecione Criar política.
Observação: alguns itens devem ser substituídos por recursos específicos do seu ambiente. Para obter mais informações, consulte Nomes do recurso da Amazon (ARNs).
Anexar a política a um usuário, grupo ou perfil
Conclua as seguintes etapas:
- Abra o console do IAM.
- No painel de navegação, escolha Usuários, Grupos ou Perfis e, em seguida, escolha a identidade do IAM.
- Escolha Adicionar permissões e, em seguida, escolha Anexar políticas.
- Insira o nome da política e, em seguida, escolha sua política.
- Selecione Anexar política.
Quando a política personalizada é anexada, a identidade do IAM pode entrar no Console de Gerenciamento da AWS, abrir o painel do EC2 e iniciar uma instância do EC2. A identidade do IAM deve especificar a sub-rede, a VPC e a tag para iniciar a instância do EC2.
A condição ec2:ResourceTags restringe as seguintes ações:
- Iniciar uma instância.
- Interromper uma instância.
- Reiniciar uma instância.
- Encerrar uma instância.
- Anexar um volume à instância.
- Separar um volume da instância.
- Desassociar o perfil da instância do IAM da instância.
- Associar um perfil de instância.
- Substituir a associação do perfil da instância do IAM pela instância.
- Obter uma captura de tela da instância no console.
Essa política restringe as seguintes ações contra a VPC:
- Excluir grupos de segurança.
- Criar e excluir rotas.
- Excluir tabelas de rotas.
- Excluir listas de controle de acesso à rede (ACLs de rede).
- Excluir entradas de ACLs da rede.
- Autorizar ou revogar regras de entrada e saída do grupo de segurança.
- Criar permissões de interface de rede.
- Atualizar a descrição do grupo de segurança para regras de entrada e saída.
Informações relacionadas
Conteúdo relevante
- Resposta aceitafeita há 11 diaslg...
- feita há 13 diaslg...
- feita há 13 diaslg...
- feita há um mêslg...
- AWS OFICIALAtualizada há um ano