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

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 Mover credenciais de banco de dados codificadas para o 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 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 tempo de execução, 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 Next steps (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.

    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 Switching to an IAM role (AWS API) (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.

Next steps (Próximas etapas)

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