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.
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)
Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/
. -
Selecione Store a new secret (Armazenar um novo segredo).
-
Na página Choose secret type (Selecionar tipo de segredo), faça o seguinte:
-
Em Secret type (Tipo de segredo), escolha Other type of secret (Outro tipo de segredo).
-
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 –---
-
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.
-
Escolha Next (Próximo).
-
-
Na página Choose secret type (Selecionar tipo de segredo), faça o seguinte:
-
Insira um Secret name (Nome de segredo) descritivo e uma Description (Descrição).
-
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/
" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }RoleToRetrieveSecretAtRuntime
-
Na parte inferior da página, selecione Próximo.
-
-
Na página Configure rotation (Configurar alternância), mantenha a alternância ligada. Escolha Next (Próximo).
-
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
Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/
. -
Na página Secrets (Segredos), escolha o segredo.
-
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
Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/
. -
Escolha Secrets (Segredos) e escolha o segredo.
-
Na página Secret details (Detalhes do segredo), role para baixo e escolha Retrieve secret value (Recuperar valor do segredo) e depois Edit (Editar).
-
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 obter mais informações, consulte Recuperar segredos do AWS Secrets Manager.
-
Para segredos acessados de várias regiões, você pode replicar seu segredo para melhorar a latência. Para obter mais informações, consulte Replicar um segredo do AWS Secrets Manager para outras Regiões da AWS.
-
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 Exemplos de política de permissões para o AWS Secrets Manager. -
Neste tutorial, você concedeu permissão a
RoleToRetrieveSecretAtRuntime
somente para recuperar o valor do segredo. Para saber outras formas de conceder permissão, consulte Anexar uma política de permissões a uma identidade.