Gerenciamento das senhas de administrador do Amazon Redshift usando AWS Secrets Manager - Amazon Redshift

Gerenciamento das senhas de administrador do Amazon Redshift usando AWS Secrets Manager

O Amazon Redshift pode se integrar ao AWS Secrets Manager para gerar e gerenciar as credenciais de administrador dentro de um segredo criptografado. Com AWS Secrets Manager, é possível substituir as senhas de administrador por uma chamada de API para recuperar programaticamente o segredo quando necessário. O uso de segredos, em vez de credenciais com codificação rígida, reduz o risco dessas credenciais serem expostas ou comprometidas. Para mais informações sobre o AWS Secrets Manager, consulte o Guia do usuário do AWS Secrets Manager.

Você pode especificar que o Amazon Redshift gerencia a senha de administrador usando o AWS Secrets Manager ao realizar uma das seguintes operações:

  • Criação de um cluster provisionado ou de um namespace de tecnologia sem servidor

  • Restauração de um cluster ou de um namespace de tecnologia sem servidor usando um snapshot

Quando você especifica que o Amazon Redshift gerencia a senha de administrador no AWS Secrets Manager, o Amazon Redshift gera a senha e a armazena no Secrets Manager. É possível acessar diretamente o segredo no AWS Secrets Manager para recuperar as credenciais do usuário de administrador. Também será possível especificar uma chave gerenciada pelo cliente para criptografar o segredo, se você precisar acessá-lo por outra conta da AWS. Também é possível usar a chave KMS fornecida pelo AWS Secrets Manager.

O Amazon Redshift gerencia as configurações do segredo e o alterna a cada 30 dias por padrão. É possível girar manualmente o segredo a qualquer momento. Se você excluir um cluster provisionado ou um namespace de tecnologia sem servidor que gerencia um segredo no AWS Secrets Manager, o segredo e os metadados associados também serão excluídos.

Para se conectar a um cluster ou a um namespace de tecnologia sem servidor com credenciais gerenciadas por segredo, você pode recuperar o segredo do AWS Secrets Manager usando o console do Secrets Manager ou a chamada de API do Secrets Manager. Para ter mais informações, consulte Recuperar segredos do AWS Secrets Manager e Conecte-se a um banco de dados SQL com credenciais em um segredo do AWS Secrets Manager no Guia do usuário do AWS Secrets Manager.

Permissões necessárias para integração do AWS Secrets Manager

Os usuários devem ter as permissões necessárias para realizar operações relacionadas à integração do AWS Secrets Manager. Crie políticas do IAM que concedam permissões para realizar operações de API específicas nos recursos especificados dos quais eles precisam. Em seguida, anexe essas políticas aos conjuntos de permissões do IAM ou às funções que exigem essas permissões. Para ter mais informações, consulte Gerenciamento de Identidade e Acesso no Amazon Redshift.

O usuário que especifica que o Amazon Redshift gerencie a senha de administrador no AWS Secrets Manager deve ter permissões para realizar as seguintes operações:

  • secretsmanager:CreateSecret

  • secretsmanager:RotateSecret

  • secretsmanager:DescribeSecret

  • secretsmanager:UpdateSecret

  • secretsmanager:DeleteSecret

  • secretsmanager:GetRandomPassword

  • secretsmanager:TagResource

Se quiser passar uma chave KMS no parâmetro MasterPasswordSecretKmsKeyId para clusters provisionados ou no parâmetro AdminPasswordSecretKmsKeyId para namespaces de tecnologia sem servidor, o usuário precisará das permissões a seguir, além das permissões listadas acima.

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

  • kms:RetireGrant

Troca do segredo da senha de administrador

Por padrão, o Amazon Redshift troca automaticamente o segredo a cada 30 dias para garantir que as credenciais não continuem as mesmas por períodos prolongados. Quando o Amazon Redshift troca um segredo de senha de administrador, o AWS Secrets Manager atualiza o segredo existente para conter uma nova senha de administrador. O Amazon Redshift altera a senha de administrador do cluster para corresponder à senha no segredo atualizado.

Você pode trocar imediatamente um segredo, em vez de aguardar uma troca programada usando AWS Secrets Manager. Para obter mais informações, consulte Rotate AWS Secrets Manager secrets no Guia de usuário do AWS Secrets Manager.

Recuperação do nome do recurso da Amazon (ARN) do segredo no Amazon Redshift

Você pode exibir o nome do recurso da Amazon (ARN) em busca de qualquer segredo gerenciado pelo AWS Secrets Manager usando o console do Amazon Redshift. Depois de recuperar o ARN do segredo, você poderá exibir detalhes sobre o segredo e os dados criptografados no segredo usando o AWS Secrets Manager. Para obter mais informações sobre como recuperar segredos usando o ARN, consulte Retrieve secrets no Guia de usuário do AWS Secrets Manager.

