As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Controle o uso do modelo de lançamento do Amazon EC2 em grupos de Auto Scaling
O Amazon EC2 Auto Scaling oferece suporte ao uso de modelos de execução do Amazon EC2 com seus grupos do Auto Scaling. Recomendamos permitir que os usuários criem grupos do Auto Scaling com base em modelos de execução, pois isso permite que eles usem os recursos mais recentes do Amazon EC2 Auto Scaling e Amazon EC2. Por exemplo, os usuários devem especificar um modelo de execução para usar uma política de instâncias mistas.
É possível usar a política AmazonEC2FullAccess
para conceder aos usuários acesso total para trabalhar com recursos do Amazon EC2 Auto Scaling, modelos de execução e outros recursos do EC2 em suas contas. Ou é possível criar suas próprias políticas personalizadas do IAM para conceder aos usuários permissões refinadas para trabalhar com modelos de execução, conforme descrito neste tópico.
Uma política de exemplo que você pode personalizar para seu próprio uso
O exemplo a seguir mostra uma política de permissões básica que você pode personalizar para seu próprio uso. A política concede permissões para criar, atualizar e excluir todos os grupos do Auto Scaling, mas somente se o grupo usa a tag
. Em seguida, concede permissão para todas as ações purpose=testing
Describe
. Como as ações Describe
não oferecem suporte a permissões em nível de recurso, é necessário especificá-las em uma declaração separada sem condições.
Identidades do IAM (usuários ou perfis) com esta política têm permissão para criar ou atualizar um grupo do Auto Scaling usando um modelo de execução porque eles também têm permissão para usar a ação ec2:RunInstances
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/
purpose
": "testing
" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }
Os usuários que criam ou atualizam grupos do Auto Scaling podem precisar de algumas permissões relacionadas, como:
-
ec2: CreateTags — Para adicionar tags às instâncias e volumes na criação, o usuário deve ter a
ec2:CreateTags
permissão em uma política do IAM. Para ter mais informações, consulte Permissões necessárias para marcar instâncias e volumes. -
iam: PassRole — Para iniciar instâncias do EC2 a partir de um modelo de execução que contém um perfil de instância (um contêiner para uma função do IAM), o usuário também deve ter a
iam:PassRole
permissão em uma política do IAM. Para obter mais informações e um exemplo de política do IAM, consulte Funções do IAM para aplicações que são executadas em instâncias do Amazon EC2. -
ssm: GetParameters — Para iniciar instâncias do EC2 a partir de um modelo de execução que usa um AWS Systems Manager parâmetro, o usuário também deve ter a
ssm:GetParameters
permissão em uma política do IAM. Para ter mais informações, consulte Use AWS Systems Manager parâmetros em vez de AMI IDs em modelos de lançamento.
Essas permissões para ações a serem concluídas ao iniciar instâncias são verificadas quando o usuário interage com um grupo do Auto Scaling. Para ter mais informações, consulte Validação de permissões para ec2:RunInstances e iam:PassRole.
Os exemplos a seguir mostram declarações de políticas que você pode usar para controlar os acessos que os usuários do IAM têm para usar modelos de execução.
Tópicos
- Exigir modelos de execução que têm uma tag específica
- Exigir um modelo de execução e um número de versão
- Exigir o uso do Instance Metadata Service Version 2 (IMDSv2)
- Restringir o acesso aos recursos do Amazon EC2
- Permissões necessárias para marcar instâncias e volumes
- Permissões adicionais do modelo de execução
- Validação de permissões para ec2:RunInstances e iam:PassRole
- Recursos relacionados
Exigir modelos de execução que têm uma tag específica
Ao conceder permissões,ec2:RunInstances
é possível especificar que os usuários só poderão usar modelos de execução com tags ou IDs específicos para limitar permissões ao executar instâncias com um modelo de execução. Você também pode controlar a AMI e outros recursos aos quais qualquer pessoa que use modelos de execução possa fazer referência e usar ao iniciar instâncias especificando permissões adicionais em nível de recurso para a chamadaRunInstances
.
O exemplo a seguir restringe permissões à ação ec2:RunInstances
para executar modelos que estão localizados na região especificada e que têm a tag
. Ele também dá aos usuários acesso aos recursos especificados em um modelo de execução: AMIs, tipos de instância, volumes, pares de chaves, interfaces de rede e grupos de segurança. purpose=testing
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:
region
:account-id
:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose
": "testing
" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region
::image/ami-*", "arn:aws:ec2:region
:account-id
:instance/*", "arn:aws:ec2:region
:account-id
:subnet/*", "arn:aws:ec2:region
:account-id
:volume/*", "arn:aws:ec2:region
:account-id
:key-pair/*", "arn:aws:ec2:region
:account-id
:network-interface/*", "arn:aws:ec2:region
:account-id
:security-group/*" ] } ] }
Para obter mais informações sobre o uso de políticas baseadas em tags com modelos de execução, consulte Controle o acesso aos modelos de execução com permissões do IAM no Guia do usuário do Amazon EC2.
Exigir um modelo de execução e um número de versão
Você também pode usar as permissões do IAM para obrigar que um modelo de execução e o número da versão do modelo de execução sejam especificados ao criar ou atualizar grupos do Auto Scaling.
O exemplo a seguir permite que os usuários criem e atualizem grupos do Auto Scaling somente se um modelo de execução e o número da versão do modelo de execução forem especificados. Se usuários com essa política omitirem o número da versão para especificar a versão $Latest
ou $Default
do modelo de execução ou tentarem usar uma configuração de execução, a ação falhará.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }
Exigir o uso do Instance Metadata Service Version 2 (IMDSv2)
Para segurança adicional, é possível definir as permissões dos usuários para exigir o uso de um modelo de execução que exige IMDSv2. Para obter mais informações, consulte Como configurar o serviço de metadados da instância no Guia do usuário do Amazon EC2.
O exemplo de política a seguir especifica que os usuários não poderão chamar a ação ec2:RunInstances
a menos que a instância também esteja configurada para exigir o uso de IMDSv2 (indicado por "ec2:MetadataHttpTokens":"required"
).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
dica
Para forçar a substituição de instâncias do ajuste de escala automático que usam um novo modelo de execução ou uma nova versão de um modelo de execução com as opções de metadados de instância configuradas, você pode iniciar uma atualização de instâncias. Para ter mais informações, consulte Atualizar instâncias do Auto Scaling.
Restringir o acesso aos recursos do Amazon EC2
O exemplo a seguir controla a configuração das instâncias que um usuário pode iniciar restringindo o acesso aos recursos do Amazon EC2. Para especificar permissões em nível de recurso para recursos especificados em um modelo de execução, você deve incluir os recursos na declaração de açãoRunInstances
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:
region
:account-id
:launch-template/*", "arn:aws:ec2:region
::image/ami-04d5cc9b88example
", "arn:aws:ec2:region
:account-id
:subnet/subnet-1a2b3c4d
", "arn:aws:ec2:region
:account-id
:volume/*", "arn:aws:ec2:region
:account-id
:key-pair/*", "arn:aws:ec2:region
:account-id
:network-interface/*", "arn:aws:ec2:region
:account-id
:security-group/sg-903004f88example
" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region
:account-id
:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }
Neste exemplo, há duas declarações:
-
A primeira declaração requer que os usuários executem instâncias em uma sub-rede específica (
), usando um grupo de segurança (subnet-1a2b3c4d
) específico e usando uma AMI (sg-903004f88example
) específica. Ele também dá aos usuários acesso aos recursos especificados em um modelo de execução: interfaces de rede, pares de chaves e volumes.ami-04d5cc9b88example
-
A segunda instrução permite que os usuários executem instâncias usando somente os tipos de instância
e,t2.micro
o que é possível fazer para controlar os custos.t2.small
No entanto, observe que atualmente não há uma maneira eficaz de impedir completamente que os usuários que têm permissão para iniciar instâncias com um modelo de execução executem outros tipos de instância. Isso ocorre porque um tipo de instância especificado em um modelo de execução pode ser substituído para usar tipos de instância definidos usando a seleção de tipo de instância baseada em atributos.
Para obter uma lista completa das permissões em nível de recurso que você pode usar para controlar a configuração das instâncias que um usuário pode executar, consulte Ações, recursos e chaves de condição do Amazon EC2 na Referência de autorização do serviço.
Permissões necessárias para marcar instâncias e volumes
O exemplo a seguir permite que os usuários marquem instâncias e volumes na criação. Essa parte será necessária se houver tags especificadas no modelo de execução. Para obter mais informações, consulte Conceder permissão para marcar recursos durante a criação no Guia do usuário do Amazon EC2.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:
region
:account-id
:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }
Permissões adicionais do modelo de execução
Você deve conceder permissões aos usuários do console para as ações ec2:DescribeLaunchTemplates
e ec2:DescribeLaunchTemplateVersions
. Sem essas permissões, os dados do modelo de execução não podem ser carregados no assistente do grupo do Auto Scaling, e os usuários não podem utilizar o assistente para iniciar instâncias usando um modelo de execução. É possível especificar essas ações adicionais no elemento Action
de uma instrução de política do IAM.
Validação de permissões para ec2:RunInstances
e iam:PassRole
Os usuários podem especificar qual versão de um modelo de execução seu grupo do Auto Scaling usa. Dependendo de suas permissões, essa pode ser uma versão numerada específica ou a versão $Latest
ou $Default
do modelo de execução. Se for o último, tome cuidado especial. Isso pode substituir as permissões ec2:RunInstances
e iam:PassRole
que você pretendia restringir.
Esta seção explica o cenário de uso da versão mais recente ou padrão do modelo de execução com um grupo do Auto Scaling.
Quando um usuário chama as APIs,CreateAutoScalingGroup
UpdateAutoScalingGroup
ou,StartInstanceRefresh
o Amazon EC2 Auto Scaling verifica suas permissões em relação à versão do modelo de execução que é a versão mais recente ou padrão no momento antes de prosseguir com a solicitação. Isso valida as permissões para ações a serem concluídas ao iniciar instâncias, como as ações ec2:RunInstances
e iam:PassRole
. Para fazer isso, emitimos uma chamada de RunInstancesdry run do Amazon EC2 para validar se o usuário tem as permissões necessárias para a ação, sem realmente fazer a solicitação. Quando uma resposta é retornada, ela é lida pelo Amazon EC2 Auto Scaling. Se as permissões do usuário não permitirem uma determinada ação, haverá falha na solicitação do Amazon EC2 Auto Scaling, que retornará um erro ao usuário contendo informações sobre a permissão ausente.
Depois que a verificação inicial e a solicitação forem concluídas, sempre que as instâncias forem executadas, o Amazon EC2 Auto Scaling as executará com a versão mais recente ou padrão, mesmo que ela tenha sido alterada, usando as permissões de seu perfil vinculado ao serviço. Isso significa que um usuário que esteja usando o modelo de execução pode atualizá-lo para transferir um perfil do IAM para uma instância, mesmo que não tenha a permissãoiam:PassRole
.
Use a chave de condição autoscaling:LaunchTemplateVersionSpecified
se quiser limitar quem tem acesso à configuração de grupos para usar a versão $Latest
ou $Default
. Isso garante que o grupo do Auto Scaling só aceite uma versão numerada específica quando um usuário chama as APIs CreateAutoScalingGroup
e UpdateAutoScalingGroup
. Para ver um exemplo que mostra como adicionar essa chave de condição a uma política do IAM, consulte Exigir um modelo de execução e um número de versão.
Para grupos do Auto Scaling configurados para usar a versão $Latest
ou $Default
do modelo de execução, considere limitar quem pode criar e gerenciar versões do modelo de execução, incluindo a ação ec2:ModifyLaunchTemplate
que permite ao usuário especificar a versão padrão do modelo de execução. Para obter mais informações, consulte Controlar permissões de controle de versão no Guia do usuário do Amazon EC2.
Recursos relacionados
Para saber mais sobre permissões para visualizar, criar e excluir modelos de lançamento e versões de modelos de lançamento, consulte Controle o acesso aos modelos de lançamento com permissões do IAM no Guia do usuário do Amazon EC2.
Para obter mais informações sobre as permissões em nível de recurso que você pode usar para controlar o acesso à chamada,RunInstances
consulte Ações, recursos e chaves de condição do Amazon EC2 na Referência de autorização do serviço.