O que é 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á.

O que é o AWS Secrets Manager?

No passado, quando você criava um aplicativo personalizado para recuperar informações de um banco de dados, normalmente você incorporava as credenciais, o segredo, para acessar o banco de dados diretamente no aplicativo. Quando era o momento de alternar as credenciais, era necessário fazer mais do que simplesmente criar outras credenciais. Você precisava tirar tempo para atualizar o aplicativo para usar novas credenciais. E distribuía o aplicativo atualizado. Se você tivesse vários aplicativos com credenciais compartilhadas e um deles não fosse atualizado, haveria falha no aplicativo. Devido a esse risco, muitos clientes optam por não alternar regularmente as credenciais, o que, na verdade, substitui um risco por outro.

O Secrets Manager permite substituir credenciais codificadas, incluindo senhas, por uma chamada da API ao Secrets Manager para recuperar o segredo por programação. Isso ajuda a garantir que o segredo não possa ser comprometido por alguém que examine o código, pois o segredo não existe no código. Além disso, configure o Secrets Manager para rotacionar automaticamente o segredo para você de acordo com uma programação especificada. Isso permite que você substitua os segredos de longo prazo por outros de curto prazo, reduzindo significativamente o risco de comprometimento.

Conceitos básicos do Secrets Manager

Para ver uma lista de termos e conceitos que é necessária entender para fim de aproveitar ao máximo o Secrets Manager, consulte.

Os usuários típicos do Secrets Manager têm uma ou mais das seguintes funções:

  • Administrador do Secrets Manager — Administra o serviço Secrets Manager. Concede permissões a indivíduos que podem executar as outras funções listadas aqui.

  • Administrador do banco de dados ou do serviço — Administra o banco de dados ou o serviço com segredos armazenados no Secrets Manager. Determina e define as configurações de rotação e expiração dos segredos.

  • Desenvolvedor de aplicativos — cria o aplicativo e o configura o aplicativo para solicitar as credenciais apropriadas do Secrets Manager.

Cenário do Secrets Manager

O diagrama a seguir ilustra o cenário mais básico. O diagrama mostra como é possível armazenar credenciais de um banco de dados no Secrets Manager e usar essas credenciais em um aplicativo que precisa acessar o banco de dados.

  1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal para uso por um aplicativo chamado MyCustomApp. O administrador também configura essas credenciais com as permissões necessárias para o aplicativo acessar o banco de dados de Pessoal.

  2. O administrador do banco de dados armazena as credenciais como um segredo no Secrets Manager chamadoMyCustomAppCreds. Em seguida, o Secrets Manager criptografa e armazena as credenciais no segredo como otexto secreto protegido.

  3. Quando o MyCustomApp acessa o banco de dados, o aplicativo consulta o Secrets Manager para obter o segredo chamadoMyCustomAppCreds.

  4. O Secrets Manager recupera o segredo, descriptografa o texto de segredo protegido e retorna o segredo ao aplicativo cliente por meio de um canal seguro (HTTPS com TLS).

  5. O aplicativo cliente analisa as credenciais, a string de conexão e todas as outras informações necessárias da resposta e usa as informações para acessar o servidor do banco de dados.

nota

O Secrets Manager é compatível com muitos tipos de segredos. No entanto, o Secrets Manager podeDe forma nativagirar credenciais paracompatívelAWSBancos de dados dosem qualquer programação adicional. No entanto, a rotação dos segredos de outros bancos de dados ou serviços requer a criação de uma função personalizada do Lambda para definir a forma como o Secrets Manager interagirá com o banco de dados ou o serviço. É necessário ter alguma experiência em programação para criar a função. Para obter mais informações, consulte Rotação do seuAWS Secrets Managersegredos do.

Recursos do Secrets Manager

Recuperar programaticamente valores secretos criptografados em tempo de execução

O Secrets Manager ajuda a melhorar sua postura de segurança, removendo credenciais codificadas do código-fonte do aplicativo, e não armazenando-as de qualquer maneira dentro do aplicativo. Armazenar as credenciais dentro ou fora do aplicativo as sujeita a possível comprometimento por qualquer pessoa que pode inspecionar o aplicativo ou os componentes. Como é necessário atualizar o aplicativo e implantar as alterações para cada cliente antes de defasar as credenciais antigas, esse processo também dificulta a rotação das credenciais.

O Secrets Manager permite substituir as credenciais armazenadas por uma chamada no tempo de execução ao serviço Web do Secrets Manager para que seja possível recuperar as credenciais dinamicamente quando necessário.

Na maioria das vezes, o cliente exige acesso à versão mais recente do valor de segredo criptografado. Ao consultar o valor do segredo criptografado, você pode fornecer apenas o nome ou o nome de recurso da Amazon (ARN) do segredo, sem especificar informações sobre a versão. Se fizer isso, o Secrets Manager retornará automaticamente a versão mais recente do valor de segredo.

No entanto, outras versões podem existir ao mesmo tempo. A maioria dos sistemas oferecem suporte a segredos mais complexos que uma simples senha, como conjuntos completos de credenciais, incluindo os detalhes da conexão, o ID do usuário e a senha. O Secrets Manager permite armazenar vários conjuntos dessas credenciais ao mesmo tempo. O Secrets Manager armazena cada conjunto em uma versão diferente do segredo. Durante o processo de rotação do segredo, o Secrets Manager rastreia as credenciais mais antigas, bem como as novas credenciais que você deseja começar a usar, pelo menos até que a rotação tenha sido concluída. Ele rastreia essas diferentes versões usando rótulos de preparação.

Armazenar diferentes tipos de segredos

O Secrets Manager permite armazenar textos na parte de dados de segredo criptografados de um segredo. Isso normalmente inclui os detalhes de conexão do banco de dados ou do serviço. Os detalhes podem incluir o nome do servidor, o endereço IP e o número da porta, além do nome do usuário e a senha usados para fazer login no serviço. Para obter detalhes sobre segredos, consulte os valores máximos e mínimos. O texto protegido não inclui:

  • Nome e descrição do segredo

  • Configurações de rotação ou de expiração

  • ARN da chave mestra do cliente (CMK) do AWS KMS associada ao segredo

  • Qualquer tag da AWS anexadas

Criptografar seus dados secretos

O Secrets Manager criptografa o texto protegido de um segredo usando oAWS Key Management Service(AWS KMS). MuitosAWSUsar os serviços doAWS KMSpara armazenamento e criptografia de chaves.AWS KMSgarante a criptografia segura do seu segredo quando estiver em repouso. O Secrets Manager associa cada segredo a umaAWS KMSCMK Ela pode ser a CMK padrão para Secrets Manager da conta ou uma CMK criada pelo cliente.

Sempre que o Secrets Manager criptografar uma nova versão dos dados do segredo protegidos, o Secrets Manager solicita que oAWS KMSPara gerar uma nova chave de dados a partir do CMK especificado. Secrets Manager usa essa chave de dados paracriptografia de envelope. O Secrets Manager armazena a chave de dados criptografada com os dados do segredo protegidos. Sempre que o segredo precisar de descriptografia, o Secrets Manager solicitaAWS KMSPara descriptografar a chave de dados, que o Secrets Manager usará essa chave para descriptografar os dados do segredo protegidos. O Secrets Manager nunca armazena a chave de dados em forma não criptografada e sempre descarta a chave de dados imediatamente após o uso.

Além disso, o Secrets Manager, por padrão, só aceita solicitações de hosts usando o padrão abertoTransport Layer Security (TLS)eSegredos do Perfect Forward. Secrets Manager garante a criptografia do seu segredo enquanto estiver em trânsito entreAWSE os computadores que você usa para recuperar o segredo.

Rotação automática dos seus segredos

Você pode configurar o Secrets Manager para rotacionar seus segredos automaticamente sem qualquer intervenção do usuário e de acordo com uma programação especificada.

Você define e implementa a rotação com uma função AWS Lambda. Essa função define como o Secrets Manager executa as seguintes tarefas:

  • Cria uma nova versão do segredo.

  • Armazena o segredo no Secrets Manager.

  • Configura o serviço protegido para usar a nova versão.

  • Verifica a nova versão.

  • Marca a nova versão como pronta para produção.

Os rótulos de preparação ajudam você a acompanhar as diferentes versões dos seus segredos. Cada versão pode ter vários rótulos de preparação anexados, mas cada rótulo de preparação pode ser anexado somente a uma versão. Por exemplo, o Secrets Manager rotula a versão atualmente ativa e em uso do segredo comoAWSCURRENT. Você deve configurar seus aplicativos para sempre consultarem a versão atual do segredo. Quando o processo de rotação cria uma nova versão de um segredo, o Secrets Manager adiciona automaticamente o rótulo de preparaçãoAWSPENDINGpara a nova versão até que o teste e a validação sejam concluídos. Só então o Secrets Manager adiciona oAWSCURRENTEtiqueta de preparação para a nova versão. Seus aplicativos começarão a usar imediatamente o novo segredo na próxima vez em que consultarem a versão AWSCURRENT.

Bancos de dados com suporte à rotação totalmente configurado e pronto para execução

Quando você opta por habilitar a rotação, o Secrets Manager oferece suporte aos seguintes bancos de dados do Amazon Relational Database Service (Amazon RDS) com oAWSModelos de função de rotação do Lambda escritos e testados pela e configuração completa do processo de rotação:

  • Amazon Aurora no Amazon RDS

  • MySQL no Amazon RDS

  • PostgreSQL no Amazon RDS

  • Oracle no Amazon RDS

  • MariaDB no Amazon RDS

  • Microsoft SQL Server no Amazon RDS

Outros serviços com suporte à rotação totalmente configurado e pronto para execução

Também é possível optar por habilitar a rotação nos seguintes serviços, que são totalmente compatíveis com oAWSModelos de função de rotação do Lambda escritos e testados pela e configuração completa do processo de rotação:

  • Amazon DocumentDB

  • Amazon Redshift

Também é possível armazenar segredos para quase qualquer outro tipo de banco de dados ou serviço. No entanto, para rotacioná-los automaticamente, é necessário criar e configurar uma função de rotação personalizada do Lambda. Para obter mais informações sobre como escrever uma função personalizada do Lambda para um banco de dados ou serviço, consulteVisão geral da função de rotação do Lambda.

Controlar o acesso aos segredos

Você pode anexarAWS Identity and Access ManagementPolíticas de permissão do (IAM) aos seus usuários, grupos e funções que concedem ou negam acesso a segredos específicos e restringem o gerenciamento desses segredos. Por exemplo, talvez você anexe uma política a um grupo com membros que precisem gerenciar e configurar seus segredos totalmente. Outra política anexada a uma função usada por um aplicativo pode conceder permissão somente leitura no único segredo que o aplicativo precisa executar.

Como alternativa, é possível anexar uma política baseada em recursos diretamente ao segredo para conceder permissões que especificam os usuários que podem ler ou modificar o segredo e as versões. Ao contrário de uma política baseada em identidade, que se aplica automaticamente ao usuário, ao grupo ou à função, uma política baseada em recursos anexada a um segredo usa o elemento Principal para identificar o destino da política. O elemento Principal pode incluir usuários e funções da mesma conta do segredo ou os principais de outras contas.

Acesso ao Secrets Manager

Você pode trabalhar com o Secrets Manager de qualquer uma das seguintes formas:

AWS Management Console

Você pode gerenciar seus segredos usando oA consola do Secrets ManagerExecute praticamente qualquer tarefa relacionada aos seus segredos usando o console.

No momento, não é possível executar a seguinte tarefa no console:

  • Armazenar dados binários em um segredo. No momento, o console armazena dados somente no campo SecretString do segredo e não usa o campo SecretBinary. Para armazenar dados binários, use a AWS CLI ou um dos SDKs da AWS.

AWS Ferramentas de linha de comando

OAWSAs ferramentas de linha de comando do permitem emitir comandos na linha de comando do sistema para executar o Secrets Manager e outrosAWSTarefas do Isso pode ser mais rápido e mais conveniente do que usar o console. As ferramentas da linha de comando podem ser úteis se você quiser criar scripts para executar oAWSTarefas do

AWSA fornece dois conjuntos de ferramentas de linha de comando: oAWS Command Line Interface(AWS CLI) e oAWS Tools for Windows PowerShell. Para obter informações sobre como instalar e usar oAWS CLI, consulte oAWS Command Line InterfaceGuia do usuário do. Para obter informações sobre a instalação e o uso das Tools para Windows PowerShell, consulte oAWS Tools for Windows PowerShellGuia do usuário do.

AWS SDKs

OAWSOs SDKs consistem em bibliotecas e código de exemplo para várias linguagens de programação e plataformas, por exemplo,Java,Python,Ruby,.NET,iOS e Android, eoutros. Os SDKs incluem tarefas como assinatura criptográfica de solicitações, gerenciamento de erros e novas tentativas automáticas de solicitações. Para obter mais informações sobre os SDKs da AWS, incluindo como fazer download deles e instalá-los, consulte Ferramentas da Amazon Web Services.

API de consulta HTTPS do Secrets Manager

A API de consulta HTTPS do Secrets Manager proporciona acesso programático ao Secrets Manager e aoAWS. A API de consulta HTTPS permite executar solicitações HTTPS diretamente ao serviço. Quando você usa a API HTTPS, deve incluir código para assinar digitalmente solicitações usando suas credenciais. Para obter mais informações, consulteChamada da API por meio de solicitações de consulta HTTPO e aAWS Secrets ManagerReferência de API do.

nota

É recomendável usar o SDK específico da linguagem de programação de sua preferência, em vez de usar a API de consulta HTTPS. O SDK executa muitas tarefas úteis que você executa manualmente. Os SDKs assinam automaticamente suas solicitações e convertem a resposta em uma estrutura sintaticamente adequada a sua linguagem. Use a API de consulta HTTPS somente quando um SDK não estiver disponível.

Preços para o Secrets Manager

Quando você usa o Secrets Manager, você paga apenas pelo que usa, e não há taxas mínimas ou de instalação. Para obter a lista de preços atual completa, consulte Definição de preço do AWS Secrets Manager.

AWS KMS— chaves de criptografia personalizadas

Se você criar suas próprias chaves mestras do cliente usando o AWS KMS para criptografar os segredos, a AWS cobrará você usando a taxa atual do AWS KMS. No entanto, use a chave "padrão" criada pelo AWS Secrets Manager para sua conta gratuitamente. Para obter mais informações sobre o custo das chaves do AWS KMS criadas pelo cliente, consulte Definição de preço do AWS Key Management Service.

AWS CloudTrailRegistro em log — armazenamento e notificação

Se você habilitar oAWS CloudTrailNa sua conta, você pode obter registros de chamadas à APIAWS Secrets ManagerO envia para fora. O Secrets Manager registra todos os eventos como eventos de gerenciamento. Não há eventos de dados. Não há custo adicional para capturar uma única trilha no AWS CloudTrail para capturar eventos de gerenciamento. O AWS CloudTrail armazena a primeira cópia de todos os eventos de gerenciamento gratuitamente. No entanto, se você ativar as notificações, poderão ser cobradas taxas pelo armazenamento de logs do Amazon S3 e pelo uso do Amazon SNS. Além disso, se você configurar trilhas adicionais, as cópias adicionais de eventos de gerenciamento poderão ter custos. Para obter mais informações, consulte a página de definição de preços do AWS CloudTrail.