Como posso exigir a autenticação de MFA para usuários do IAM que usam a AWS CLI?

3 minuto de leitura
0

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

AssumeRole

Habilitação e gerenciamento de dispositivos virtuais de MFA (AWS CLI ou API da AWS)

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos