Como posso exigir a autenticação de MFA para usuários do IAM que usam a AWS CLI?
Eu criei uma política de condição de autenticação multifator (MFA) para restringir o acesso aos serviços da AWS para usuários do AWS Identity and Access Management (IAM). A política funciona com o Console de Gerenciamento da AWS, mas não com a AWS Command Line Interface (AWS CLI). Como posso usar a MFA com a AWS CLI?
Breve descrição
O exemplo de política do IAM a seguir exige que os usuários do IAM usem a MFA para acessar serviços específicos da AWS:
{ "Sid": "BlockMostAccessUnlessSignedInWithMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice", "iam:ListVirtualMFADevices", "iam:EnableMFADevice", "iam:ResyncMFADevice", "iam:ListAccountAliases", "iam:ListUsers", "iam:ListSSHPublicKeys", "iam:ListAccessKeys", "iam:ListServiceSpecificCredentials", "iam:ListMFADevices", "iam:GetAccountSummary", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "false", "aws:ViaAWSService": "false" } } }
Os usuários do IAM com o Console de Gerenciamento da AWS são solicitados a inserir as credenciais de autenticação do MFA e, em seguida, podem acessar os serviços da AWS. No entanto, os usuários do IAM com a AWS CLI não são solicitados a inserir as credenciais de autenticação do MFA e podem acessar os serviços da AWS.
Resolução
Observação: se você receber erros ao executar comandos da AWS CLI,verifique se está usando a sua versão mais recente.
A chave MultiFactorAuthPresent não existe em solicitações feitas usando credenciais de longo prazo. Com o operador de condição booleana, se a chave na política não estiver presente, os valores não corresponderão. A chave MultiFactorAuthPresent não nega o acesso às solicitações feitas usando credenciais de longo prazo.
Os usuários do IAM que usam o Console de Gerenciamento da AWS geram credenciais temporárias e permitem o acesso somente se a MFA for usada.
A condição Booleana permite restringir o acesso com um valor de chave definido como verdadeiro ou falso. Você pode adicionar o operador de condição IfExists para verificar se a chave MultiFactorAuthPresent está presente na solicitação. Se a chave MultiFactorAuthPresent não estiver presente, IfExists avaliará o elemento de condição como verdadeiro, semelhante ao seguinte:
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false", "aws:ViaAWSService":"false"} }
Observação: os usuários do IAM que usam a AWS CLI com credenciais de longo prazo têm acesso negado e devem usar a MFA para se autenticar. Portanto, certifique-se de usar um token MFA para autenticar sua sessão da CLI.
Informações relacionadas
Uso da autenticação multifator
Habilitação e gerenciamento de dispositivos virtuais de MFA (AWS CLI ou API da AWS)
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos