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

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á.

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 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 purpose=testing. 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, é 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:

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.

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 purpose=testing. 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.

{ "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 Controlar o acesso aos modelos de execução com permissões do IAM no Guia do usuário do Amazon EC2 para instâncias do Linux.

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 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 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 (subnet-1a2b3c4d), usando um grupo de segurança (sg-903004f88example) específico e usando uma AMI (ami-04d5cc9b88example) 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.

  • A segunda instrução permite que os usuários executem instâncias usando somente os tipos de instância t2.micro e,t2.small o que é possível fazer para controlar os custos.

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

Para saber mais sobre permissões para visualizar, criar e excluir modelos de execução e versões de modelos de execução, consulte Controlar o acesso aos modelos de execução com permissões do IAM no Guia do usuário do Amazon EC2 para instâncias do Linux.

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.