Exibição dos detalhes sobre um segredo de um cluster provisionado pelo Amazon Redshift

Exiba o nome do recurso da Amazon (ARN) do segredo do cluster usando o console do Amazon Redshift com o seguinte procedimento:

  1. Faça logon no AWS Management Console e abra o console do Amazon Redshift.

  2. No painel Visão geral do cluster, escolha o cluster cujo segredo você deseja exibir.

  3. Escolha a guia Properties (Propriedades).

  4. Exiba o ARN do segredo em ARN em ARN de credenciais de administrador. Esse ARN é o identificador do segredo, que é possível usar no AWS Secrets Manager para exibir os detalhes do segredo.

Exibição dos detalhes sobre um segredo para um namespace do Amazon Redshift sem servidor

Exiba o nome do recurso da Amazon (ARN) do segredo do namespace de tecnologia sem servidor usando o console do Amazon Redshift com o seguinte procedimento:

  1. Faça logon no AWS Management Console e abra o console do Amazon Redshift.

  2. No painel Clusters provisionados, escolha Acessar a tecnologia sem servidor no canto superior direito da página.

  3. No painel de tecnologia sem servidor, role até o painel Namespaces/Grupos de trabalho e escolha o namespace cujo segredo você deseja visualizar.

  4. No painel Informações gerais, exiba o ARN do segredo em ARN de credenciais de administrador. Esse ARN é o identificador do segredo, que é possível usar no AWS Secrets Manager para exibir os detalhes do segredo.

Criar um segredo para credenciais de conexão de banco de dados

Você pode criar um segredo do Secrets Manager para armazenar as credenciais usadas para conexão com um cluster provisionado do Amazon Redshift ou um namespace e grupo de trabalho do Redshift sem servidor. Também é possível usar esse segredo ao programar uma consulta no Editor de Consultas do Amazon Redshift v2.

