Suporte a modelo de execução - Amazon EC2 Auto Scaling

Suporte a modelo de execução

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 que você pode personalizar para seu próprio uso. A política permite que os usuários do IAM criem, modifiquem e excluam grupos do Auto Scaling, mas somente se o grupo usar a tag environment=test. Em seguida, concede permissão para todas as ações Describe. Como as ações Describe não oferecem suporte a permissões em nível de recurso, você deverá especificá-las em uma instrução separada sem condições.

Os usuários 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/environment": "test" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }

ec2:RunInstances é verificado quando um grupo do Auto Scaling é criado ou atualizado usando um modelo de execução. Se desejar restringir o acesso aos recursos usados para iniciar uma instância ou limitar o que os usuários do IAM podem fazer, modifique essa política para adicionar suas próprias declarações que filtram essas permissões.

Os exemplos a seguir mostram declarações de políticas que você pode usar para controlar as permissões que os usuários têm ao usar políticas de lançamento.

Exigir modelos de execução que têm uma tag específica

O exemplo a seguir restringe o acesso à chamada da ação ec2:RunInstances com modelos de execução que estão localizados na região especificada e que têm a tag environment=test.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:123456789012:launch-template/*", "Condition": { "StringEquals": { "ec2:ResourceTag/environment": "test" } } } ] }

Exigir um modelo de execução e um número de versão

O exemplo a seguir permite que os usuários criem e modifiquem grupos do Auto Scaling se especificarem o número da versão do modelo de execução e, em seguida, nega permissão para criar ou modificar grupos do Auto Scaling usando uma configuração de execução. 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 especificarem 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 Configuração do serviço de metadados de instância no Manual do usuário do Amazon EC2 para instâncias do Linux.

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 Auto Scaling que iniciam 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, é possível terminar instâncias existentes no grupo. O Amazon EC2 Auto Scaling inicia imediatamente novas instâncias para substituir as instâncias que você terminou. Como alternativa, você pode iniciar uma atualização de instância para fazer uma atualização contínua do seu grupo. Para mais informações, consulte Substituir instâncias do Auto Scaling com base em uma atualização de instância.

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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:123456789012:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:123456789012:security-group/sg-903004f88example", "arn:aws:ec2:region:123456789012:network-interface/*", "arn:aws:ec2:region:123456789012:volume/*", "arn:aws:ec2:region::image/ami-04d5cc9b88example" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:123456789012:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": "t2.micro" } } } ] }

Neste exemplo, há duas declarações:

  • A primeira declaração requer que os usuários executem instâncias em uma sub-rede específica (subnet-1a2b3c4d), usando um grupo de segurança (sg-903004f88example) específico e usando uma AMI (ami-04d5cc9b88example) específica. Isso também concede aos usuários acesso a recursos adicionais necessários para executar instâncias: interfaces de rede e volumes.

  • A segunda declaração permite que os usuários executem instâncias somente de um tipo de instância específico (t2.micro).

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 Manual do usuário do Amazon EC2 para instâncias do Linux.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:region:123456789012:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }

Permissões adicionais

Dependendo de a quais cenários você deseja oferecer suporte, é possível especificar essas ações adicionais no elemento Action de uma declaração de política do IAM.

Para que um usuário tenha a capacidade de passar uma função do IAM para instâncias provisionadas, esse usuário deve ter permissão para iam:PassRole. Você pode usar uma política iam:PassRole para permitir (ou negar) que os usuários passem uma função ao Amazon EC2 se o modelo de execução especificar um perfil de instância com uma função do IAM. Para ver um exemplo de política, consulte Controlar quais funções do IAM podem ser passadas (usando PassRole).

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.

Para controlar o acesso às ações ec2:CreateLaunchTemplate e ec2:CreateLaunchTemplateVersion, consulte Controlar o uso dos modelos de execução eExemplo: trabalhar com modelos de execução no Manual do usuário do Amazon EC2 para instâncias do Linux.

nota

Para grupos configurados para usar a versão do modelo de execução Latest ou Default, as permissões para ações a serem concluídas ao executar instâncias não são verificadas pelo Amazon EC2 Auto Scaling quando uma nova versão do modelo de execução é criada. Essa é uma consideração importante ao configurar suas permissões para quem pode criar e gerenciar versões do modelo de execução.

Saiba mais

Antes de usar o IAM para gerenciar o acesso a modelos de execução, você deve entender quais recursos do IAM estão disponíveis para uso com modelos de execução. Para obter mais informações, consulte Ações, recursos e chaves de condição do Amazon EC2 na Referência de autorização do serviço.