Mover segredos codificados para o AWS Secrets Manager - AWS Secrets Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Mover segredos codificados para o AWS Secrets Manager

Caso você tenha segredos de texto simples no código, recomendamos alterná-los e armazená-los no Secrets Manager. Transferir o segredo para o Secrets Manager resolverá o problema de deixar o segredo visível para qualquer pessoa que visualizar o código, porque, a partir de então, seu código recuperará o segredo diretamente do Secrets Manager. Alternar o segredo revogará o segredo codificado atual para que não seja mais válido.

Para obter segredos de credenciais de banco de dados, consulte Mova as credenciais codificadas do banco de dados para AWS Secrets Manager.

Antes de começar, é necessário determinar quem precisa acessar o segredo. Recomendamos usar dois perfis do IAM para gerenciar a permissão para seu segredo:

  • Um perfil que gerencia os segredos da organização. Para obter mais informações, consulte Permissões de administrador do Secrets Manager. Você criará e alternará o segredo usando esse perfil.

  • Um perfil que pode usar o segredo no runtime, por exemplo, neste tutorial, você usa RoleToRetrieveSecretAtRuntime. Seu código assume esse perfil para recuperar o segredo. Neste tutorial, você concede ao perfil apenas a permissão para recuperar um valor de segredo e concede permissão usando a política de recursos do segredo. Para conhecer as alternativas, consulte Próximas etapas.

Etapa 1: criar o segredo

A primeira etapa é copiar o segredo codificado existente para o Secrets Manager. Se o segredo estiver relacionado a um recurso da AWS, armazene-o na mesma região do recurso. Caso contrário, armazene-o na região com a menor latência para seu caso de uso.

Para criar um segredo (console)
  1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

  2. Selecione Store a new secret (Armazenar um novo segredo).

  3. Na página Choose secret type (Selecionar tipo de segredo), faça o seguinte:

    1. Em Secret type (Tipo de segredo), escolha Other type of secret (Outro tipo de segredo).

    2. Digite seu segredo como pares de chave-valor ou em texto não criptografado. Alguns exemplos:

      Os pares de chave-valor da API:

      ClientID: my_client_id

      ClientSecret: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

      Credenciais de pares de chave-valor:

      Username: saanvis

      Password: EXAMPLE-PASSWORD

      Texto não criptografado do token OAuth:

      AKIAI44QH8DHBEXAMPLE

      Texto sem formatação do certificado digital:
      -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
      Chave privada em texto não criptografado:
      –---BEGIN PRIVATE KEY –-- EXAMPLE ––-- END PRIVATE KEY –---
    3. Em Encryption key (Chave de criptografia), escolha aws/secretsmanager para usar a Chave gerenciada pela AWS para Secrets Manager. Não há custo para o uso dessa chave. Você também pode usar sua própria chave gerenciada pelo cliente, por exemplo, para acessar o segredo de outra Conta da AWS. Para obter mais informações sobre os custos do uso de uma chave gerenciada pelo cliente, consulte Definição de preço.

    4. Escolha Next (Próximo).

  4. Na página Choose secret type (Selecionar tipo de segredo), faça o seguinte:

    1. Insira um Secret name (Nome de segredo) descritivo e uma Description (Descrição).

    2. Em Resource permissions (Permissões do recurso), escolha Edit permissions (Editar permissões). Cole a política a seguir para permitir que RoleToRetrieveSecretAtRuntime recupere o segredo, e escolha Save (Salvar).

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/RoleToRetrieveSecretAtRuntime" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
    3. Na parte inferior da página, selecione Próximo.

  5. Na página Configure rotation (Configurar alternância), mantenha a alternância ligada. Escolha Next (Próximo).

  6. Na página Review (Revisar), revise os detalhes do segredo e escolha Store (Armazenar).

Etapa 2: atualizar o código

Seu código deve assumir o perfil do IAM RoleToRetrieveSecretAtRuntime para conseguir recuperar o segredo. Para obter mais informações, consulte Alternância para um perfil do IAM (API da AWS).

Em seguida, atualize o código para recuperar o segredo do Secrets Manager usando o código de exemplo fornecido pelo Secrets Manager.

Como encontrar o código de exemplo
  1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

  2. Na página Secrets (Segredos), escolha o segredo.

  3. Role para baixo até Sample code (Código de exemplo). Escolha a linguagem de programação e copie o trecho de código.

Em sua aplicação, remova o segredo codificado e cole o trecho de código. Conforme o idioma do código, talvez seja necessário adicionar uma chamada ao perfil ou método no trecho de código.

Teste se sua aplicação funciona conforme o esperado com o segredo no lugar do segredo codificado.

Etapa 3: atualizar o segredo

A última etapa é revogar e atualizar o segredo codificado. Consulte a origem do segredo para encontrar instruções para revogá-lo e atualizá-lo. Por exemplo, talvez seja necessário desativar o segredo atual e gerar um novo segredo.

Para atualizar o segredo com o novo valor
  1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

  2. Escolha Secrets (Segredos) e escolha o segredo.

  3. Na página Secret details (Detalhes do segredo), role para baixo e escolha Retrieve secret value (Recuperar valor do segredo) e depois Edit (Editar).

  4. Atualize o segredo e escolha Save (Salvar).

Em seguida, teste se a aplicação funciona conforme o esperado com o novo segredo.

Próximas etapas

Depois de remover um segredo codificado de seu código, há algumas ideias a serem consideradas em seguida: