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 Solicitar credenciais 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çõesTerminateInstances
eStopInstances
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 obter 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} } } ] }