Como criar um segredo para um banco de dados em um cluster provisionado do Amazon Redshift usando o console do Secrets Manager
  1. Abra o console do Secrets Manager em (https://console.aws.amazon.com/secretsmanager/).

  2. Navegue até a lista Segredos e selecione Armazenar um novo segredo.

  3. Escolha Credenciais para o data warehouse do Amazon Redshift. Insira suas informações nas etapas para criar um segredo da seguinte forma:

    • Em Credenciais, no campo Nome de usuário, insira o nome do usuário administrativo do data warehouse.

    • Em Credenciais, no campo Senha, insira a senha para o Nome de usuário.

    • Em Chave de criptografia, escolha a chave de criptografia.

    • Em Data warehouse, escolha o cluster provisionado do Amazon Redshift que contém os dados.

    • Em Nome do segredo, insira um nome para o segredo.

    • Em Descrição, insira uma descrição do segredo.

    • Em Tags, insira uma chave de tag com a palavra Redshift. Essa chave de tag é necessária para listar segredos quando você tenta se conectar ao data warehouse usando o Editor de Consultas do Amazon Redshift v2. O segredo deve ter uma chave de tag iniciada com a string Redshift para o segredo ser listado no console de gerenciamento do AWS Secrets Manager.

  4. Continue a inserir informações sobre o segredo seguindo as várias telas até Armazenar suas alterações na etapa Analisar.

    Os valores específicos de suas credenciais, mecanismo, host, porta e identificador de cluster são armazenados no segredo. Além disso, o segredo é marcado com a chave da tag Redshift.

Como criar um segredo para um banco de dados em um namespace do Redshift sem servidor usando o console do Redshift sem servidor
  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. Selecione Redshift sem servidor e navegue até Configuração do namespace.

  3. Escolha um namespace para o qual criar credenciais secretas.

  4. Abra Ações, Edite credenciais de administrador.

  5. Em Senha do administrador, escolha Gerenciar credenciais do administrador no AWS Secrets Manager.

  6. Escolha Salvar alterações para salvar suas alterações.

Confirme se aparece uma mensagem informando que a senha foi alterada com sucesso. Também é possível visualizar o segredo no console do Secrets Manager. Você pode usá-lo para se conectar a um banco de dados em um grupo de trabalho no console do Amazon Redshift sem servidor e no Editor de Consultas do Amazon Redshift v2, utilizando o método de conexão do AWS Secrets Manager. Você também deve adicionar uma chave de tag iniciada com a string “Redshift” para que o segredo seja listado na aplicação web do editor de consultas v2. O segredo deve ter uma chave de tag iniciada com a string Redshift para o segredo ser listado no console de gerenciamento do AWS Secrets Manager.

Como criar um segredo para um banco de dados em um namespace do Redshift sem servidor usando o console do Secrets Manager
  1. Abra o console do Secrets Manager em (https://console.aws.amazon.com/secretsmanager/).

  2. Navegue até a lista Segredos e selecione Armazenar um novo segredo.

  3. Escolha Credenciais para o data warehouse do Amazon Redshift. Insira suas informações nas etapas para criar um segredo da seguinte forma:

    • Em Credenciais, no campo Nome de usuário, insira o nome do usuário administrativo do data warehouse.

    • Em Credenciais, no campo Senha, insira a senha para o Nome de usuário.

    • Em Chave de criptografia, escolha a chave de criptografia.

    • Em Data warehouse, escolha o namespace do Redshift sem servidor que contém os dados.

    • Em Nome do segredo, insira um nome para o segredo.

    • Em Descrição, insira uma descrição do segredo.

    • Em Tags, insira uma chave de tag com a palavra Redshift. Essa chave de tag é necessária para listar segredos quando você tenta se conectar ao data warehouse usando o Editor de Consultas do Amazon Redshift v2. O segredo deve ter uma chave de tag iniciada com a string Redshift para o segredo ser listado no console de gerenciamento do AWS Secrets Manager.

  4. Continue a inserir informações sobre o segredo seguindo as várias telas até Armazenar suas alterações na etapa Analisar.

    Valores específicos de suas credenciais, nome do banco de dados, host, porta, namespace e mecanismo são armazenados no segredo. Além disso, o segredo é marcado com a chave da tag Redshift.

Como criar um segredo para um banco de dados em um namespace do Redshift sem servidor usando a AWS CLI

É possível usar a AWS CLI para criar um segredo. Um método é usar o AWS CloudShell para executar o comando da AWS CLI do Secrets Manager da maneira a seguir. Você deve ter as permissões adequadas para executar os comandos da AWS CLI mostrados no procedimento a seguir.

  1. No console do AWS, abra o prompt de comando do AWS CloudShell. Para obter mais informações sobre o AWS CloudShell, consulte O que é o AWS CloudShell no Guia do usuário do AWS CloudShell.

  2. Por exemplo, no segredo MyTestSecret, insira um comando do Secrets Manager para armazenar o segredo usado para se conectar a um banco de dados ou agendar uma consulta do Editor de Consultas do Amazon Redshift v2. Substitua os seguintes valores no comando por valores de seu ambiente:

    • admin é o nome do usuário administrador do data warehouse.

    • passw0rd é a senha do administrador.

    • dev é o nome inicial do banco de dados no data warehouse.

    • region é a Região da AWS que contém o data warehouse. Por exemplo, us-east-1.

    • 123456789012 é a Conta da AWS.

    • namespace-id é o identificador de namespace semelhante a c3928f0e-c889-4d2b-97a5-5738324d5d3e. É possível encontrar esse identificador na página de detalhes do console do Amazon Redshift do namespace sem servidor.

    aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string "{\"username\":\"admin\",\"password\":\"passw0rd\",\"dbname\":\"dev\",\"engine\":\"redshift\"}" \ --tags "[{\"Key\":\"redshift-serverless:namespaceArn\",\"Value\":\"arn:aws:redshift-serverless:region:123456789012:namespace/namespace-id\"}]"

Considerações sobre como usar o AWS Secrets Manager com o Amazon Redshift

Ao usar AWS Secrets Manager para gerenciar o cluster provisionado ou as credenciais de administrador do namespace de tecnologia sem servidor, considere o seguinte:

  • Quando pausar um cluster cujas credenciais de administrador são gerenciadas pelo AWS Secrets Manager, o segredo do cluster não será excluído e você continuará recebendo a cobrança pelo segredo. Os segredos só são excluídos quando você exclui o cluster.

  • Se o cluster for pausado quando o Amazon Redshift tentar trocar o segredo anexado, a troca vai falhar. Nesse caso, o Amazon Redshift interrompe a troca automática e não vai tentar trocá-la novamente, mesmo depois que você retomar o cluster. Você deve reiniciar a programação de rotação automática usando a chamada de API secretsmanager:RotateSecret para fazer o AWS Secrets Manager continuar trocando o segredo automaticamente.

  • Se o namespace de tecnologia sem servidor não tiver um grupo de trabalho associado quando o Amazon Redshift tentar trocar o segredo anexado, a troca vai falhar e não tentar trocá-lo novamente, mesmo depois de você anexar um grupo de trabalho. Você deve reiniciar a programação de rotação automática usando a chamada de API secretsmanager:RotateSecret para fazer o AWS Secrets Manager continuar trocando o segredo automaticamente.