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 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 ter 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 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:

      API key

      Insira como pares de chave/valor:

      ClientID: my_client_id

      ClientSecret : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

      OAuth token

      Insira como texto sem formatação:

      AKIAI44QH8DHBEXAMPLE

      Digital certificate

      Insira como texto sem formatação:

      -----BEGIN CERTIFICATE----- EXAMPLE -----END CERTIFICATE-----
      Private key

      Insira como texto sem formatação:

      –--- 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 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 a opção Próximo.

  5. Na página Configure rotation (Configurar alternância), mantenha a alternância ligada. Escolha 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:

  • Para encontrar segredos codificados em suas aplicações Java e Python, recomendamos o Amazon CodeGuru Reviewer.

  • É possível melhorar a perfomance e reduzir custos armazenando segredos em cache. Para ter mais informações, consulte Obter segredos de AWS Secrets Manager.

  • Para segredos acessados de várias regiões, você pode replicar seu segredo para melhorar a latência. Para ter mais informações, consulte Replicar segredos do AWS Secrets Manager por regiões.

  • Neste tutorial, você concedeu permissão a RoleToRetrieveSecretAtRuntime somente para recuperar o valor do segredo. Para conceder mais permissões ao perfil, por exemplo, para obter metadados sobre o segredo ou para visualizar uma lista de segredos, consulte Políticas baseadas no recurso.

  • Neste tutorial, você concedeu permissão a RoleToRetrieveSecretAtRuntime somente para recuperar o valor do segredo. Para saber outras formas de conceder permissão, consulte Políticas baseadas em identidade.