Amazon EC2: exige MFA (GetSessionToken) para operações específicas do EC2 - AWS Identity and Access Management

Amazon EC2: exige MFA (GetSessionToken) para operações específicas do EC2

Este exemplo mostra como você pode criar uma política baseada em identidade que permita acesso total a todas as operações de API da AWS no Amazon EC2. No entanto, ela negará explicitamente o acesso às operações de API TerminateInstances e StopInstances se o usuário não estiver autenticado usando Multi-Factor Authentication (MFA). Para fazer isso de forma programática, o usuário deve incluir os valores opcionais TokenCode e SerialNumber ao chamar a operação GetSessionToken. Essa operação retorna credenciais temporárias que foram autenticadas usando MFA. Para saber mais sobre GetSessionToken, consulte GetSessionToken: credenciais temporárias para usuários em ambientes não confiáveis.

O que essa política faz?

  • A instrução AllowAllActionsForEC2 permite todas as ações do Amazon EC2.

  • A instrução DenyStopAndTerminateWhenMFAIsNotPresent nega as ações TerminateInstances e StopInstances quando o contexto da MFA está ausente. Isso significa que as ações são negadas quando o contexto da autenticação multifator está ausente (o que significa que a MFA não foi usada). Uma negação substitui a permissão.

nota

A verificação da condição de MultiFactorAuthPresent na instrução Deny não deve ser {"Bool":{"aws:MultiFactorAuthPresent":false}} pois essa chave não está presente e não pode ser avaliada quando a MFA não é usada. Em vez disso, use a verificação BoolIfExists para ver se a chave está presente antes de verificar o valor. Para mais informações, consulte Operadores de condição ...IfExists.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllActionsForEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": false} } } ] }