Exemplos de políticas baseadas em identidade do Amazon EC2 Auto Scaling - 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á.

Exemplos de políticas baseadas em identidade do Amazon EC2 Auto Scaling

Por padrão, um novo usuário não Conta da AWS tem permissão para fazer nada. Um administrador do IAM deve criar e atribuir políticas do IAM que concedam a uma identidade do IAM (como um usuário ou perfil) permissão para executar ações de API do Amazon EC2 Auto Scaling.

Para saber como criar uma política do IAM usando esses exemplos de documentos de política JSON, consulte Criar políticas na aba JSON no Manual do usuário do IAM.

A seguir, um exemplo de uma política de permissões.

{ "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*", "Resource": "*" }] }

Este exemplo de política concede permissões para criar, atualizar e excluir grupos do Auto Scaling, mas somente se o grupo usar a etiqueta purpose=testing. 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. Para iniciar instâncias com um modelo de execução, o usuário também precisa ter a permissão/ec2:RunInstances. Para ter mais informações, consulte Suporte a modelo de execução.

nota

É possível criar suas próprias políticas personalizadas do IAM para permitir ou negar permissões para identidades do IAM (usuários ou perfis) para executar ações do Amazon EC2 Auto Scaling. Você pode anexar essas políticas personalizadas às identidades do IAM que exigem as permissões especificadas. Os exemplos a seguir mostram permissões para alguns casos de uso comuns.

Algumas ações de API do Amazon EC2 Auto Scaling permitem incluir grupos do Auto Scaling específicos na política que podem ser criados ou modificados pela ação. É possível restringir os recursos de destino para essas ações especificando ARNs de grupos do Auto Scaling individuais. No entanto, como prática recomendada, sugerimos usar políticas baseadas em tags que permitam (ou neguem) ações em grupos do Auto Scaling com uma tag específica.

Controlar o tamanho de grupos do Auto Scaling que podem ser criados

A política a seguir concede permissões para criar e atualizar todos os grupos do Auto Scaling com a tag,environment=development desde que o solicitante não especifique um tamanho mínimo menor que 1 ou um tamanho máximo maior que 10. Sempre que possível, use tags para ajudar você a controlar o acesso aos grupos do Auto Scaling na sua conta.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "development" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

Como alternativa, se você não estiver usando tags para controlar o acesso a grupos do Auto Scaling, poderá usar ARNs para identificar os grupos do Auto Scaling aos quais a política do IAM se aplica.

Um grupo do Auto Scaling tem o ARN a seguir.

"Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/my-asg"

Também possível especificar vários ARNs incluindo-os em uma lista. Para obter mais informações sobre como especificar os ARNs dos recursos do Amazon EC2 Auto Scaling no elemento,Resource consulte Recursos de política para o Amazon EC2 Auto Scaling.

Controlar quais chaves de tag e valores de tag podem ser usados

Também é possível usar condições adicionais em suas políticas do IAM para controlar as chaves de tag e os valores que podem ser aplicados aos grupos do Auto Scaling. Para conceder permissões para criar ou etiquetar um grupo do Auto Scaling somente se o solicitante especificar determinadas etiquetas, use a chave de condição aws:RequestTag. Para permitir somente chaves de tags específicas, use a chave de condição aws:TagKeys com o modificador ForAllValues.

A política a seguir requer que o solicitante especifique uma etiqueta com a chave environment na solicitação. O valor "?*" impõe que haja um valor para a chave de tag. Para usar um caractere curinga, é necessário usar o operador de condição StringLike.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

A política a seguir especifica que o solicitante só pode marcar grupos do Auto Scaling com as etiquetas purpose=webserver e cost-center=cc123 e permite somente as etiquetas purpose e cost-center (nenhuma outra etiqueta pode ser especificada).

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

A política a seguir requer que o solicitante especifique pelo menos uma etiqueta na solicitação e permite somente as chaves cost-center e owner.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
nota

Para condições, a chave de condição não diferencia maiúsculas de minúsculas, e o valor da condição diferencia maiúsculas de minúsculas. Portanto, para aplicar a diferenciação de maiúsculas de minúsculas de uma tag, use a chave de condição aws:TagKeys, onde a chave da tag é especificada como um valor na condição.

Controlar quais grupos do Auto Scaling podem ser excluídos

A política a seguir permite a exclusão de um grupo do Auto Scaling somente se o grupo tiver a tag environment=development.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

Como alternativa, se você não estiver usando chaves de condição para controlar o acesso aos grupos do Auto Scaling poderá, em vez disso, especificar os ARNs dos recursos no elemento Resource para controlar o acesso.

A política a seguir dá aos usuários permissões para usar a ação DeleteAutoScalingGroup da API, mas somente para grupos do Auto Scaling cujo nome comece com devteam-.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" }] }

Também possível especificar vários ARNs incluindo-os em uma lista. A inclusão da UUID garante que o acesso seja concedido ao grupo do Auto Scaling específico. O UUID para um novo grupo é diferente do UUID para um grupo excluído com o mesmo nome.

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

Controlar quais políticas de escalabilidade podem ser excluídas

A política a seguir concede permissões para usar a ação DeletePolicy para excluir uma política de escalabilidade. No entanto, ela também negará a ação se o grupo do Auto Scaling que está recebendo a ação tiver a tag environment=production. Sempre que possível, use tags para ajudar você a controlar o acesso aos grupos do Auto Scaling na sua conta.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

Controlar o acesso às ações de atualização da instância

A política a seguir concede permissão para iniciar, reverter e cancelar uma atualização de instância somente se o grupo do Auto Scaling que está recebendo a ação tiver a tag environment=testing. 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.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "testing" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }

Para especificar uma configuração desejada na chamada,StartInstanceRefresh é possível que os usuários precisem de algumas permissões relacionadas, como:

  • ec2: RunInstances — Para iniciar instâncias do EC2 usando um modelo de execução, o usuário deve ter a ec2:RunInstances permissão em uma política do IAM. Para ter mais informações, consulte Suporte a modelo de execução.

  • ec2: CreateTags — Para iniciar instâncias do EC2 a partir de um modelo de execução que adiciona 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 IDs de AMI nos modelos de lançamento.

Criar um perfil vinculado ao serviço

O Amazon EC2 Auto Scaling exige permissões para criar uma função vinculada ao serviço na primeira vez que qualquer usuário em você chama as ações da API do Amazon Conta da AWS EC2 Auto Scaling. Se a função vinculada ao serviço ainda não existir, o Amazon EC2 Auto Scaling a criará em sua conta. A função vinculada ao serviço concede permissões ao Amazon EC2 Auto Scaling para que ele possa Serviços da AWS ligar para outras pessoas em seu nome.

Para que a criação automática da função seja bem-sucedida, os usuários devem ter permissões para a ação iam:CreateServiceLinkedRole.

"Action": "iam:CreateServiceLinkedRole"

O exemplo a seguir mostra uma política de permissões que permite que um usuário crie uma função vinculada ao serviço do Amazon EC2 Auto Scaling para o Amazon EC2 Auto Scaling.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } }] }

Controle qual função vinculada ao serviço pode ser passada (usando) PassRole

Os usuários que criam ou atualizam grupos do Auto Scaling e especificam um perfil vinculado ao serviço de sufixo personalizado na solicitação necessitam da permissão iam:PassRole.

Você pode usar a iam:PassRole permissão para proteger a segurança de suas chaves gerenciadas pelo AWS KMS cliente se conceder a diferentes funções vinculadas ao serviço acesso a chaves diferentes. Dependendo das necessidades de sua organização, talvez você tenha uma chave para a equipe de desenvolvimento, outra para a equipe de QA e outra para a equipe financeira. Primeiro, crie uma função vinculada ao serviço que tenha acesso à chave necessária, por exemplo, uma função vinculada ao serviço chamada. AWSServiceRoleForAutoScaling_devteamkeyaccess Em seguida, anexe a política a uma identidade do IAM, como um usuário ou um perfil.

A política a seguir concede permissões para passar o perfil AWSServiceRoleForAutoScaling_devteamkeyaccess para qualquer grupo do Auto Scaling cujo nome comece com devteam-. Se a identidade do IAM que cria o grupo do Auto Scaling tentar especificar um perfil vinculado ao serviço diferente, ela receberá um erro. Se eles optarem por não especificar uma função vinculada ao serviço, a AWSServiceRoleForAutoScalingfunção padrão será usada em seu lugar.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } }] }

Para obter mais informações sobre funções vinculadas ao serviço com sufixo personalizado, consulte Funções vinculadas ao serviço do Amazon EC2 Auto Scaling.