Controle o uso do modelo de execução do Amazon EC2 em grupos do 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=testingDescribe. 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.
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 permissão
ec2:CreateTagsem uma política do IAM. Para obter mais informações, consulte Permissões necessárias para marcar instâncias e volumes. -
iam:PassRole — Para iniciar as instâncias do EC2 a partir de um modelo de execução que contém um perfil de instância (um contêiner para um perfil do IAM), o usuário também deve ter a permissão
iam:PassRoleem uma política do IAM. Para obter mais informações e um exemplo de política do IAM, consulte Perfis do IAM para aplicações que são executadas em instâncias do Amazon EC2. -
ssm:getParameters — Para iniciar as instâncias do EC2 a partir de um modelo de execução que usa um parâmetro, AWS Systems Manager o usuário também deve ter a permissão
ssm:GetParametersem uma política do IAM. Para obter mais informações, consulte Usar parâmetros do AWS Systems Manager em vez de IDs de AMI em modelos de execução.
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 obter 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
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 iniciar 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 iniciar 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
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á.
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 Configurar o serviço de metadados de instância no Guia 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").
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 obter mais informações, consulte Atualizar instâncias do Auto Scaling.
Restringir o acesso aos recursos do Amazon EC2
Os exemplos a seguir mostram como usar permissões em nível de recurso e recursos com tags para restringir o acesso aos recursos do Amazon EC2.
Exemplo 1: restrição das execuções de instâncias do Amazon EC2 a recursos e tipos de instância específicos
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, é necessário incluir os recursos na declaração de açãoRunInstances.
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.microo que é possível fazer para controlar os custos.t2.smallNo 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 iniciem 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 iniciar, consulte Ações, recursos e chaves de condição do Amazon EC2 na Referência de autorização do serviço.
Exemplo 2: exigência de tags e restrição do acesso a recursos para execuções de instâncias do Amazon EC2
A política de exemplo a seguir mostra como é possível usar condições em sua política baseada em identidade para controlar o acesso a recursos do Amazon EC2 com base em tags.
Neste exemplo, há três instruções:
-
A primeira instrução permite que os usuários iniciem instâncias na região especificada somente se uma tag com
owner=devfor usada na solicitação. -
A segunda instrução dá aos usuários acesso à AMI, à sub-rede e à interface de rede na região especificada.
-
A terceira instrução permite que os usuários iniciem instâncias na região especificada com um par de chaves, um grupo de segurança, um modelo de execução e um volume existentes que tenham a tag
purpose=testing.
Para obter mais informações, consulte Controlar o acesso a recursos da AWS usando tags no Guia do usuário do IAM.
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.
Permissões adicionais do modelo de execução
É necessário 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 dry run do Amazon EC2 RunInstances 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 iniciará 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ão iam: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.
Recursos relacionados
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.