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 permissão a uma identidade do IAM (como um usuário ou função) para realizar ações da API 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 obter mais informações, consulte Controle o uso do modelo de EC2 lançamento da Amazon em grupos de Auto Scaling.

nota

Você pode criar suas próprias políticas personalizadas do IAM para permitir ou negar permissões para identidades do IAM (usuários ou funções) para realizar 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 da API Amazon EC2 Auto Scaling permitem que você inclua grupos específicos de Auto Scaling em sua política que podem ser criados ou modificados pela ação. Você pode restringir os recursos de destino para essas ações especificando um grupo individual de Auto ARNs Scaling. 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 aos grupos de Auto Scaling, você pode usar ARNs para identificar os grupos de 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"

Você também pode especificar vários ARNs colocando-os em uma lista. Para obter mais informações sobre a especificação dos recursos ARNs do Amazon EC2 Auto Scaling Resource no elemento, 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á especificar o número ARNs de recursos no Resource elemento 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-*" }] }

Você também pode especificar vários ARNs colocando-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:

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 seu chamar as ações da API Amazon Conta da AWS Auto Scaling. EC2 Se a função vinculada ao serviço ainda não existir, o Amazon Auto EC2 Scaling a cria em sua conta. A função vinculada ao serviço concede permissões ao Amazon Auto EC2 Scaling para que ele possa ligar para Serviços da AWS outras pessoas em seu nome.

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

"Action": "iam:CreateServiceLinkedRole"

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

{ "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 com 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 optarem por não especificar uma função vinculada a serviço, a função AWSServiceRoleForAutoScaling padrão será usada.

{ "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 perfis vinculados ao serviço com sufixo personalizado, consulte Funções vinculadas a serviços para Amazon EC2 Auto Scaling.