Como faço para ativar a exclusão com MFA para meu bucket do Amazon S3?

6 minuto de leitura
0

Quero ativar a exclusão de autenticação multifator (MFA) para meu bucket do Amazon Simple Storage Service (Amazon S3) para proteger meus objetos contra exclusões não intencionais.

Breve descrição

Quando você não configura a exclusão com MFA, qualquer pessoa com uma das seguintes permissões pode excluir permanentemente um objeto do Amazon S3:

  • Senha do usuário-raiz
  • Credenciais de usuário ou perfil do AWS Identity and Access Management (AWS IAM) com permissão de exclusão

Quando você configura a exclusão com MFA, somente o usuário-raiz pode excluir permanentemente as versões do objeto ou alterar a configuração de controle de versionamento no seu bucket do S3. Você deve usar um dispositivo MFA para autenticar o usuário-raiz para realizar a ação de exclusão.

Para configurar a exclusão com MFA para seu bucket, conclua as seguintes etapas:

  1. Gere uma chave de acesso e uma chave secreta para o usuário-raiz.
  2. Ativar um dispositivo MFA para o usuário-raiz.
  3. Configure o AWS CLI com as credenciais do usuário-raiz.
  4. Configure a exclusão com MFA.
  5. Confirme se a exclusão com MFA está funcionando e exclua suas chaves de acesso raiz.

É possível usar a exclusão com MFA somente em buckets para os quais o versionamento do S3 foi ativado. O proprietário do bucket, a conta da AWS que criou o bucket e todos os usuários do IAM autorizados podem ativar o versionamento. No entanto, somente a conta de usuário-raiz pode ativar a exclusão com MFA. Para ativar a exclusão com MFA, você deve usar a AWS CLI ou a API REST do Amazon S3.

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Resolução

Gere uma chave de acesso e uma chave secreta para o usuário-raiz

Primeiro, crie chaves de acesso para o usuário-raiz. Após criar essas chaves, você deve baixá-las e salvá-las imediatamente. Não será possível recuperar essas chaves posteriormente.

Ativar um dispositivo MFA para o usuário-raiz

Se você não ativou um dispositivo MFA para o usuário-raiz, consulte Ativar um dispositivo MFA virtual para o usuário-raiz (console). Se você já ativou um dispositivo MFA para o usuário-raiz, anote o ARN.

Configure o AWS CLI com as credenciais do usuário-raiz

Conclua as seguintes etapas:

  1. Execute o comando configure da AWS CLI.
  2. Para o ID da chave de acesso da AWS, por exemplo, AKIAEXAMPLEABCQWE, insira o ID da chave de acesso do usuário-raiz.
  3. Para a Chave de acesso secreta AWS do usuário-raiz, insira o ID da chave de acesso secreta. É possível encontrar a chave de acesso secreta no arquivo que contém as credenciais do usuário-raiz.
  4. (Opcional) Para o Nome da região padrão, é possível inserir a região da AWS padrão.
  5. (Opcional) Para o formato de saída padrão, é possível inserir o formato de saída.

Importante: se você configurou perfis nomeados na AWS CLI, deverá criar outro perfil para as credenciais do usuário-raiz. Para configurar um perfil nomeado, execute o seguinte comando configure:

aws configure --profile root_user

Ativar a exclusão com MFA do S3

Para ativar a exclusão com MFA, execute o comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789"

Observação: no comando anterior, substitua 1XXXXXXX6789 pelo ID da sua conta e 123789 pelo número de série que o dispositivo MFA gera.

Se você usar um perfil nomeado para o usuário-raiz, execute o seguinte comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789" --profile root_user

Se o comando for bem-sucedido, você não receberá nenhuma saída. Se você receber uma saída com um erro, confirme se está usando o usuário-raiz e se o número de série do ARN e do MFA são válidos.

Também é possível chamar a API PutBucketVersioning para ativar a exclusão com MFA.

Observação: não é possível usar a exclusão com MFA com configurações de ciclo de vida. Se houver uma configuração de ciclo de vida no bucket e você executar o comando put-bucket-versioning anterior, receberá o seguinte erro:

“An error occurred (InvalidBucketState) when calling the PutBucketVersioning operation: Mfa Authentication is not supported on a bucket with lifecycle configuration. Delete lifecycle configuration before enabling Mfa Authentication.”

Confirme se a exclusão com MFA está funcionando

Primeiro, certifique-se de ativar o controle de versionamento do S3. É possível usar o console do Amazon S3 ou a seguinte API GetBucketVersioning:

aws s3api get-bucket-versioning --bucket mybucketname

Exemplo de saída:

{    
    "Status": "Enabled",    
    "MFADelete": "Enabled"    
}

Para excluir permanentemente uma versão do objeto, você deve incluir o cabeçalho da solicitação x-amz-mfa. É possível usar a opção --mfa no comando delete-object para incluir o valor do cabeçalho. O valor do cabeçalho é a cadeia do número de série do seu dispositivo de autenticação, um espaço e o código de autenticação. Para obter mais informações, consulte Excluindo um objeto de um bucket habilitado para exclusão com MFA.

Se você não ativar a exclusão com MFA e tentar excluir uma versão do objeto, receberá o erro a seguir. Você também recebe o erro a seguir ao usar um usuário do IAM para tentar excluir a versão do objeto:

“aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HL4kqCxf3vjVBH40Nrjkd An error occurred (AccessDenied) when calling the DeleteObject operation: Mfa Authentication must be used for this request”

Para usar o usuário-raiz para excluir uma versão do objeto em um bucket com a exclusão com MFA ativada, execute o seguinte comando delete-object:

aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HLkqCxf3vjVBH40Nrjkd --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)" {    
    "VersionId": "3HLkqCxf3vjVBH40Nrjkd"    
}

Observação: para permitir que usuários do IAM ou funções em sua conta usem a solicitação delete-object sem um ID de versão, conceda a eles a permissão s3:DeleteObject. Para buckets habilitados para controle de versionamento, a solicitação de exclusão de objeto cria apenas um marcador de exclusão. Ele não exclui permanentemente a versão do objeto. Para excluir permanentemente um objeto, você deve especificar o ID da versão do objeto.

Depois de ativar a exclusão com MFA, execute as seguintes ações como uma prática recomendada de segurança:

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses