+ All Categories
Home > Documents > AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O...

AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O...

Date post: 31-Aug-2020
Category:
Upload: others
View: 15 times
Download: 0 times
Share this document with a friend
201
AWS Secrets Manager Guia do usuário
Transcript
Page 1: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets ManagerGuia do usuário

Page 2: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

AWS Secrets Manager: Guia do usuárioCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Table of ContentsO que é AWS Secrets Manager? .......................................................................................................... 1

Conceitos básicos de Secrets Manager ......................................................................................... 1Básico Secrets Manager cenário ................................................................................................... 1Recursos do Secrets Manager ..................................................................................................... 2

Recuperar programaticamente valores secretos encriptados no tempo de execução ...................... 2Armazenar diferentes tipos de segredos ................................................................................ 3Encriptar os seus dados secretos ......................................................................................... 3Rodar automaticamente os seus segredos ............................................................................. 3Controle o acesso aos segredos ........................................................................................... 4

Conformidade com as normas ...................................................................................................... 5Acessando o Secrets Manager ..................................................................................................... 6Definição de preços do Secrets Manager ....................................................................................... 7

AWS KMS – Chaves de criptografia personalizadas ................................................................. 7AWS CloudTrail Início de sessão – armazenamento e notificação .............................................. 7

Suporte e comentários para o AWS Secrets Manager ...................................................................... 8Conceitos básicos ............................................................................................................................... 9

Termos e conceitos .................................................................................................................... 9Secret ............................................................................................................................... 9Serviço protegido .............................................................................................................. 11Rotation ........................................................................................................................... 11Etiquetas de preparação .................................................................................................... 12Versioning ........................................................................................................................ 12

Tutoriais .......................................................................................................................................... 14Tutorial: Criar e recuperar um segredo ......................................................................................... 14

Prerequisites .................................................................................................................... 14Passo 1: Crie e guarde o seu segredo em AWS Secrets Manager ............................................ 14

Tutorial: Rodar um Segredo para um AWS Base de dados ............................................................. 17Prerequisites .................................................................................................................... 18Permissões obrigatórias ..................................................................................................... 18Configurar um teste MySQL base de dados .......................................................................... 18Passo 2: Crie o seu segredo .............................................................................................. 19Passo 3: Valide o seu segredo inicial .................................................................................. 20Passo 4: Configure a rotação para o seu segredo ................................................................. 22Passo 5: Verificar rotação bem-sucedida .............................................................................. 22Passo 6: Limpeza ............................................................................................................. 22

Tutorial: Rodar um segredo de utilizador com um segredo principal .................................................. 23Prerequisites .................................................................................................................... 18Passo 1: Criar um novo utilizador para a sua base de dados e um segredo de utilizador ............... 24Passo 2: Valide o seu segredo inicial .................................................................................. 25Passo 3: Configure a rotação para o seu segredo ................................................................. 25Passo 4: Verificar a rotação bem-sucedida ........................................................................... 25Passo 5: Limpar ............................................................................................................... 26

Tutorial: Acessar segredos entre contas do AWS Secrets Manager .................................................. 26Etapa 1: Criar e anexar uma política de recursos para a conta doCENTRAL_SECURITY ................ 27Etapa 2: Atualizar a política de chaves em sua conta daCENTRAL_SECURITY ............................ 27Etapa 3: Conceder à função do IAM Production permissão para recuperar o segredo ............... 28Etapa 4: Testar o acesso ao SECURITY_SECRET pela conta daPRODUCTION ............................. 29

Práticas recomendadas ...................................................................................................................... 30Proteger informações confidenciais adicionais ............................................................................... 30Melhorar o desempenho usando os componentes de armazenamento em cache no lado do clientefornecidos pelaAWS .................................................................................................................. 31Adicionar novas tentativas ao aplicativo ....................................................................................... 31Mitigar os riscos de registrar em log e de depuração da sua função do Lambda .................................. 32Mitigar os riscos de usar a CLI da AWS para armazenar seus segredos ............................................ 32

iii

Page 4: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Acesso entre contas – Devo especificar usuário/função ou a conta? ................................................. 34Executar tudo em uma VPC ....................................................................................................... 35Marcar seus segredos ............................................................................................................... 35

Implementar o controle de acesso baseado em atributo (ABAC) para segredos ........................... 36Como mudar segredos em uma programação ............................................................................... 36Como auditar o acesso a segredos ............................................................................................. 37Monitorar segredos com oAWS Config ......................................................................................... 37

Autenticação e controle de acesso para o AWS Secrets Manager ............................................................ 38.............................................................................................................................................. 38

Visão geral .............................................................................................................................. 38Authentication ................................................................................................................... 39Controle de acesso e autorização ....................................................................................... 40

Determinar o acesso a um segredo ............................................................................................. 47Noções básicas sobre a avaliação de políticas ...................................................................... 47Examinar a política de recursos .......................................................................................... 48Examinar as políticas do IAM ............................................................................................. 49

Usar políticas baseadas em identidade (políticas do IAM) e ABAC para Secrets Manager ..................... 50AWSPolítica gerenciada para oSecrets Manager ................................................................... 51Conceder permissões completas de administrador do Secrets Manager a um usuário .................. 51Conceder acesso de leitura a um segredo ............................................................................ 52Limitar o acesso a ações específicas ................................................................................... 52Limitação de acesso a segredos específicos ......................................................................... 53Limitar o acesso a segredos com tags ou rótulos de preparação específicos (ABAC) ................... 54Conceder uma permissão à função de rotação para acessar um segredo mestre separado ........... 55

Uso de políticas baseadas em recursos para o Secrets Manager ..................................................... 57Controlar o acesso a segredos para principais ...................................................................... 57Conceder acesso somente leitura a uma função .................................................................... 58

Criação e gestão de segredos ............................................................................................................ 59Criar um segredo ...................................................................................................................... 59Modificar um segredo ................................................................................................................ 63Recuperar o valor secreto .......................................................................................................... 69

Usar os componentes em cache de código aberto no lado do cliente desenvolvidos pela AWS ....... 70Recursos de pesquisa aprimorados para segredos noSecrets Manager ............................................. 71

Usar pesquisa sem filtros ................................................................................................... 72Eliminar e restaurar um segredo ................................................................................................. 74Gerenciar uma política baseada em recursos de um segredo .......................................................... 78

Anexar uma política baseada em recursos a um segredo ........................................................ 79Recuperar uma política baseada em recursos de um segredo .................................................. 82Excluir uma política baseada em recursos de um segredo ...................................................... 83

Executar rotação de segredos ............................................................................................................ 85Permissões necessárias para alternar segredos automaticamente .................................................... 85

Permissões para usuários que configuram rotação versus usuários que acionam rotação ............. 86Permissões associadas à função de rotação do Lambda ........................................................ 86

Configuração da rede para ser compatível com rotação de segredos ................................................ 88Rotação de segredos do Amazon RDS ........................................................................................ 89

Permitir a rotação para um Amazon RDS secreta da base de dados ......................................... 91Personalização do Lambda função de rotação fornecida pelo Gestor de Segredos ...................... 96

Rotação de segredos do Amazon Redshift ................................................................................... 97Permitir a rotação para um Amazon Redshift secreto ............................................................. 99

Rotação de segredos do Amazon DocumentDB ........................................................................... 105Permitir a rotação para um Amazon DocumentDB secreto ..................................................... 107

Rotação de outros segredos ..................................................................................................... 113Rotação de outros segredos ............................................................................................. 113Permitir a rotação para um segredo para outra base de dados ou serviço ................................ 116

Compreender e personalizar o seu Lambda função de rotação ....................................................... 118Descrição geral do Lambda função de rotação .................................................................... 119Rotacionar segredos – Um usuário, uma senha ................................................................... 122

iv

Page 5: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Executar rotação de segredos – Alternar entre dois usuários existentes ................................... 126Rotacionar segredos – Somente senhas ............................................................................. 129

Exclusão de funções de rotação ................................................................................................ 132Usar o Secrets Manager com VPC endpoints ...................................................................................... 136

Conectar-se ao Secrets Manager por meio de um VPC endpoint .................................................... 136Criar um VPC endpoint privado do Secrets Manager .................................................................... 137Conexão a um VPC endpoint privado do Secrets Manager ............................................................ 139Utilização de um VPC endpoint privado em uma declaração de política ........................................... 140Criar uma política de endpoint para o VPC endpoint do Secrets Manager ........................................ 142Auditoria do uso do VPC endpoint do Secrets Manager ................................................................ 143

Monitorar seus segredos .................................................................................................................. 144Registro em log de chamadas de API do AWS Secrets Manager com o AWS CloudTrail ..................... 144

Registro em log de eventos não relacionados a API do AWS Secrets Manager ......................... 144Secrets Manager Informações em CloudTrail ...................................................................... 145Recuperar entradas de arquivo de log do Secrets Manager ................................................... 145Noções básicas das entradas dos arquivos de log do Secrets Manager ................................... 146

Eventos do Amazon CloudWatch ............................................................................................... 148A monitorizar versões secretas agendadas para eliminação ................................................... 148

Trabalhar com outros serviços .......................................................................................................... 151Automatizar a criação de segredos com oAWS CloudFormation ..................................................... 151Monitorar segredos com oAWS Config ....................................................................................... 151Como proteger os segredos com o AWS Identity and Access Management (IAM) .............................. 152Monitorar segredos com o AWS CloudTrail e oAmazon CloudWatch ............................................... 152Criptografar seus segredos com oAWS KMS ............................................................................... 152Recuperar segredos com o repositório de parâmetros APIs ........................................................... 153Integração do Secrets Manager ao Amazon Elastic Container Service ............................................. 153Integrar o Secrets Manager ao AWS Fargate .............................................................................. 153Integração do Secrets Manager com o AWS IoT Greengrass ......................................................... 154Gerenciar credenciais do repositório do SageMaker com oSecrets Manager ..................................... 154Usar o Security Hub para melhores práticas de segurança noSecrets Manager ................................. 154Armazenar credenciais de registro do AWS CodeBuild com oSecrets Manager ................................. 155Armazenar credenciais de registro do Amazon EMR com oSecrets Manager .................................... 155Integrar o Zelkova a políticas de recursos doSecrets Manager ....................................................... 155Automatizar a criação de segredos em AWS CloudFormation ........................................................ 156

Examples ....................................................................................................................... 156Monitorar segredos do Secrets Manager usando oAWS Config ...................................................... 162

Benefícios do rastreamento de segredos com oAWS Config .................................................. 162AWS ConfigAs regras do compatíveis com o são compatíveis com oSecrets Manager ................ 163Implementar as melhores práticas de gerenciamento de segredos usando oAWS Config ............. 163Configurar regras doAWS ConfigSecrets Manager ............................................................... 164Configurar o agregador de dados de várias contas e regiões do AWS Config para melhorespráticas de gerenciamento de segredos .............................................................................. 165

Segurança no AWS Secrets Manager ................................................................................................ 166Proteção de dados no AWS Secrets Manager ............................................................................. 166

Criptografia em repouso ................................................................................................... 167Criptografia em trânsito .................................................................................................... 167Gerenciamento de chave de criptografia ............................................................................. 167Privacidade do tráfego entre redes .................................................................................... 167

Segurança da infraestrutura ...................................................................................................... 168Resiliência .............................................................................................................................. 168Validação de conformidade ....................................................................................................... 168

Referência do AWS Secrets Manager ................................................................................................ 170Cotas para AWS Secrets Manager ............................................................................................ 170

Restrições de nomes ....................................................................................................... 170Cotas máximas ............................................................................................................... 170Cotas de tarifa ................................................................................................................ 171

Modelos de função de rotação .................................................................................................. 171

v

Page 6: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Modelos para bancos de dados do Amazon RDS ................................................................ 172Modelos para outros bancos de dados ............................................................................... 177Modelos para outros serviços ........................................................................................... 178

Políticas gerenciadas ............................................................................................................... 179Ações, recursos e chaves de contexto ....................................................................................... 179

Ações ............................................................................................................................ 179Recursos ....................................................................................................................... 179Chaves de contexto ......................................................................................................... 180

Solucionar problemas do AWS Secrets Manager ................................................................................. 183Solução de problemas gerais .................................................................................................... 183

Recebo uma mensagem de “acesso negado” quando envio uma solicitação ao AWS SecretsManager. ....................................................................................................................... 183Recebo uma mensagem de "acesso negado" quando envio uma solicitação com credenciais desegurança temporárias. .................................................................................................... 183As alterações que faço nem sempre ficam imediatamente visíveis. ......................................... 184Recebo uma mensagem “não é possível gerar uma chave de dados com uma CMK assimétrica”ao criar um segredo. ....................................................................................................... 184

Solucionar problemas de rotação ............................................................................................... 185Eu quero localizar os logs de diagnóstico da minha função de rotação do Lambda ..................... 185Eu não consigo prever quando a rotação vai começar .......................................................... 185Eu recebo a mensagem "access denied" (acesso negado) ao tentar configurar a rotação de meusegredo ......................................................................................................................... 186Minha primeira rotação falha depois que habilito a rotação .................................................... 186A rotação apresenta falha porque o valor secreto não está formatado como esperado pelafunção de rotação. .......................................................................................................... 186O Secrets Manager informa que eu configurei a rotação com êxito, mas a senha não está sendoalternada ........................................................................................................................ 187A rotação falha com uma mensagem de erro "Falha interna" ................................................. 187O CloudTrail mostra os erros de acesso negado durante a rotação ......................................... 188

Envio de solicitações de consulta HTTP ............................................................................................. 189Endpoints ............................................................................................................................... 189HTTPS obrigatório ................................................................................................................... 189Assinatura de solicitações de API para Secrets Manager .............................................................. 190

Histórico de documentos .................................................................................................................. 191AWS Glossary ................................................................................................................................ 194................................................................................................................................................... cxcv

vi

Page 7: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConceitos básicos de Secrets Manager

O que é AWS Secrets Manager?No passado, quando você criava um aplicativo personalizado para recuperar informações de um bancode dados, normalmente você incorporava as credenciais, o segredo, para acessar o banco de dadosdiretamente no aplicativo. Quando era o momento de alternar as credenciais, era necessário fazer mais doque simplesmente criar outras credenciais. Você precisava tirar tempo para atualizar o aplicativo para usarnovas credenciais. E distribuía o aplicativo atualizado. Se você tivesse vários aplicativos com credenciaiscompartilhadas e um deles não fosse atualizado, haveria falha no aplicativo. Devido a esse risco, muitosclientes optam por não alternar regularmente as credenciais, o que, na verdade, substitui um risco poroutro.

O Secrets Manager permite substituir credenciais codificadas, incluindo senhas, por uma chamada da APIpara o Secrets Manager a fim de recuperar o segredo de forma programática. Isso ajuda a garantir queo segredo não possa ser comprometido por alguém que examine o código, pois o segredo não existe nocódigo. Além disso, é possível configurar o Secrets Manager para alternar automaticamente o segredopara você de acordo com uma programação especificada. Isso permite que você substitua os segredos delongo prazo por outros de curto prazo, reduzindo significativamente o risco de comprometimento.

Conceitos básicos de Secrets ManagerPara obter uma lista de termos e conceitos que é necessária entender para fim de aproveitar ao máximo oSecrets Manager, consulte Termos e conceitos chave para AWS Secrets Manager (p. 9).

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

• Administrador do Secrets Manager – Administra o serviço do Secrets Manager. Concede permissões aindiví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 comsegredos armazenados no Secrets Manager. Determina e define as configurações de rotação eexpiração dos segredos.

• Desenvolvedor de aplicativos – cria o aplicativo e o configura o aplicativo para solicitar as credenciaisapropriadas do Secrets Manager.

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

1

Page 8: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRecursos do Secrets Manager

1. O administrador da base de dados cria um conjunto de credenciais na base de dados de pessoalpara utilização por uma aplicação chamada MyCustomApp. O administrador também configura essascredenciais com as permissões necessárias para a aplicação aceder à base de dados de pessoal.

2. O administrador da base de dados armazena as credenciais como segredo em Secrets Manager como nome MyCustomAppCreds. Então, Secrets Manager encripta e armazena as credenciais dentro dosegredo quando texto secreto protegido.

3. Quando MyCustomApp acede à base de dados, as consultas da aplicação Secrets Manager pelosegredo chamado MyCustomAppCreds.

4. O Secrets Manager recupera o segredo, descriptografa o texto de segredo protegido e retorna osegredo 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çõesnecessárias da resposta e usa as informações para acessar o servidor do banco de dados.

Note

O Secrets Manager é compatível com muitos tipos de segredos. No entanto, o SecretsManager pode rotacionar credenciais de forma nativa para bancos de dados da AWScompatíveis (p. 4) sem nenhuma programação adicional. No entanto, a rotação dos segredosde outros bancos de dados ou serviços exige a criação de uma função personalizada do Lambdapara definir como o Secrets Manager interage com o banco de dados ou o serviço. É necessárioter alguma experiência em programação para criar a função. Para obter mais informações,consulte Rotação dos segredos do AWS Secrets Manager (p. 85).

Recursos do Secrets ManagerRecuperar programaticamente valores secretosencriptados no tempo de execuçãoO Secrets Manager ajuda a melhorar sua postura de segurança, removendo credenciais codificadas docódigo-fonte do aplicativo, e não armazenando-as de qualquer maneira dentro do aplicativo. Armazenar ascredenciais dentro ou fora do aplicativo as sujeita a possível comprometimento por qualquer pessoa quepode inspecionar o aplicativo ou os componentes. Como é necessário atualizar o aplicativo e implantar asalterações para cada cliente antes de defasar as credenciais antigas, esse processo também dificulta arotação das credenciais.

O Secrets Manager possibilita substituir as credenciais armazenadas por uma chamada no tempo deexecução para o web service do Secrets Manager para que seja possível recuperar as credenciaisdinamicamente quando necessário.

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

No entanto, outras versões podem existir ao mesmo tempo. A maioria dos sistemas oferece suportea segredos mais complicados do que uma senha simples, como conjuntos completos de credenciais,incluindo os detalhes da conexão, o ID e a senha do usuário. O Secrets Manager permite que vocêarmazene vários conjuntos dessas credenciais ao mesmo tempo. O Secrets Manager armazena cadaconjunto em uma versão diferente do segredo. Durante o processo de rotação do segredo, o SecretsManager rastreia as credenciais mais antigas, bem como as credenciais novas que você deseja começar ausar, pelo menos até que a rotação esteja concluída. Ele rastreia essas diferentes versões usando rótulosde preparação (p. 12).

2

Page 9: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioArmazenar diferentes tipos de segredos

Armazenar diferentes tipos de segredosO Secrets Manager permite que você armazene texto na parte de dados de segredo criptografados de umsegredo. Isso normalmente inclui os detalhes de conexão do banco de dados ou do serviço. Os detalhespodem incluir o nome do servidor, o endereço IP e o número da porta, além do nome do usuário e a senhausados para fazer login no serviço. Para obter detalhes sobre segredos, consulte os valores máximos emí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

Encriptar os seus dados secretosO Secrets Manager criptografa o texto protegido de um segredo usando o AWS Key Management Service(AWS KMS). Muitos serviços da AWS usam o AWS KMS para o armazenamento de chaves e criptografia.O AWS KMS garante a criptografia segura do seu segredo quando está em repouso. O Secrets Managerassocia todos os segredos a uma CMK do AWS KMS. Ela pode ser a CMK padrão para Secrets Managerda conta ou uma CMK criada pelo cliente.

Sempre que o Secrets Manager criptografa uma nova versão dos dados do segredo protegido, o SecretsManager solicita que o AWS KMS gere uma nova chave de dados com base na CMK especificada.O Secrets Manager usa essa chave de dados para a criptografia de envelope. O Secrets Managerarmazena a chave de dados criptografada com os dados do segredo protegido. Sempre que o segredoprecisa de descriptografia, o Secrets Manager solicita que o AWS KMS descriptografe a chave de dados,que o Secrets Manager usa para descriptografar os dados do segredo protegidos. O Secrets Managernunca armazena a chave de dados em forma não criptografada e sempre descarta a chave de dadosimediatamente após o uso.

Além disso, o Secrets Manager, por padrão, só aceita solicitações de hosts que usam o padrão abertoTLS (Transport Layer Security) e o Perfect Forward Secrecy. O Secrets Manager garante a criptografia dosegredo enquanto ele estiver em trânsito entre a AWS e os computadores que você usa para recuperar osegredo.

Rodar automaticamente os seus segredosÉ possível configurar o Secrets Manager para fazer a rotação de seus segredos automaticamente semqualquer 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. Esta função define como o SecretsManager 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. Cadaversão pode ter vários rótulos de preparação anexados, mas cada rótulo de preparação pode ser anexadosomente a uma versão. Por exemplo, o Secrets Manager rotula a versão atualmente ativa e em uso do

3

Page 10: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle o acesso aos segredos

segredo como AWSCURRENT. Você deve configurar seus aplicativos para sempre consultarem a versãoatual do segredo. Quando o processo de rotação cria uma nova versão de um segredo, o Secrets Manageradiciona automaticamente o rótulo de preparação AWSPENDING à nova versão até que os testes evalidações sejam concluídos. Só então o Secrets Manager adiciona o rótulo de preparação AWSCURRENT aessa nova versão. Seus aplicativos começarão a usar imediatamente o novo segredo na próxima vez emque consultarem a versão AWSCURRENT.

Bases de dados com suporte de rotação totalmente configuradoe pronto a usarQuando você opta por habilitar a rotação, o Secrets Manager oferece suporte aos seguintes bancos dedados do Amazon Relational Database Service (Amazon RDS) com modelos de função de rotação doLambda escritos e testados pela AWS e a 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 de rotação totalmente configurado epronto a usarTambém é possível optar por habilitar a rotação nos seguintes serviços, que são totalmente compatíveiscom os modelos da função de rotação do Lambda testados e escritos pela AWS e a configuração completado 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 alterná-los automaticamente, é necessário criar e configurar uma função de rotaçãopersonalizada do Lambda. Para obter mais informações sobre como escrever uma função Lambdapersonalizada para um banco de dados ou serviço, consulte Descrição geral do Lambda função derotação (p. 119).

Controle o acesso aos segredosÉ possível anexar as políticas de permissão do AWS Identity and Access Management (IAM) aos seususuários, grupos e funções que concedem ou negam acesso a segredos específicos e restringir ogerenciamento desses segredos. Por exemplo, talvez você anexe uma política a um grupo com membrosque precisem gerenciar e configurar seus segredos totalmente. Outra política anexada a uma funçãousada por um aplicativo pode conceder permissão somente leitura no único segredo que o aplicativoprecisa executar.

Como alternativa, é possível anexar uma política baseada em recursos diretamente ao segredo paraconceder 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 grupoou à função, uma política baseada em recursos anexada a um segredo usa o elemento Principal paraidentificar o destino da política. O elemento Principal pode incluir usuários e funções da mesma contado segredo ou os principais de outras contas.

4

Page 11: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConformidade com as normas

Conformidade com as normasO AWS Secrets Manager passou por uma auditoria dos padrões a seguir e pode fazer parte de suasolução quando você precisar obter certificação de conformidade.

A AWS expandiu seu programa de conformidade da lei americana HIPAA (Health InsurancePortability Accountability Act) para incluir o AWS Secrets Manager como um serviçoqualificado para a HIPAA. Se você tiver um acordo de associado comercial (BAA) com aAWS, poderá usar o Secrets Manager para ajudar a criar seus aplicativos compatíveis coma HIPAA. O AWS oferece um whitepaper sobre a HIPAA para os clientes interessados emsaber mais sobre como podem utilizar a AWS para processamento e armazenamento deinformações de saúde. Para obter mais informações, consulte Conformidade com a HIPAA.

O AWS Secrets Manager tem uma Declaração de conformidade com o Padrão de segurançade dados (DSS) versão 3.2 do Setor de cartões de pagamentos (PCI) no nível 1 de provedorde serviços. Os clientes que usam os produtos da AWS para armazenar, processar outransmitir dados de titulares de cartões podem usar o AWS Secrets Manager ao gerenciarsua própria certificação de conformidade com o PCI DSS. Para obter mais informações sobreo PCI DSS, incluindo como solicitar uma cópia do pacote de conformidade com o PCI daAWS, consulte Nível 1 do PCI DSS.

O AWS Secrets Manager concluiu com êxito a certificação de conformidade para a ISO/IEC 27001, a ISO/IEC 27017, a ISO/IEC 27018 e a ISO 9001. Para obter mais informações,consulte ISO 27001, ISO 27017, ISO 27018 e ISO 9001.

Os relatórios de Controle do sistema e da organização (System and Organization Control,SOC) são relatórios de exames de terceiros independentes que demonstram como oSecrets Manager obtém os principais controles e objetivos de conformidade. O objetivodesses relatórios é ajudar você e seus auditores a compreenderem os controles da AWSestabelecidos para oferecer suporte às operações e à conformidade. Para obter maisinformações, consulte Conformidade com o SOC.

O Federal Risk and Authorization Management Program (FedRAMP – Programa federalde gerenciamento de autorização e risco) é um programa do governo que disponibilizauma abordagem padronizada para avaliação de segurança, autorização e monitoramentocontínuo de produtos e serviços na nuvem. lá estão FedRAMP também fornece autorizaçõesprovisórias para serviços e regiões para o Oriente/Oeste e GovCloud para consumir dadosgovernamentais ou regulamentados. Para obter mais informações, consulte FedRAMPConformidade.

5

Page 12: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAcessando o Secrets Manager

O Guia de Requisitos de Segurança de Computação em Nuvem (SRG) do Departamentode Defesa (DoD) fornece um processo padronizado de avaliação e autorização parafornecedores de serviços em nuvem (CSPs) obter um DoD autorização provisória, para quepossam servir DoD clientes. Para obter mais informações, consulte DoD Recursos SRG

O Programa de Avaliadores Registados de Segurança da Informação (IRAP) permite queos clientes do governo australiano validem a implementação de controlos apropriados edeterminem o modelo de responsabilidade adequado para abordar os requisitos do Manualde Segurança da Informação (ISM) do governo australiano produzido pelo Centro deSegurança Cibernética Australiano (ACSC). Para obter mais informações, consulte RecursosIRAP

A Amazon Web Services (AWS) obteve o atestado de Relatório de Auditoria de Prestadoresde Serviços Terceirizados (OSPAR). O alinhamento da AWS com as Diretrizes da Associationof Banks in Singapore (ABS) sobre Objetivos e Procedimentos de Controlo para Prestadoresde Serviços Terceirizados (ABS Guidelines) demonstra aos clientes o compromisso da AWSem cumprir as elevadas expectativas para os prestadores de serviços em nuvem definidaspela indústria de serviços financeiros em Singapura. Para obter mais informações, consulte Recursos OSPAR

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

Console de Gerenciamento da AWS

É possível gerenciar segredos usando O console do Secrets Manager console baseado em navegadore executar praticamente qualquer tarefa relacionada a 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 SecureBinary. Para guardar dadosbinários, tem de utilizar a função AWS CLI ou uma das AWS SDKs.

Ferramentas de linha de comando da AWS

As ferramentas de linha de comando da AWS permitem emitir comandos na linha de comando dosistema para realizar tarefas do Secrets Manager e outras tarefas da AWS. Isso pode ser mais rápidoe mais conveniente do que usar o console. As ferramentas da linha de comando podem ser úteis sevocê quiser criar scripts para realizar tarefas da AWS.

A AWS fornece dois conjuntos de ferramentas de linha de comando: o AWS Command Line Interface(AWS CLI) e o AWS Tools para Windows PowerShell. Para obter informações sobre a instalação

6

Page 13: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioDefinição de preços do Secrets Manager

e o uso da CLI da AWS, consulte Guia do usuário do AWS Command Line Interface. Para obterinformações sobre a instalação e o uso da Tools para Windows PowerShell, consulte o Guia dousuário do AWS Tools para Windows PowerShell.

AWS SDKs

A AWS SDKs consistem em bibliotecas e exemplos de códigos para várias linguagens e plataformasde programação, por exemplo, Java, Piton, Rubi, .NET, iOS e Androide outros. lá estão SDKsincluem tarefas como assinar criptograficamente pedidos, gerir erros e tentar novamente pedidosautomaticamente. Para mais informações sobre a AWS SDKs, incluindo como transferi-los e instalá-los, consulte Ferramentas para os Serviços Web da Amazon.

Secrets Manager API de Questões HTTPS

A API de consulta HTTPS do Secrets Manager proporciona acesso programático ao Secrets Managere à AWS. 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 usandosuas credenciais. Para obter mais informações, consulte Chamar a API fazendo solicitações deconsulta HTTP e o Referência de AWS Secrets Manager API.

Note

É recomendável usar o SDK específico da linguagem de programação de sua preferência, emvez de usar a API de consulta HTTPS. O SDK executa muitas tarefas úteis que você executamanualmente. lá estão SDKs assinará automaticamente os seus pedidos e converterá aresposta numa estrutura sintaticamente adequada ao seu idioma. Use a API de consultaHTTPS somente quando um SDK não estiver disponível.

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

AWS KMS – Chaves de criptografia personalizadasSe 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 peloAWS Secrets Manager para sua conta gratuitamente. Para obter mais informações sobre o custo daschaves do AWS KMS criadas pelo cliente, consulte Definição de preço do AWS Key Management Service.

AWS CloudTrail Início de sessão – armazenamento enotificaçãoSe você habilitar o AWS CloudTrail em sua conta, poderá obter logs de chamadas de API que oAWS Secrets Manager envia. O Secrets Manager registra em log todos os eventos como eventos degerenciamento. Não há eventos de dados. Não há custo adicional para capturar uma única trilha no AWSCloudTrail para capturar eventos de gerenciamento. O AWS CloudTrail armazena a primeira cópia detodos os eventos de gerenciamento gratuitamente. No entanto, se você habilitar as notificações, poderãoser 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.

7

Page 14: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSuporte e comentários para o AWS Secrets Manager

Suporte e comentários para o AWS SecretsManager

Os seus comentários são bem-vindos. Envie comentários para [email protected]. Você também pode publicar seus comentários e perguntas no nosso fórum desuporte da AWS Secrets Manager. Para obter mais informações sobre os fóruns de suporte da AWS,consulte Ajuda com os fóruns.

Para fazer solicitações de recursos para o console do AWS Secrets Manager ou para as ferramentas delinha de comando, recomendamos enviá-las por e-mail para [email protected].

Para enviar feedback sobre a nossa documentação, você pode usar o link de feedback na parte inferiorde cada página da web. Seja específico sobre o problema que você está enfrentando e porque adocumentação não foi útil para você. Conte-nos o que viu e o que você esperava. Isso nos ajudará aentender o que precisamos fazer para melhorar a documentação.

Veja a seguir alguns recursos adicionais disponíveis para você:

• Catálogo de treinamento da AWS – Cursos de especialidades e com base em função, bem comolaboratórios autoguiados para ajudar a aprimorar suas habilidades da AWS e obter experiência prática.

• Ferramentas do desenvolvedor da AWS – Ferramentas e recursos que fornecem documentação,exemplos de código, notas de release e outras informações para ajudá-lo a criar aplicativos inovadorescom a AWS.

• AWS Support Center – a central para criar e gerenciar seus casos de Suporte da AWS. Inclui ligações aoutros recursos úteis, tais como fóruns, FAQs, estado de saúde do serviço e Consultor de Confiança daAWS.

• AWS Support – Um canal de suporte de resposta rápida e com atendimento individual para ajudar aconstruir e a executar aplicativos na nuvem.

• Entre em contato conosco – Um ponto central de contato para consultas sobre faturamento, contas,eventos e outros problemas da AWS.

• Termos do site da AWS – Informações detalhadas sobre nossos direitos autorais e marca registrada; suaconta, licença e acesso ao site, entre outros tópicos.

8

Page 15: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioTermos e conceitos

Conceitos básicos do AWS SecretsManager

Para começar a usar o AWS Secrets Manager, recomendamos rever os seguintes tópicos:

• Termos e conceitos básicos do (p. 9) – conceitos básicos e termos do Secrets Manager usados noscomandos do SDK, do APIs e da interface do console.

Termos e conceitos chave para AWS SecretsManager

Os seguintes temos e conceitos são importantes para entender como o AWS Secrets Manager funciona.

SecretNo Secrets Manager, um segredo geralmente consiste em um conjunto de credenciais, nome de usuárioe senha, e os detalhes de conexão usados para acessar um serviço protegido (p. 11). Convémarmazená-los com segurança e garantir que somente usuários autorizados possam acessá-los. O SecretsManager sempre armazena o texto do segredo de forma criptografada e sempre criptografa o segredo emtrânsito.

O Secrets Manager usa políticas de permissões do IAM para garantir que apenas usuários autorizadospossam acessar ou modificar o segredo. É possível anexar essas políticas a usuários ou funçõese especificar quais segredos os usuários podem acessar. Para obter mais detalhes sobre comocontrolar o acesso aos seus segredos, consulte Autenticação e controle de acesso para o AWS SecretsManager (p. 38).

Ao armazenar credenciais, diferentes serviços protegidos podem exigir diferentes informações. O SecretsManager oferece essa flexibilidade armazenando segredos como pares de string de texto de valor e chave.Se você escolher um banco de dados compatível com o Secrets Manager, o Secrets Manager definirá ospares de chave/valor de acordo com os requisitos da função de rotação do banco de dados escolhido. OSecrets Manager formatará os pares como texto JSON. Se você escolher outro serviço ou banco de dadospara o qual o Secrets Manager não fornece a função do Lambda, poderá especificar o segredo comopares de chave/valor JSON definidos pelo usuário.

O resultado do texto de segredo criptografado e armazenado pode ter aparência semelhante à desteexemplo:

{ "host" : "ProdServer-01.databases.example.com", "port" : "8888", "username" : "administrator", "password" : "My-P@ssw0rd!F0r+Th3_Acc0unt", "dbname" : "MyDatabase", "engine" : "mysql"}

Se você usar as ferramentas de linha de comando ou a API, também poderá armazenar dados binários nosegredo. O console do Secrets Manager não é compatível com dados binários.

9

Page 16: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSecret

O Secrets Manager pode rotacionar automaticamente o segredo para você com uma programaçãoespecificada. Você poderá alternar credenciais sem interromper o serviço se armazenar um conjuntocompleto de credenciais de um usuário ou conta em vez de apenas a senha. Se você alterar ou alternarapenas a senha, a antiga ficará imediatamente obsoleta, e os clientes deverão começar a usar a novasenha de imediato; caso contrário, ocorrerá uma falha. Se você puder criar um novo usuário com umanova senha ou pelo menos alternar entre dois usuários, o usuário e a senha antigos continuarão operandolado a lado com o novo até que você opte por deixar de usar o antigo. Isso proporciona uma janela detempo quando todos os clientes podem continuar funcionando enquanto você testa e valida as novascredenciais. Depois que as novas credenciais forem aprovadas nos testes, você confirma para todos osclientes o uso das novas credenciais e remove as credenciais antigas.

Bancos de dados compatíveis do

Se você usar o console do Secrets Manager e especificar que o segredo é para um dos bancos de dadoscompatíveis com o Secrets Manager (p. 4), o Secrets Manager gerenciará toda a estrutura e a análise.O console solicita os detalhes do tipo específico de banco de dados. Depois, o Secrets Manager cria aestrutura necessária, armazena as informações e analisa-as novamente em informações de texto fáceis deentender quando você as recupera.

Outros bancos de dados ou serviços

Se, em vez disso, você especificar o segredo para um banco de dados ou serviço "personalizado", vocêcontrolará o que faz com o texto do segredo depois de recuperá-lo e como você o interpretará. O consoledo Secrets Manager aceita seu segredo como strings de chave/valor e os converte automaticamente emuma estrutura JSON para armazenamento. Se você recuperar o segredo no console, o Secrets Managerconverterá automaticamente esse segredo em strings de texto de chave/valor para visualização. Se vocêrecuperar o segredo de forma programática, poderá usar uma biblioteca de análise JSON apropriada,disponível para quase todas as linguagens de programação, para analisar o segredo da maneira comopreferir. Se um segredo exigir mais do que um limite por segredo de 65.536 bytes, você poderá dividir ospares de chave/valor entre dois segredos e concatená-los novamente ao recuperá-los.

Estrutura básica de um segredo do Secrets ManagerNo Secrets Manager, um segredo contém não apenas o texto do segredo criptografado, mas tambémvários elementos de metadados que o descrevem e definem a forma como o Secrets Manager deverá lidarcom ele:

• Metadados – Pormenores sobre o segredo

10

Page 17: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioServiço protegido

• As informações básicas incluem o nome do segredo, uma descrição e o nome de recurso da Amazon(ARN), que serve como um identificador exclusivo.

• O ARN da chave do AWS Key Management Service (AWS KMS) que o Secrets Manager utiliza paracriptografar e descriptografar o texto protegido no segredo. Se você não fornecer essas informações, oSecrets Manager usará a chave padrão do AWS KMS da conta.

• Informações sobre a frequência de rotação (p. 11) da chave e qual função do Lambda usar paraexecutar a rotação.

• Um conjunto de tags fornecido pelo usuário. É possível anexar tags como pares de chave/valor aosrecursos da AWS para a organização, o agrupamento lógico e a alocação de custos.

• Versões – Uma coleção de um ou mais versões (p. 12) do texto secreto encriptado• Embora normalmente você tenha apenas uma versão do segredo ativo por vez, pode haver várias

versões enquanto você executa a rotação de um segredo no banco de dados ou serviço. Sempre quevocê altera o segredo, o Secrets Manager cria uma nova versão.

• Cada versão contém uma cópia do valor do segredo criptografado.• Cada versão pode ter um ou mais rótulos de preparação (p. 12) anexados que identificam o estágio

do ciclo de rotação do segredo.

Serviço protegidoO Secrets Manager define um serviço protegido como um banco de dados ou outro serviço em execuçãoem um servidor de rede, com acesso controlado pelas credenciais armazenadas no segredo. O serviçoprotegido pode ser um único servidor ou um grande grupo de servidores que compartilham o mesmométodo de acesso. Você precisa do segredo para acessar o serviço protegido com sucesso. O segredocontém todas as informações que um cliente precisa para acessar o serviço protegido. Este guia usa otermo "serviço protegido" como um termo genérico para representar todos os diferentes tipos de bancos dedados ou serviços com segredos que podem ser protegidos pelo AWS Secrets Manager.

RotationO Secrets Manager define a rotação como o processo em que você altera periodicamente o segredo paradificultar ainda mais o acesso de um invasor ao serviço protegido. Com o Secrets Manager, você nãoprecisa alterar manualmente o segredo nem atualizá-lo em todos os seus clientes. Em vez disso, o SecretsManager usa uma função do AWS Lambda para executar todas as etapas de rotação para você em umaprogramação regular.

Suponha que você tenha um grande conjunto de clientes que executam um aplicativo que acessaum banco de dados, o serviço protegido (p. 11). Em vez de embutir as credenciais em código noaplicativo, o aplicativo envia uma solicitação ao Secrets Manager e recebe os detalhes do segredosempre que necessário. Quando você rotacionar o segredo, a função de rotação do Lambda executaráautomaticamente as seguintes etapas:

1. A função de rotação entra em contato com o sistema de autenticação do serviço protegido e cria umnovo conjunto de credenciais para acessar o banco de dados. As credenciais normalmente consistemem um nome de usuário, uma senha e detalhes da conexão, mas podem variar de sistema parasistema. O Secrets Manager armazena essas novas credenciais como o texto do segredo em uma novaversão (p. 12) do segredo com o rótulo de preparação AWSPENDING anexado.

2. A função de rotação testa a versão AWSPENDING do segredo para verificar se as credenciais funcioname concede o nível necessário de acesso ao serviço protegido.

3. Se os testes forem bem-sucedidos, a função de rotação moverá o rótulo AWSCURRENT para a novaversão para marcá-la como a versão padrão. Todos os clientes começam a usar essa versão dosegredo em vez da versão antiga. A função também atribui o rótulo AWSPREVIOUS à versão antiga,marcando-a como a "última em boas condições". A versão com o rótulo de preparação AWSPREVIOUSagora não tem nenhum rótulo e, portanto, está defasada.

11

Page 18: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEtiquetas de preparação

Você pode acionar a função de rotação Lambda manualmente ao escolher Rotate secret no console ou,se preferir, acioná-la automaticamente a cada n dias, especificando uma programação de rotação. Sevocê usar um dos bancos de dados da AWS compatíveis nativamente com o Secrets Manager (p. 4), oSecrets Manager fornecerá uma função do Lambda para rotacionar as credenciais do banco de dados.Essa função executa a rotação básica automaticamente para você ou, se preferir, personalize a funçãopara oferecer suporte a uma estratégia avançada de rotação personalizada.

Se você optar por criar um segredo para um serviço personalizado, deverá criar uma função do Lambda.No código da função, você determina como compor a estrutura JSON e analisá-la na sua função.

Para qualquer serviço ou banco de dados para o qual o segredo for usado, a função de rotação doLambda do segredo deve poder acessar o banco de dados ou o serviço e um endpoint de serviço doSecrets Manager. Se a função de rotação do Lambda e o banco de dados ou o serviço residirem em umaVPC fornecida pela Amazon VPC, você deverá configurar a VPC com um endpoint de serviço da VPC doSecrets Manager (p. 88) ou com conectividade direta com a Internet usando um gateway NAT parapermitir acesso ao endpoint de serviço público do Secrets Manager.

Para mais informações sobre rotação, consulte Rotação dos segredos do AWS SecretsManager (p. 85).

Etiquetas de preparaçãoO Secrets Manager usa rótulos de preparação, uma string de texto simples, para permitir que vocêidentifique as diferentes versões (p. 12) de um segredo durante a rotação (p. 11). Sempre queconsultar um valor de segredo criptografado, especifique a versão do segredo a ser recuperada. Sevocê não especificar uma versão pelo ID de versão ou rótulo de preparação, o Secrets Manager usarácomo padrão a versão com o rótulo de preparação AWSCURRENT anexado. O Secrets Manager sempreanexa o rótulo de preparação AWSCURRENT a uma versão do segredo. Consulte a breve introdução àrotação (p. 11) para obter um exemplo de como isso funciona.

A versão de um segredo pode ter de 0 a 20 rótulos de preparação anexados. Por exemplo, seSecretAVersion1 tem 20 etiquetas de preparação e pretende adicionar uma etiqueta de preparaçãoa SecretBVersion1, tem de remover uma etiqueta de preparação de SecretAVersion1 e depoisadicione uma etiqueta de preparação a SecretBVersion1.

Um rótulo de preparação pode ser anexado a apenas uma versão por vez. Duas versões do segredo nãopodem ter o mesmo rótulo de preparação. Quando anexar um rótulo de preparação a uma versão e existeuma versão diferente com o mesmo rótulo, você deverá especificar também a versão da qual remover orótulo, caso contrário, o Secrets Manager retornará um erro.

Uma versão do segredo sempre deve ter o rótulo de preparação AWSCURRENT, e a operação da APIimpõe esse comportamento. As funções de rotação do Lambda fornecidas pelo Secrets Manager mantêmautomaticamente os rótulos AWSPENDING, AWSCURRENT e AWSPREVIOUS nas versões apropriadas.

VersioningExistem várias versões de um segredo para oferecer suporte à rotação de um segredo (p. 11). OSecrets Manager distingue as diferentes versões por meio dos rótulos de preparação (p. 12). Namaioria dos cenários, você não precisa se preocupar com as versões do segredo. O Secrets Manager ea função de rotação do Lambda fornecida gerenciam esses detalhes para você. No entanto, se você criaruma função de rotação do Lambda, seu código deverá gerenciar várias versões de um segredo e moveros rótulos de preparação entre as versões de forma apropriada. As versões também têm identificadoresexclusivos (normalmente um valor de UUID) que sempre permanecem com a mesma versão, ao contráriodos rótulos de preparação que podem ser movidos entre as versões. lá estão UUID corresponde aoClientRequestToken passou na PutSecretValue, CreateSecrete UpdateSecret APIs.

Configure os clientes para sempre solicitarem a versão padrão do segredo com o rótulo AWSCURRENTanexado. Podem existir outras versões, mas você só acessa outra versão solicitando um ID de versão

12

Page 19: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioVersioning

específico ou um rótulo de preparação. Se você solicitar o valor do segredo e não especificar um IDde versão ou um rótulo de preparação, por padrão, você obterá a versão com o rótulo de preparaçãoAWSCURRENT.

Durante a rotação, o Secrets Manager cria uma nova versão do segredo e anexa o rótulo de preparaçãoAWSPENDING. A função de rotação usa a versão AWSPENDING para identificar a versão até que aversão seja aprovada nos testes. Depois que a função de rotação verifica que as novas credenciaisestão funcionando, o Secrets Manager move o rótulo AWSPREVIOUS para a versão mais antiga comAWSCURRENT, move o rótulo AWSCURRENT para a versão mais nova AWSPENDING e, finalmente, removeAWSPENDING.

Para obter mais informações sobre como os rótulos de preparação oferecem suporte à rotação, consulteRotação dos segredos do AWS Secrets Manager (p. 85).

Cada versão mantida para um segredo contém os seguintes elementos:

• Um ID exclusivo para a versão.• Uma coleção de rótulos de preparação usados para identificar a versão, exclusivos dentro do segredo. O

Secrets Manager defasa as versões sem rótulos de preparação, e essas versões podem estar sujeitas aexclusão.

• O texto do segredo é criptografado e armazenado.

Sempre que consultar o valor do segredo criptografado, você pode especificar a versão do segredo. Sevocê não especificar uma versão, seja pelo ID da versão ou pelo rótulo de preparação, o Secrets Managerpadronizará para a versão com o rótulo de preparação AWSCURRENT anexado. O Secrets Manager sempreanexa o rótulo de preparação AWSCURRENT a uma versão do segredo.

13

Page 20: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioTutorial: Criar e recuperar um segredo

Tutoriais do AWS Secrets ManagerUse os tutoriais nesta seção para saber como executar tarefas usando o AWS Secrets Manager.

Tutorial: Criar e recuperar um segredo (p. 14)

Comece a executar com instruções passo a passo para criar um segredo e recuperá-lo. Este tutorialnão requer um banco de dados da AWS pré-configurado.

Tutorial: Rodar um Segredo para um AWS Base de dados (p. 17)

Crie um segredo para um banco de dados da Amazon RDS MySQL. Rotacione o segredo usado paraacessar o banco de dados e configure-o para rotacionar em uma programação.

Tutorial: Rodar um segredo de utilizador com um segredo principal (p. 23)

Use o segredo do tutorial anterior como um segredo mestre que pode alternar um segredo de usuárioseparado para um banco de dados do Amazon RDS MySQL. Em seguida, alterne o segredo dousuário fazendo login como segredo master e alternando usuários.

Tutorial: Criar e recuperar um segredoNeste tutorial, você criará um segredo e o armazenará no AWS Secrets Manager. Depois disso, recupere osegredo usando o Console de gerenciamento da AWS ou a AWS CLI.

Utilizadores novos em Secrets Manager podem beneficiar da inscrição no período experimental gratuito de30 dias e não receberem faturação pela atividade realizada neste tutorial.

Passo 1: Crie e guarde o seu segredo em AWS Secrets Manager (p. 14)

Nesta etapa, você criará um segredo e fornecerá as informações básicas exigidas pelo AWS SecretsManager.

Passo 2: Recuperar o seu segredo de AWS Secrets Manager (p. 16)

Em seguida, você usa o Secrets Manager e o AWS CLI para recuperar o segredo.

PrerequisitesEste tutorial pressupõe que seja possível acessar uma conta da AWS e fazer login na AWS como umusuário do IAM com permissões para criar e recuperar segredos no console do AWS Secrets Managerou usar comandos equivalentes na AWS CLI. Para obter mais informações sobre a configuração deutilizadores IAM, consulte o Documentação IAM.

Passo 1: Crie e guarde o seu segredo em AWSSecrets ManagerSecrets Manager Console

Criar e armazenar seu segredo no console

1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

14

Page 21: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 1: Crie e guarde o seu

segredo em AWS Secrets Manager

2. Na página de introdução do serviço ou na página da lista de Secrets (Segredos), escolha Store anew secret (Armazenar um novo segredo).

3. Na página Store a new secret (Armazenar um novo segredo), selecione Other type of secret(Outro tipo de segredo). Você escolhe este tipo de segredo porque o seu segredo não se aplica auma base de dados.

4. Em Especifique os pares de chaves/valores a serem armazenados no segredo, no primeirocampo, digite MyFirstSecret. Para configurar uma palavra-passe, adicione um valor no camposeguinte.

Fornece as suas informações secretas, tais como credenciais e detalhes de ligação, como nomechave e pares de cadeias de valor. Por exemplo, pode especificar “UserName” como nome chavee o nome de início de sessão do utilizador como o valor.

5. para Selecione a chave de encriptação, escolher DefaultEncryptionKey. Secrets Manager encriptasempre o segredo quando seleciona esta opção e fornece-a sem custos para si. Se optar porutilizar uma chave KMS personalizada, então AWS cobram-lhe na taxa AWS KMS taxa.

Secrets Manager utiliza uma chave de encriptação única que reside na conta e só pode serutilizada com Secrets Manager na mesma região.

6. Selecione Next (Próximo).7. Em Secret name (Nome do segredo), digite um nome para o segredo no campo de texto. Use

somente caracteres alfanuméricos e os caracteres /_+=.@-.

Por exemplo, pode utilizar um nome secreto, como tutorials/MyFirstSecret. Isto guarda oseu segredo na pasta virtual tutoriais com o valor MyFirstSecret. Recomendamos que designe ossegredos de forma hierárquica, o que facilita a gestão dos seus segredos.

8. No campo Description (Descrição) digite uma descrição para o segredo.

Em Description (Descrição), digite, por exemplo, Create Secret9. Na seção Tags adicione as tags desejadas nos campos de texto Key (Chave) e Value - optional

(Valor – opcionais).

Para este tutorial, deixe as tags em branco. No entanto, recomendamos a utilização de tags comomelhor prática para ajudar a identificar segredos.

10. Selecione Next (Próximo).11. Neste tutorial, escolha Desativar rotação automática e Próximo.

Note

O próximo tutorial descreve a rotação de um segredo.12. Na página Revisar, é possível verificar todas as configurações de segredos. Além disso,

certifique-se de que revê o Código de amostra secção com cortar e colar–ativado pode adicionaràs suas próprias aplicações e utilizar este segredo para recuperar as credenciais. Cada guiaexibe o código em diferentes linguagens de programação.

13. Escolha Store (Armazenar) para salvar as alterações.

O console do Secrets Manager retorna para a lista de segredos de sua conta com o novo segredoagora incluído na lista.

Secrets Manager CLI

1. Abra um prompt de comando para executar a AWS CLI. Se você ainda não tiver instalado a AWSCLI, consulte Instalação da AWS Command Line Interface.

2. Criar seu segredo

Digite o seguinte comando e parâmetros:

15

Page 22: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 1: Crie e guarde o seu

segredo em AWS Secrets Manager

$ aws secretsmanager create-secret --name tutorials/MyFirstSecret --description "Basic Create Secret" --secret-string S3@tt13R0cks

A saída do comando exibe as seguintes informações:

{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:tutorials/MyFirstSecret-rzM8Ja", "Name": "MyFirstSecret", "VersionId": "35e07aa2-684d-42fd-b076-3b3f6a19c6dc"}

Passo 2: Recuperar o seu segredo de AWS Secrets ManagerNesta etapa, você recupera o segredo usando o console do Secrets Manager e a AWS CLI.

Recuperar o segredo no console do AWS Secrets Manager

1. Se ainda não estiver conectado ao console, acesse o console em https://console.aws.amazon.com/secretsmanager/ e faça login no serviço Secrets Manager.

2. Na página de listagem Secrets (Segredos), escolha o nome do novo segredo que você criou.

O Secrets Manager exibe a página Secrets details (Detalhes dos segredos) do seu segredo.3. Na seção Secret value (Valor de segredo), selecione Retrieve secret value (Recuperar o valor de

segredo).4. Você pode visualizar o segredo como pares de chave/valor ou como uma estrutura de texto JSON.

Para recuperar o segredo usando a CLI do AWS Secrets Manager

1. Abra um prompt de comando para executar a AWS CLI. Se você ainda não tiver instalado a AWS CLI,consulte Instalação da AWS Command Line Interface.

2. Usando credenciais com permissões para acessar o segredo, digite cada um dos seguintes comandose parâmetros

Para visualizar todos os detalhes do segredo, exceto o texto criptografado:

$ aws secretsmanager describe-secret --secret-id tutorials/MyFirstSecret{ "ARN": "arn:aws:secretsmanager:region:123456789012:secret:tutorials/MyFirstSecret-jiObOV", "Name": "tutorials/MyFirstSecret", "Description": "Basic Create Secret", "LastChangedDate": 1522680794.8, "LastAccessedDate": 1522627200.0, "VersionIdsToStages": { "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE": [ "AWSCURRENT" ] }}

Reveja a VersionIdsToStages valor de resposta. Essa saída contém uma lista de todas as versõesativas do segredo e os rótulos de preparação anexados a cada versão. Neste tutorial, você deve

16

Page 23: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioTutorial: Rodar um Segredo para um AWS Base de dados

ver um único ID de versão (um valor do tipo UUID) que mapeia para um único rótulo de preparaçãoAWSCURRENT.

Para visualizar o texto criptografado do segredo:

$ aws secretsmanager get-secret-value --secret-id tutorials/MyFirstSecret --version-stage AWSCURRENT{ "ARN": "arn;secretsmanager:region:123456789012:secret:tutorials/MyFirstSecret-jiObOV", "Name": "tutorials/MyFirstSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "SecretString": "S3@ttl3R0cks", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1522680764.668}

Se desejar os detalhes de uma versão com um rótulo de preparação diferente de AWSCURRENT, énecessário incluir o parâmetro --version-stage no comando anterior. O Secrets Manager usaAWSCURRENT como valor padrão.

O resultado da saída inclui a versão JSON do valor do segredo no campo de respostaSecretString.

Summary

Este tutorial demonstrou como é fácil criar um segredo simples e recuperar o valor secreto quandonecessário. Para ver outro tutorial sobre como criar um segredo e configurar a rotação automática,consulte Tutorial: Rodar um Segredo para um AWS Base de dados (p. 17).

Tutorial: Rodar um Segredo para um AWS Base dedados

Neste tutorial, você criará um segredo para um banco de dados da AWS e configurará o banco de dadospara rotacionar em um cronograma. Você acionará uma rotação manualmente e confirmará se a novaversão do segredo continua fornecendo acesso.

Configurar um teste MySQL base de dados (p. 18)

Nesta etapa, você criará um banco de dados de teste no Amazon Relational Database Service(Amazon RDS). Para este tutorial, a base de dados de testes é executada MySQL.

Passo 2: Crie o seu segredo (p. 19)

Em seguida, use o Secrets Manager para criar o seu segredo e preencher o segredo com o nomede utilizador e palavra-passe iniciais para o seu MySQL base de dados. Teste o segredo usando ascredenciais retornadas para fazer login no banco de dados.

Passo 3: Valide o seu segredo inicial (p. 20)

Na etapa 3, use o novo segredo para testar as credenciais e garantir que possa usá-las para seconectar ao banco de dados.

Passo 4: Configure a rotação para o seu segredo (p. 22)

Na etapa 4, habilite a rotação do segredo e execute a rotação inicial.

17

Page 24: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPrerequisites

Passo 5: Verificar rotação bem-sucedida (p. 22)

Nessa etapa, após a conclusão da rotação inicial, você repetirá as etapas de validação para mostrarque as novas credenciais geradas durante a rotação continuam permitindo que você acesse o bancode dados.

Passo 6: Limpeza (p. 22)

Na etapa final, remova a instância de banco de dados do Amazon RDS e o segredo para evitar custosdesnecessários.

PrerequisitesO tutorial pressupõe que é possível acessar uma conta da AWS e fazer login na AWS como um usuáriocom permissões completas para configurar o AWS Secrets Manager e o Amazon RDS, usando o consoleou os comandos equivalentes na AWS CLI.

O tutorial usa um MySQL de clientes, MySQLWorkbenchpara interagir com a base de dados, configurar osutilizadores e verificar o estado. O tutorial inclui as instruções de instalação no momento apropriado nasetapas a seguir.

O banco de dados configurado neste tutorial permite acesso à Internet pública na porta 3306, novamentepara simplificar a configuração do tutorial. Para concluir este tutorial, você deve ser capaz de acessar oMySQL a partir do seu computador ligado à Internet utilizando o MySQL de clientes, MySQLWorkbench.Recomendamos que siga as orientações na Lambda e Amazon EC2 Documentação VPC para configurarservidores de produção de forma segura.

Important

Para que a rotação funcione, o ambiente de rede deve permitir que a função de rotação doLambda se comunique com o banco de dados e com o serviço Secrets Manager. Como estetutorial configura seu banco de dados com acesso à Internet pública, o Lambda configuraautomaticamente sua função de rotação para acessar o banco de dados por meio do endereçoIP público. Se você bloquear o acesso à Internet pública em sua instância de banco de dados,será necessário configurar a função do Lambda para ser executada na mesma VPC da instânciado banco de dados. Em seguida, você deverá configurar a VPC com um endpoint do SecretsManager privado (p. 88) ou configurar a VPC com acesso à Internet pública por meio de umgateway NAT para que a função de rotação do Lambda consiga acessar o endpoint do SecretsManager público.

Permissões obrigatóriasPara executar este tutorial com sucesso, você deve ter todas as permissões associadas aoSecretsManagerReadWrite AWS política gerida. Você também deve ter permissão para criar uma funçãodo IAM e anexar uma política de permissões à função. Você pode conceder a opção IAMFullAccess AWSpolítica geridaou atribuir explicitamente iam:CreateRole e iam:AttachRolePolicy.

Warning

O iam:CreateRole e o iam:AttachRolePolicy permitem que um usuário conceda a simesmo qualquer permissão; portanto, conceda essas políticas somente aos usuários confiáveisem uma conta.

Configurar um teste MySQL base de dados1. Para esta parte do tutorial, inicie sessão na sua conta e configure um MySQL base de dados em

Amazon RDS.

18

Page 25: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 2: Crie o seu segredo

2. Siga estas etapas:

a. Faça login no Console de Gerenciamento da AWS e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

b. No Painel, role para baixo até a seção Criar banco de dados e escolha Criar banco de dados.c. Consulte o Amazon RDS tutorial, Criar um MySQL Instância DB, para obter as informações mais

recentes sobre como configurar uma base de dados RDS.

Use as seguintes informações ao criar seu banco de dados:

• Identificador de instância da BD: MyTestDatabaseInstance.• Nome de utilizador principal: adminuser.• Palavra-passe principal: Escreva uma palavra-passe inicial segura e volte a introduzir a palavra-

passe na caixa Confirmar palavra-passe. Lembre-se dessa senha. Você precisará dela ao criaro segredo na Etapa 2.

Note

A criação do banco de dados pode levar até 20 minutos antes que a instância de bancode dados fique disponível.

d. Na lista de bancos de dados disponíveis, em RDS > Bancos de dados, selecione seu banco dedados e escolha Modificar.

e. Na janela Rede e segurança , defina o Acessibilidade pública para Yes.f. Na seção Backup, defina o Período de retenção de backup como 0 dia para desabilitar os

backups.g. Deixe as demais configurações com os valores padrão.h. Escolha Continue (Continuar).i. Na janela Agendamento de modificações , escolha Apply immediately e depois Modificar instância

da BD.j. Quando a seção Resumo exibir Disponível em Informações, atualize a página e role para baixo

até a seção Conectividade e segurança .k. Na seção Segurança escolha o padrão em Grupos de segurança da VPC. O console do Amazon

EC2 abre e exibe os Grupos de segurança configurados.l. Escolha Regras de entrada e Editar regras de entrada.m. Em Tipo de origem, escolha Qualquer lugar e Salvar regras.

Note

Para configurar o tutorial corretamente, use, no mínimo, essas configurações. Se for necessáriauma VPC privada, a função do Lambda deverá ser configurada para ser executada nessaVPC. Em seguida, você deverá configurar sua VPC com um endpoint do Secrets Managerprivado (p. 88) ou configurar a VPC com acesso público à Internet usando um gateway NAT.Essas configurações permitem que a função de rotação do Lambda acesse o endpoint do SecretsManager público.

Passo 2: Crie o seu segredoNesta etapa, crie um segredo no Secrets Manager e preencha o segredo com os detalhes do banco dedados de teste e as credenciais de seu usuário mestre.

Para criar seu segredo

a. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

19

Page 26: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 3: Valide o seu segredo inicial

b. Assegure-se de que define a sua consola para a mesma região em que criou o Amazon RDS MySQLbase de dados no passo anterior.

c. Selecione Store a new secret (Armazenar um novo segredo).d. Na página Armazenar um novo segredo, na seção Selecionar o tipo de segredo, escolha Credenciais

para banco de dados RDS.e. Em User name (Nome de usuário), digite adminuser para corresponder ao nome do usuário mestre

que você forneceu anteriormente na Etapa 1.3.f. Em Senha, digite a mesma senha que você forneceu para adminuser quando criou seu banco de dados.g. para Selecione a chave de encriptação, deixe-o definido para DefaultEncryptionKey. AWS debita a sua

conta se utilizar uma chave-mestra personalizada (CMK) em vez da CMK predefinida.h. para Selecione a base de dados RDS a que este segredo irá acedere escolha a instância

MyTestDatabaseInstance que criou no Passo 1. Selecione Next (Próximo).i. Na janela Nome e descrição secretos secção, para Nome secreto, tipo

MyTestDatabaseMasterSecret. Escolher Próximo.j. Na seção Configure automatic rotation (Configurar rotação automática), desative a rotação por

enquanto. Selecione Next (Próximo).k. Na seção Review (Revisar), verifique os detalhes e selecione Store (Armazenar).

O Secrets Manager retorna à lista de segredos, que agora inclui seu novo segredo.

Passo 3: Valide o seu segredo inicialAntes de configurar o segredo para rotacionar automaticamente, verifique se as informações no segredoestão corretas e se podem conectar ao banco de dados. Este tutorial descreve como instalar umaaplicação baseada em GUI, MySQL Área de trabalho para testar a ligação. Faça download do clienteapropriado para o seu sistema operacional.

No mínimo, você pode recuperar o segredo usando a AWS CLI ou o console do Secrets Manager. Depois,corte e cole o nome de utilizador e a palavra-passe no MySQL cliente de base de dados.

Como testar a conexão com seu banco de dados

a. Após a instalação do MySQLWorkBench software cliente, abra a MySQLWorkbench cliente paraapresentar o Bem-vindo a MySQLWorkbench interface.

b. Na janela MySQL Ligações, escolha o + ícone a exibir Configurar nova ligação.

20

Page 27: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 3: Valide o seu segredo inicial

c. Em Nome da conexão, insira MyTestDatabaseInstance.d. No Nome do host, insira o endpoint do banco de dados, como

MyTestDatabase.hostname.region.rds.amazonaws.com.

Você pode encontrar o endpoint na página de detalhes do seu banco de dados. Na janela Amazon RDSpara consola, escolher Bases de dados da secção RDS > Bases de dados > MyTestDatabaseInstance.

e. Em Porta, deixe o valor padrão, 3306.f. No campo Nome de usuário digite o nome de usuário criado para o banco de dados, adminuser.g. Escolher Test Connection e introduza a palavra-passe da base de dados na caixa Palavra-passe

campo.

h. Se configurado corretamente, MySQLWorkbench exibe uma mensagem de ligação bem-sucedida.

i. Escolher OK.

Dica de solução de problemas

Em caso de MySQLWorkbench cliente falha ao ligar à base de dados, deve verificar o grupode segurança anexado ao VPC com a base de dados. As regras padrão em um grupo desegurança habilitam todo o tráfego de saída, mas bloqueiam todo o tráfego de entrada, excetoo tráfego que você permite explicitamente definindo uma regra. Se o seu computador estiverem execução na Internet pública, o grupo de segurança deverá habilitar o tráfego de entradada Internet para a porta TCP na qual você configurou a comunicação do banco de dados,normalmente a porta 3306. Se configurar MySQL para usar uma porta TCP diferente, certifique-se de que atualiza a regra de segurança para corresponder.

21

Page 28: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 4: Configure a rotação para o seu segredo

Passo 4: Configure a rotação para o seu segredoDepois de validar as credenciais iniciais do segredo, configure e inicie a primeira rotação.

Como configurar a rotação secreta

a. Na janela Secrets Manager a sua consola, escolha o segredo MyTestDatabaseMasterSecret.b. Na página Secret details (Detalhes do segredo), na seção Rotation configuration (Configuração da

rotação), escolha Edit rotation (Editar rotação).c. Na página Edit rotation configuration (Editar configuração da rotação), selecione Enable automatic

rotation (Habilitar rotação automática).d. Para Select rotation interval (Selecionar intervalo de rotação), escolha 30 days (30 dias).e. Em Selecione qual segredo será usado para executar a rotação, escolha Usar esse segredo.f. Selecione Salvar. O Secrets Manager começa a configurar a rotação do seu segredo, incluindo a

criação da função de rotação do Lambda e a anexação de uma função que permite que o SecretsManager invoque a função.

g. Mantenha-se na página da consola com o A rotação está a ser configurada até a mensagem mudarpara O seu segredo MyTestDatabaseMasterSecret foi guardado com sucesso e a rotação secreta estáactivada.

Passo 5: Verificar rotação bem-sucedidaAgora que fez a rotação do segredo, você poderá confirmar que as novas credenciais no segredofuncionam para a conexão com o banco de dados.

a. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Escolha o seu segredo MyTestDatabaseMasterSecret.c. Escolha Recuperar valor do segredo.d. Localize o campo Senha.

Se você executou a rotação do segredo com êxito, a senha deve mudar para algo semelhante aE4%I)rj)vmpRg)U}++=}GHAnNDD1v0cJ, em vez do segredo original.

e. Para aceder à sua base de dados, abra MySQLWorkbench e escolha a ligação MyTestDatabase.f. Quando a senha for solicitada, copie a senha do Secrets Manager e cole-a no campo Senha . Escolha

OK.

É possível acessar com êxito o banco de dados com a nova senha e verificar se a rotação dos segredosfunciona.

Passo 6: LimpezaImportant

Se você pretende executar também o tutorial Tutorial: Rodar um segredo de utilizador com umsegredo principal (p. 23), não execute essas etapas até concluir o tutorial.

Como os bancos de dados e os segredos podem causar cobranças em sua conta da AWS, remova ainstância de banco de dados e o segredo criados neste tutorial depois que conclui-lo.

Excluir o segredo

a. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

22

Page 29: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioTutorial: Rodar um segredo de

utilizador com um segredo principal

b. Na lista de segredos, escolha o MyTestDatabaseSecret segredo que criou para este tutorial.c. Escolha Actions (Ações) e, em seguida, escolha Delete secret (Excluir segredo).d. Na caixa de diálogo Schedule secret deletion (Programar exclusão do segredo), em Enter a waiting

period (Digite um período de espera), digite 7, o valor mínimo permitido.e. Escolha Schedule deletion.

Após o número de dias na janela de recuperação expirar, o Secrets Manager removerá o segredopermanentemente.

Para excluir a instância do banco de dados

a. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.b. No painel de navegação, escolha Instances (Instâncias).c. Na lista de instâncias disponíveis, escolha o MyTestDatabaseInstance instância que criou para este

tutorial.d. Escolha Instance actions e, em seguida, escolha Delete.e. Na página Delete DB Instance (Excluir instância de banco de dados), na seção Options (Opções), em

Create final snapshot (Criar snapshot final), escolha No (Não).f. Selecione a confirmação da perda de todos os dados e escolha Excluir.

Tutorial: Rodar um segredo de utilizador com umsegredo principal

Este tutorial baseia-se nas tarefas que concluiu no primeiro tutorial: Tutorial: Rodar um Segredo para umAWS Base de dados (p. 17). Complete os tutoriais anteriores antes de iniciar este.

Neste tutorial, você usa o segredo que já criou como usuário mestre do banco de dados. Você cria umnovo usuário limitado e um segredo para o usuário. E configura a rotação do segredo do usuário usandoas credenciais no segredo mestre. A função de rotação do Lambda para um segredo mestre clona oprimeiro usuário e, em seguida, alterna entre os usuários, mudando a senha a cada vez.

Passo 1: Criar um novo utilizador para a sua base de dados e um segredo de utilizador (p. 24)

Em primeiro lugar, crie um novo utilizador com permissões limitadas no seu Amazon RDS MySQLbase de dados e guarde essas credenciais num novo segredo.

Passo 2: Valide o seu segredo inicial (p. 25)

Na etapa 2, confirme que você possa acessar o banco de dados como o novo usuário usando ascredenciais armazenadas no segredo.

Passo 3: Configure a rotação para o seu segredo (p. 25)

Na etapa 3, configure a rotação do seu segredo de usuário. Você especifica o segredo mestre a serusado para conceder acesso à função de rotação.

Passo 4: Verificar a rotação bem-sucedida (p. 25)

Nesta etapa, faça a rotação do segredo duas vezes para mostrar que o segredo recupera ascredenciais de trabalho de dois usuários alternados com acesso ao banco de dados.

Passo 5: Limpar (p. 26)

Na etapa final, remova a instância de banco de dados do Amazon RDS e os segredos que você crioupara evitar custos desnecessários.

23

Page 30: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPrerequisites

Prerequisites• Este tutorial pressupõe que você tenha acesso a uma conta da AWS e também que seja possível fazer

login na AWS como um usuário com permissões completas para configurar o AWS Secrets Manager e oAmazon RDS usando o console ou os comandos equivalentes na AWS CLI.

• É necessário concluir as etapas no tutorial Tutorial: Rodar um Segredo para um AWS Base dedados (p. 17), sem excluir o banco de dados e o usuário conforme descrito na seção final, e issofornece os seguintes itens:• máquinas Amazon RDS MySQL chamada de base de dados MyTestDatabase numa instância

chamada MyTestDatabaseInstance.• Um usuário mestre chamado adminuser que tem permissões administrativas.• Um segredo chamado adminuser com as credenciais armazenadas no Secrets Manager.

Passo 1: Criar um novo utilizador para a sua base dedados e um segredo de utilizadorNo tutorial original, tem um Amazon RDS MySQL com um único administrador mestre utilizador. Vocêtambém tem um segredo que pode ser usado para recuperar as credenciais mais recentes do usuáriomestre. Nesta etapa, você cria um usuário mais limitado e armazena as credenciais em um segredo. Essesegredo poderia ser usado, por exemplo, por um aplicativo móvel que consulta informações do banco dedados. O usuário não exige outras permissões.

a. Abra o seu MySQLWorkbench e escolha o seu MyTestDatabaseInstance ligação e iniciar sessão nabase de dados.

b. Na interface da Consulta 1 insira CREATE USER mytestuser IDENTIFIED BY 'userpassword';.c.

Execute a consulta utilizando o Ícone .

Examine a Saída de ação para ver uma conclusão bem-sucedida da consulta.d. Exclua a consulta anterior da Consulta 1.e. Insira o seguinte texto em Questão 1: GRANT SELECT on *.* TO mytestusere execute a consulta.f. Examine a Saída de ação para ver uma conclusão bem-sucedida da consulta.

Criar um novo segredo Utilizando a consolaa. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Na página com a lista de segredos em sua conta, escolha Store a new secret (Armazenar novo

segredo).c. Na página Create Secret (Criar segredo), na seção Select secret type (Selecionar o tipo de segredo),

escolha Credentials for RDS database (Credenciais para o banco de dados RDS).d. Em User name (Nome do usuário), digite mytestuser, para corresponder ao nome do usuário que

você criou na Etapa 1b.e. Em Password (Senha), digite a mesma senha fornecida para mytestuser na Etapa 1b.f. para Selecione a chave de encriptação, deixe-o definido para DefaultEncryptionKey.g. para Selecione a base de dados RDS a que este segredo irá aceder, escolha a instância

MyTestDatabaseInstance criou no tutorial anterior.h. Selecione Next (Próximo).

24

Page 31: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 2: Valide o seu segredo inicial

i. Na seção Secret name and description (Nome e descrição do segredo), em Secret name (Nome dosegredo), digite MyTestDatabaseUserSecret.

j. Na seção Configure automatic rotation (Configurar rotação automática), deixe a rotação desabilitada porenquanto. Selecione Next (Próximo).

k. Na seção Review (Revisar), verifique seus detalhes e selecione Store (Armazenar).

Você retorna à lista de segredos, que agora inclui seu novo segredo.

Passo 2: Valide o seu segredo inicialAntes de configurar o segredo para rotacionar automaticamente, verifique se as informações nosegredo estão corretas e se podem conectar ao banco de dados. No tutorial anterior, você instalou aMySQLWorkbench componente cliente. Continue a usar o MySQLWorkbench neste tutorial.

É possível recuperar o segredo usando a AWS CLI ou o console do Secrets Manager. Corte e cole o nomede utilizador e a palavra-passe no seu MySQL cliente de base de dados.

a. Abra o seu MySQLWorkbench e escolha o + para criar uma nova ligação.b. No Nome da conexão, insira MyTestUser.c. Copie e cole o seu MySQL nome do anfitrião em Nome do anfitrião. Deixe a porta como 3306d. Em Nome de usuário, insira mytestuser e escolha Testar conexão.e. MySQLWorkbench O devolve uma mensagem a indicar que se ligou com sucesso à base de dados.

Passo 3: Configure a rotação para o seu segredoDepois de validar as credenciais iniciais do segredo, configure e inicie a primeira rotação.

a. Na janela Secrets Manager a sua consola, escolha o segredo MyTestDatabaseUserSecret.b. Na página de detalhes do segredo, na seção Rotation configuration (Configuração da rotação), escolha

Edit rotation (Editar rotação).c. Na página Edit rotation configuration (Editar configuração da rotação), selecione Enable automatic

rotation (Habilitar rotação automática).d. Para Select rotation interval (Selecionar intervalo de rotação), escolha 30 days (30 dias).e. Escolha uma função do Lambda na lista.f. Em Select which secret will be used to perform the rotation (Selecionar segredo que será usado para

executar a rotação), escolha Use a secret that I have previously stored in AWS Secrets Manager (Usarum segredo que eu já armazenei no AWS Secrets Manager).

g. Na lista de segredos que aparece, escolha MyTestDatabaseMasterSecret.h. Selecione Save (Salvar).

Passo 4: Verificar a rotação bem-sucedidaAgora que você rotacionou o segredo, pode confirmar que as novas credenciais no segredo funcionampara a conexão com o banco de dados.

a. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Na página da lista Secrets (Segredos), escolha o nome do segredo do seu usuário.c. Escolha Retrieve secret value (Recuperar valor secreto) e visualize a senha atual. O valor do segredo

deve ser a senha original ou uma nova criada por uma rotação bem-sucedida. Se você ainda vir a senha

25

Page 32: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPasso 5: Limpar

original, feche a seção Valor do segredo e reabra-a até que o valor do segredo seja alterado com êxito.Esta etapa pode levar alguns minutos.

d. Quando o novo segredo aparecer, copie e cole-o no MySQLWorkbench MyTestUserligação.e. MySQL A bancada de trabalho apresenta uma mensagem a indicar que iniciou sessão com sucesso na

base de dados com o novo segredo.

Passo 5: LimparComo os bancos de dados e os segredos podem causar cobranças em sua conta da AWS, remova ainstância de banco de dados e o segredo criado neste tutorial.

Excluir o segredo

a. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Na lista de segredos, escolha o MyTestDatabaseSecret segredo que criou para este tutorial.c. Escolha Actions (Ações) e selecione Delete secret (Excluir segredo).d. Na caixa de diálogo Schedule secret deletion (Programar exclusão do segredo), em Enter a waiting

period (Digite um período de espera), digite 7, o valor mínimo permitido.e. Escolha Schedule deletion.

Após o número de dias na janela de recuperação expirar, o Secrets Manager removerá o segredopermanentemente.

Para excluir a instância do banco de dados

a. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.b. No painel de navegação, escolha Instances (Instâncias).c. Na lista de instâncias disponíveis, escolha o MyTestDatabaseInstance instância que criou para este

tutorial.d. Escolha Instance actions e, em seguida, escolha Delete.e. Na página Delete DB Instance (Excluir instância de banco de dados), na seção Options (Opções), em

Create final snapshot (Criar snapshot final), escolha No (Não).f. Selecione a confirmação de que você perde todos os dados e escolha Delete (Excluir).

Tutorial: Acessar segredos entre contas do AWSSecrets Manager

É possível usar o AWS Secrets Manager para alternar, gerenciar e recuperar segredos, como credenciaisde banco de dados e chaves de API, durante seu ciclo de vida. E você pode usar esses segredos emcontas da AWS anexando políticas baseadas em recursos aos segredos. Por exemplo, você podegerenciar segredos em uma conta da AWS e conceder a funcionários ou aplicativos em outras contas daAWS permissões para usar esses segredos. Da mesma forma, é possível compartilhar um segredo comum parceiro de negócios, como um provedor de serviços gerenciado (MSP), sem transmitir o segredo pormeio de canais como e-mail e notas manuscritas. As políticas baseadas em recursos também permitemcontrolar quem pode gerenciar permissões em um segredo. Por exemplo, você pode conceder a umfuncionário permissão para administrar um segredo específico.

As entidades principais do IAM (usuários e funções) não têm permissão para acessar segredos, porpadrão. Além das políticas anexadas aos principais do IAM na sua conta, você pode usar políticas

26

Page 33: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEtapa 1: Criar e anexar uma política de

recursos para a conta doCENTRAL_SECURITY

baseadas em recursos para controlar o acesso dentro da sua conta da AWS ou entre contas. Quando vocêconcede acesso a um segredo, os principais do IAM também exigem acesso às chaves de criptografiausadas para criptografar segredos. Portanto, para habilitar o acesso entre contas, você deve concederpermissões para acessar o segredo e a chave de criptografia usada para criptografar o segredo.

Este tutorial demonstra a concessão de permissão para que funcionários em uma conta da AWS usemsegredos em outra conta. Usando o console do AWS Secrets Manager, você pode conceder permissãopara uma função do IAM em sua conta da PRODUCTION, a conta com os aplicativos e recuperar segredosda sua conta da CENTRAL_SECURITY, a conta gerenciando os segredos. Usando o espaço reservado,MY_TEST_SECRET para indicar um segredo existente, o espaço reservado MY_CMK para indicar achave mestra personalizada (CMK) usada para criptografar o MY_TEST_SECRET e o espaço reservadoPRODUCTION_SECRET_ROLE para indicar a função do IAM para conceder acesso. Esse processo requerquatro etapas:

1. Crie uma política baseada em recursos e adicione-a ao segredo na conta da CENTRAL_SECURITY.2. Atualizar a política de chaves da CMK noCENTRAL_SECURITY3. Conceda à função do IAM permissões para recuperar esse segredo na conta da PRODUCTION.4. Verifique o acesso recuperando o segredo na conta da PRODUCTION.

Etapa 1: Criar e anexar uma política de recursos paraa conta doCENTRAL_SECURITY1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/

secretsmanager/.2. Selecione MY_TEST_SECRET.3. Selecione Edit Permissions (Editar permissões) na seção Resource Permissions(optional)

(Permissões de recursos (opcional)).4. Corte e cole a seguinte política no campo JSON:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::PRODUCTION:role/PRODUCTION_SECRET_ROLE"}, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": {"ForAnyValue:StringEquals": {"secretsmanager:VersionStage": "AWSCURRENT"}} } ]}

5. Selecione Save (Salvar).

Você atualizou com êxito as permissões desse segredo.

Etapa 2: Atualizar a política de chaves em sua contadaCENTRAL_SECURITYSecrets ManagerO criptografa segredos por padrão e permite que você recupere os segredos quandoquiser descriptografá-los usando oMY_CMK

27

Page 34: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEtapa 3: Conceder à função do IAM Production

permissão para recuperar o segredo

1. https://console.aws.amazon.com/kms usando a conta CENTRAL_SECURITY.2. Escolha MY_CMK.3. Ao lado de Key policy (Política de chaves), escolha Edit (Editar).4. Corte e cole o seguinte código na política existente:

"Sid": "AllowUseOfTheKey", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::PRODUCTION:role/PRODUCTION_SECRET_ROLE"}, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-2:CENTRAL_SECURITY:key/MY_CMK"}

Isso adiciona a capacidade de usar os comandos Decrypt e DescribeKey com MY_CMK.

Etapa 3: Conceder à função do IAM Productionpermissão para recuperar o segredoExecute as próximas etapas nas contas da PRODUCTION como administrador do IAM. Para recuperar osegredo da conta da CENTRAL_SECURITY, a função entre contas também precisa de permissões do IAMpara recuperar o segredo e descriptografá-lo usando a CMK de segurança central.

1. Faça login no console do IAM, https://console.aws.amazon.com/iam/ usando a conta Production.2. No painel de navegação à esquerda, escolha Roles (Funções).3. Escolha a função Produção.4. Na guia Permissions (Permissões), escolha Add inline policy (Adicionar política em linha).5. Selecione a guia JSON e cole a política a seguir:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": " arn:aws:secretsmanager:us-east-1:CENTRAL_SECURITY:secret:SECURITY_SECRET" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:CENTRAL_SECURITY:key/SECURITY_CMK" } ]}

28

Page 35: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEtapa 4: Testar o acesso ao

SECURITY_SECRET pela conta daPRODUCTION

É necessário substituir o CENTRAL_SECURITY pelo ID da conta de segurança, SECURITY_SECRETpelo ID do segredo e SECURITY_CMKpelo ID da CMK de segurança.

6. Selecione Review policy (Revisar política).7. Nomeie a política como Central_Security_Security-Secret-Access e escolha Create Policy

(Criar política).

Etapa 4: Testar o acesso ao SECURITY_SECRET pelaconta daPRODUCTION1. Usando as credenciais da PRODUCTION_ROLE, execute o comando get-secret-value.2. A saída retornada deve se parecer com o exemplo a seguir:

$aws secretsmanager get-secret-value --secret-id SECURITY_SECRET --version-stage AWSCURRENT

{ “ARN”: “arn:aws:secretsmanager:us-east-1:CENTRAL_SECURITY:secret:SECURITY_SECRET”, “Name”: “SECURITY_SECRET”, “SecretString”: “TheSecretString”, “CreatedDate”: 123456789, “VersionId”: “64c4250d-0b81-42e0-9a0c-e189d3c9aea8”, “VersionsStages”: [ “AWSCURRENT” ]}

Você também pode verificar a política de recursos no console selecionando o segredo e, em seguida,Permissões de recursos (opcional).

29

Page 36: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioProteger informações confidenciais adicionais

Melhores práticas do AWS SecretsManager

As recomendações a seguir ajudam você a usar o AWS Secrets Manager com mais segurança:

Tópicos• Proteger informações confidenciais adicionais (p. 30)• Melhorar o desempenho usando os componentes de armazenamento em cache no lado do cliente

fornecidos pelaAWS (p. 31)• Adicionar novas tentativas ao aplicativo (p. 31)• Mitigar os riscos de registrar em log e de depuração da sua função do Lambda (p. 32)• Mitigar os riscos de usar a CLI da AWS para armazenar seus segredos (p. 32)• Acesso entre contas – Devo especificar usuário/função ou a conta? (p. 34)• Executar tudo em uma VPC (p. 35)• Marcar seus segredos (p. 35)• Como mudar segredos em uma programação (p. 36)• Como auditar o acesso a segredos (p. 37)• Monitorar segredos com oAWS Config (p. 37)

Proteger informações confidenciais adicionaisUm segredo geralmente inclui várias informações, além do nome de usuário e a senha. Dependendo dobanco de dados, serviço ou site, você pode optar por incluir outros dados confidenciais. Esses dadospodem incluir dicas de senha ou pares de pergunta e resposta que você pode usar para recuperar suasenha.

Verifique se as informações que podem ser usadas para obter acesso às credenciais do segredo estãoprotegidas com a mesma segurança que as próprias credenciais. Não armazene esse tipo de informaçõesna Description ou em qualquer outra parte não criptografada do segredo.

Em vez disso, armazene todas essas informações confidenciais como parte do valor do segredocriptografado, no campo SecretString ou SecretBinary. É possível armazenar até 65536 bytes nosegredo. No campo SecretString, o texto geralmente utiliza a forma de pares de sequências chave-valor do JSON, conforme mostrado no exemplo a seguir:

{ "engine": "mysql", "username": "user1", "password": "i29wwX!%9wFV", "host": "my-database-endpoint.us-east-1.rds.amazonaws.com", "dbname": "myDatabase", "port": "3306"}

30

Page 37: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioMelhorar o desempenho usando os

componentes de armazenamento em cacheno lado do cliente fornecidos pelaAWS

Melhorar o desempenho usando os componentesde armazenamento em cache no lado do clientefornecidos pelaAWS

Para usar seus segredos de maneira mais eficiente, você não deve simplesmente recuperar o valordo segredo do Secrets Manager toda vez que precisar usar as credenciais. Em vez disso, use umcomponente de cliente compatível do Secrets Manager para armazenar os segredos em cache e atualizá-los apenas quando necessário devido à rotação. A AWS criou esses componentes de cliente para vocêe os disponibilizou como código aberto. Para obter mais informações, consulte Usar os componentes emcache de código aberto no lado do cliente desenvolvidos pela AWS (p. 70)

Adicionar novas tentativas ao aplicativoSeu cliente da AWS pode ver falhas nas chamadas para Secrets Manager devido a problemasinesperados no lado do cliente. Ou as chamadas podem falhar devido à limitação de taxas do recursoda Secrets Manager que você tentar invocar. Quando você excede uma cota de solicitação de API,o Secrets Manager limita a solicitação, ou seja, ele rejeita uma solicitação válida e retorna um erroThrottlingException. Para responder, use uma estratégia de recuo e repetição. Em ambos oscasos, esses tipos de falhas muitas vezes não exigem tratamento especial e a chamada deve ser feitanovamente, muitas vezes após um breve período de espera. A AWS fornece muitos recursos para ajudar arepetir chamadas de clientes a serviços da AWS ao experimentar esses tipos de erros ou exceções.

Caso ocorram erros como os seguintes, é recomendável adicionar retries ao código do aplicativo:

Erros e exceções transitórios

• RequestTimeout

• RequestTimeoutException

• PriorRequestNotComplete

• ConnectionError

• HTTPClientError

Erros e exceções de limitação e limitação do lado do serviço

• Throttling

• ThrottlingException

• ThrottledException

• RequestThrottledException

• TooManyRequestsException

• ProvisionedThroughputExceededException

• TransactionInProgressException

• RequestLimitExceeded

• BandwidthLimitExceeded

• LimitExceededException

• RequestThrottled

31

Page 38: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioMitigar os riscos de registrar em log e

de depuração da sua função do Lambda

• SlowDown

Para obter mais informações, bem como o código de exemplo, em novas tentativas, recuo exponencial etremulação, consulte os seguintes recursos:

• Recuo exponencial e variação• Tempos limite, tentativas e recuo com tremulação• tentar novamente e recuo exponencial na AWS.• KMS do : Cotas de solicitação• AWS SDK para Python• Guia de referência de ferramentas e credenciais compartilhadas da AWS e doSDKs• AWS SDK para Java• SDK da AWS para Ruby• Referência de API do AWS SDK para Go

Mitigar os riscos de registrar em log e de depuraçãoda sua função do Lambda

Quando você cria uma função de rotação personalizada do Lambda para oferecer suporte ao seu segredodo Secrets Manager, tenha cuidado ao incluir instruções de depuração ou registro na sua função. Essasinstruções podem fazer com que as informações na sua função sejam gravadas em CloudWatch. Verifiquese o registro de informações no CloudWatch não inclui nenhum dos dados confidenciais armazenadosno valor de segredo criptografado. Além disso, se você decidir incluir essas instruções em seu códigodurante o desenvolvimento para fins de teste e depuração, remova essas linhas do código antes do usona produção. Além disso, lembre-se de remover todos os logs que incluem informações confidenciaiscoletadas durante o desenvolvimento, depois que você não precisar mais deles.

As funções do Lambda fornecidas pela AWS e os bancos de dados compatíveis (p. 4) não inclueminstruções de registro em log e depuração.

Mitigar os riscos de usar a CLI da AWS paraarmazenar seus segredos

Quando você usa a AWS Command Line Interface (AWS CLI) para chamar operações da AWS, vocêinsere esses comandos em um shell de comandos. Por exemplo, você pode usar o prompt de comando doWindows ou PowerShell do Windows, ou o shell Bash ou Z, entre outros. Muitos desses shells de comandoincluem funcionalidade desenvolvida para aumentar a produtividade. Mas essa funcionalidade pode serusada para comprometer seus segredos. Por exemplo, na maioria dos shells, você pode usar a tecla deseta para cima para ver o último comando inserido. O recurso histórico de comandos pode ser exploradopor qualquer pessoa que acesse sua sessão não segura. Além disso, outros utilitários que funcionam emsegundo plano podem ter acesso aos parâmetros de seus comandos, com o objetivo de ajudar você arealizar as tarefas com mais eficiência. Para mitigar esses riscos, siga as seguintes etapas:

• Sempre bloqueie seu computador ao sair do console.• Desinstale ou desabilite os utilitários do console que você não precisa ou não usa mais.• Verifique se o shell ou o programa de acesso remoto, caso esteja usando um, não registra em log os

comandos digitados.

32

Page 39: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioMitigar os riscos de usar a CLI da

AWS para armazenar seus segredos

• Use técnicas para passar parâmetros não capturados pelo histórico de comandos do shell. O exemplo aseguir mostra como você pode digitar o texto do segredo em um arquivo de texto, passar o arquivo parao comando do AWS Secrets Manager e destruir o arquivo imediatamente. Isso significa que o históricotípico do shell não captura o texto do segredo.

O exemplo a seguir mostra os comandos típicos do Linux, mas seu shell pode exigir comandos umpouco diferentes:

$ touch secret.txt # Creates an empty text file$ chmod go-rx secret.txt # Restricts access to the file to only the user$ cat > secret.txt # Redirects standard input (STDIN) to the text fileThisIsMyTopSecretPassword^Z # Everything the user types from this point up to the CTRL-D (^D) is saved in the file$ aws secretsmanager create-secret --name TestSecret --secret-string file://secret.txt # The Secrets Manager command takes the --secret-string parameter from the contents of the file$ shred -u secret.txt # The file is destroyed so it can no longer be accessed.

Depois de executar esses comandos, você poderá usar as setas para cima e para baixo para percorrer ohistórico de comandos e ver se o texto do segredo está sendo exibido em alguma linha.

Important

Por padrão, não é possível executar uma técnica equivalente no Windows, a menos que vocêreduza primeiro o tamanho do buffer do histórico de comandos para 1.

Para configurar o prompt de comando do Windows para ter apenas 1 buffer de histórico decomando de 1 comando

1. Abra um prompt de comando como administrador (Executar como administrador).2. Escolha o ícone no canto superior esquerdo e escolha Properties (Propriedades).3. Na guia Options, defina Buffer Size e Number of Buffers como 1, e escolha OK.4. Sempre que precisar digitar um comando que você não deseja armazenar no histórico, insira outro

comando imediatamente depois dele, como:

echo.

Isso garante que você descarrega o comando sensível.

Para o shell do Prompt de comando do Windows, você pode fazer download da ferramenta SysInternalsSDelete e usar comandos semelhantes aos seguintes:

C:\> echo. 2> secret.txt # Creates an empty fileC:\> icacls secret.txt /remove "BUILTIN\Administrators" "NT AUTHORITY/SYSTEM" /inheritance:r # Restricts access to the file to only the ownerC:\> copy con secret.txt /y # Redirects the keyboard to text file, suppressing prompt to overwriteTHIS IS MY TOP SECRET PASSWORD^Z # Everything the user types from this point up to the CTRL-Z (^Z) is saved in the fileC:\> aws secretsmanager create-secret --name TestSecret --secret-string file://secret.txt # The Secrets Manager command takes the --secret-string parameter from the contents of the file

33

Page 40: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAcesso entre contas – Devo

especificar usuário/função ou a conta?

C:\> sdelete secret.txt # The file is destroyed so it can no longer be accessed.

Acesso entre contas – Devo especificar usuário/função ou a conta?

Quando deseja usar uma política baseada em recursos anexada a um segredo para conceder acesso aum principal do IAM em outra conta da AWS, você tem duas opções:

• Especificar apenas o ID da outra conta – no elemento Principal da instrução, você especifica o nomede recurso da Amazon (ARN) da raiz da conta "externa". Isso permite que o administrador da contaexterna conceda acesso às funções na conta estrangeira. O administrador deve atribuir políticas depermissões do IAM às funções que precisam acessar o segredo.

"Principal": {"AWS": arn:aws:iam::AccountId:root}

• Especificar usuário ou função exatos na outra conta – Você especifica um ARN exato para um usuárioou uma função como Principal de uma política baseada em segredo. Você obtém o ARN doadministrador da outra conta. Somente o usuário único específico ou a função na conta podem acessaro recurso.

"Principal": [ {"AWS": "arn:aws:iam::AccountId:role/MyCrossAccountRole"}, {"AWS": "arn:aws:iam::AccountId:user/MyUserName"}]

Como uma prática recomendada, especifique somente a conta na política baseada em segredos, pelosseguintes motivos:

• Nos dois casos, você confia no administrador da outra conta. No primeiro caso, você confia noadministrador para garantir que apenas pessoas autorizadas tenham acesso ao usuário do IAM oupossam assumir a função especificada. Basicamente, isso cria o mesmo nível de confiança queespecificar somente o ID da conta. Você confia na conta e no administrador. Ao especificar apenas o IDda conta, você dá ao administrador a flexibilidade para gerenciar os usuários.

• Quando você especifica uma função exata, o IAM converte internamente a função em um “ID principal”exclusivo para a função. Se você excluir a função e recriá-la com o mesmo nome, ela receberá um novoID principal. Isso significa que a nova função não obtém acesso ao recurso automaticamente. O IAMfornece essa funcionalidade por motivos de segurança e isso significa que uma exclusão acidental erestauração podem resultar em acesso "quebrado".

Quando você concede permissões apenas à raiz da conta, esse conjunto de permissões se torna o limitedas opções que o administrador da conta pode delegar a usuários e funções. O administrador não podeconceder permissão ao recurso se a conta não tiver recebido a permissão primeiro.

Important

Se você optar por conceder acesso entre contas diretamente ao segredo sem usar uma função,o segredo deverá ser criptografado usando uma chave mestra do cliente (CMK) do AWS KMSpersonalizada. Uma entidade principal de uma conta diferente deve receber permissão para osegredo e a para a CMK do AWS KMS personalizada.

34

Page 41: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExecutar tudo em uma VPC

Executar tudo em uma VPCSempre que possível, execute o máximo da infraestrutura em redes privadas não acessíveis pela Internetpública. Para fazer isso, hospede seus servidores e serviços em uma virtual private cloud (VPC) fornecidapela Amazon VPC. A AWS fornece uma rede privada virtualizada acessível apenas aos recursos de suaconta. A Internet pública não pode visualizar nem acessar, a menos que você a configure explicitamentecom acesso. Por exemplo, você pode adicionar um gateway NAT. Para obter informações completas sobrea Amazon VPC, consulte o Guia do usuário da Amazon VPC.

Para habilitar a rotação do segredo em um ambiente de VPC, siga estas etapas:

1. Configure a função de rotação do Lambda para executar na mesma VPC do servidor de banco de dadosou serviço com um segredo rotacionado. Para obter mais informações, consulte Configurar uma funçãoLambda para acessar recursos em uma Amazon VPC no AWS Lambda Developer Guide.

2. A função de rotação do Lambda, que agora é executada em sua VPC, deve poder acessar um endpointde serviço do Secrets Manager. Se a VPC não tiver conectividade direta com a Internet, você poderáconfigurar a VPC com um endpoint privado do Secrets Manager que pode ser acessado por todos osrecursos em sua VPC. Para obter mais detalhes, consulte Configuração da rede para ser compatívelcom rotação de segredos (p. 88).

Marcar seus segredosVários serviços da AWS permitem que você adicione tags a seus recursos, e o Secrets Managerpermite que você marque os segredos. O Secrets Manager define uma tag como um rótulo simples queconsiste em uma chave definida pelo cliente e um valor opcional. É possível usar as tags para facilitar ogerenciamento, a pesquisa e a filtragem dos recursos em sua conta da AWS. Ao marcar suas segredos,siga estas diretrizes:

• Use um esquema de nomenclatura padronizado em todos os seus recursos. Lembre-se de que as tagsdiferenciam letras maiúsculas de minúsculas.

• Crie conjuntos de tags que permitam que você execute o seguinte:• Segurança/controle de acesso – é possível conceder ou negar acesso a um segredo marcando as

tags anexadas ao segredo.• Rastreamento e alocação de custos – É possível agrupar e classificar suas faturas da AWS por tags.

Para obter mais informações, consulte Uso de tags de alocação de custos no Guia do usuário do AWSBilling and Cost Management.

• Automação – É possível usar tags de para filtrar recursos para atividades de automação. Por exemplo,alguns clientes executam scripts automatizados de iniciação/interrupção que desativam os ambientesde desenvolvimento fora do horário comercial para reduzir custos. É possível criar e verificar se háuma tag indicando que uma instância específica do Amazon EC2 deve ser incluída no desligamento.

• Console de Gerenciamento da AWS – alguns consoles de serviço da AWS permitem organizar osrecursos exibidos de acordo com as tags, além de classificar e filtrar por tags. A AWS também fornecea ferramenta Resource Groups para criar um console personalizado que organiza e consolida osrecursos de acordo com as tags. Para obter mais informações, consulte Trabalhar com Grupos derecursos no Guia de conceitos básicos do Console de gerenciamento da AWS.

Use tags criativamente para gerenciar seus segredos. Lembre-se de que você nunca deve armazenarinformações confidenciais de um segredo em uma tag.

É possível marcar seus segredos ao criá-los (p. 59) ou ao editá-los (p. 63).

Para obter mais informações, consulte Estratégias de marcação da AWS no site de Respostas da AWS.

35

Page 42: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioImplementar o controle de acesso baseado

em atributo (ABAC) para segredos

Implementar o controle de acesso baseado ematributo (ABAC) para segredosO controle de acesso baseado em atributo (ABAC) é uma estratégia de autorização que define permissõescom base em atributos. Na AWS, esses atributos são chamados de tags. As tags podem ser anexadasa principais do IAM (usuários ou funções) e a recursos da AWS. É possível criar uma única política deABAC ou um pequeno conjunto de políticas para os principais do IAM. Essas políticas de ABAC podem sercriadas para permitir operações quando a tag do principal corresponder à tag de recurso. O ABAC é útil emambientes que estão crescendo rapidamente e ajuda em situações em que o gerenciamento de políticasse torna um problema.

Por exemplo, você deseja permitir acesso a outra conta da , mas apenas para principais com uma tagespecífica. Quando você cria as funções na outra conta, você adiciona tags às funções para permitir oacesso aos segredos necessários para as funções.

A política de recursos a seguir concederá GetSecretValue à conta 123456789012 somente se a tagaccess-project tiver o mesmo valor para o segredo e a função de acesso:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS": "123456789012"}, "Condition" : { "StringEquals" : { "aws:ResourceTab/access-project": "${aws:PrincipalTag/access-project}" } }, "Action" : "secretsmanager:GetSecretValue", "Resource" : "*" } ] }

É possível aplicar essa estratégia para simplificar o gerenciamento dos controles de acesso. Para obtermais informações, consulte O que é ABAC para a AWS?

Para obter um tutorial sobre como adicionar esse recurso aos seus segredos, consulte Tutorial do IAM:.Definir permissões para acessar recursos da AWS com base em tags.

Como mudar segredos em uma programaçãoSe você não alterar o segredos por um longo período, eles se tornam mais propensos a sercomprometidos. À medida que mais usuários obtêm acesso a um segredo, pode ser possível que alguém otenha manipulado incorretamente e que ele tenha vazado para uma entidade não autorizada. Os segredospodem ser vazados por logs e dados de cache. Eles podem ser compartilhados para fins de depuração enão alterados nem revogados quando a depuração for concluída. Por todos esses motivos, os segredosdevem ser mudados com frequência.

Configure o Secrets Manager para mudar os segredos com frequência a fim de evitar usar os mesmossegredos para seus aplicativos. É recomendável executar a rotação dos segredos a cada 30 dias.

Consulte Rotação dos segredos do AWS Secrets Manager (p. 85)

36

Page 43: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioComo auditar o acesso a segredos

Como auditar o acesso a segredosComo uma melhor prática, você deve monitorar os segredos para uso e registrar em log qualquer alteraçãofeita neles. Isso ajuda a garantir que você possa investigar qualquer uso ou alteração inesperados, e queas alterações indesejadas podem ser revertidas.

É possível monitorar o acesso aos segredos usando o AWS CloudTrail para registrar em log todas asatividades para o Secrets Manager. Além disso, você deve definir verificações automatizadas para o usoinadequado de segredos.

Consulte Monitorização da utilização do seu AWS Secrets Manager segredos (p. 144)

Você também pode configurar o CloudWatch para notificá-lo de qualquer tentativa de excluir segredos.

Monitorar segredos com oAWS ConfigO AWS Secrets Manager integra-se ao AWS Config e fornece rastreamento mais fácil de alteraçõesde segredos no Secrets Manager. O AWS Config pode ajudá-lo a definir suas diretrizes internasorganizacionais sobre melhores práticas de gerenciamento de segredos. Além disso, é possível identificarrapidamente segredos que não estão em conformidade com as regras de segurança, bem como recebernotificações do Amazon SNS sobre as alterações na configuração de segredos.

Consulte Monitorar segredos do Secrets Manager usando oAWS Config (p. 162)

37

Page 44: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioVisão geral

Autenticação e controle de acessopara o AWS Secrets Manager

O acesso ao AWS Secrets Manager requer credenciais AWS. Essas credenciais devem conter permissãopara acessar os recursos da AWS desejados, como seus segredos do Secrets Manager. As seções aseguir fornecem detalhes sobre como você pode usar políticas do AWS Identity and Access Management(IAM) para ajudar a proteger o acesso aos seus segredos e controlar quem pode acessá-los e administrá-los.

O acesso aos segredos deve ser rigorosamente controlado porque os segredos contêm informaçõesextremamente sensíveis. Usando os recursos de permissão da AWS e as políticas de permissões do IAM,você pode controlar quais usuários ou serviços têm acesso a seus segredos. Você pode especificar quaisAPIs, CLI e operações de console o usuário pode executar nos segredos autorizados. Aproveitando osrecursos de acesso granulares na linguagem de política do IAM, você pode optar por limitar o usuário aapenas um subconjunto dos seus segredos — ou até mesmo a um segredo individual — usando tagscomo filtros. Você também pode restringir um usuário a versões específicas de um segredo usando rótulosde preparação como filtros.

Você também pode determinar quem pode gerenciar quais segredos. Você especifica quem atualizaou modifica os segredos e os metadados associados. Se você tiver permissões de administrador parao serviço AWS Secrets Manager, poderá delegar acesso a tarefas do Secrets Manager concedendopermissões a outras pessoas.

É possível anexar políticas de permissões aos usuários, grupos e funções e especificar os segredos queas identidades anexadas podem acessar. O Secrets Manager chama esse processo de políticas baseadasem identidade. Como alternativa, é possível anexar uma política de permissões diretamente ao segredo eespecificar o acesso a ele. O Secrets Manager chama esse processo de política baseada em recursos. Dequalquer maneira, essas políticas especificam as ações que cada principal poderá executar em segredos.

Para obter informações gerais sobre as políticas de permissões do IAM, consulte Visão geral de políticasdo IAM no Guia do usuário do IAM.

No caso de permissões disponíveis especificamente para uso com o AWS Secrets Manager, consulteAções, recursos e chaves de contexto que podem ser utilizadas em uma política de segredos ou política doIAM para AWS Secrets Manager (p. 179).

As seções a seguir descrevem como gerenciar as permissões do AWS Secrets Manager. É recomendáveller a visão geral primeiro.

• Visão geral do gerenciamento de permissões de acesso aos segredos doSecrets Manager (p. 38)• Usar políticas baseadas em identidade (políticas do IAM) e ABAC para Secrets Manager (p. 50)• Uso de políticas baseadas em recursos para o Secrets Manager (p. 57)

Visão geral do gerenciamento de permissões deacesso aos segredos doSecrets Manager

Uma conta da AWS possui todos os recursos da AWS, incluindo os segredos que você armazena noAWS Secrets Manager. A AWS contém políticas de permissões para criar ou acessar os recursos. Um

38

Page 45: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAuthentication

administrador de conta pode controlar o acesso aos recursos da AWS anexando políticas de permissõesdiretamente aos recursos, os segredos, ou às identidades do IAM, usuários, grupos e funções, queprecisam acessar os recursos.

Note

Um administrador, ou um usuário administrador, tem permissões de administrador. Issonormalmente significa que eles têm permissões para executar todas as operações em todos osrecursos de um serviço. Para obter mais informações, consulte as melhores práticas do IAM noGuia do usuário do IAM.

Um administrador de conta do Secrets Manager pode executar tarefas administrativas, incluindo delegarpermissões de administrador para outros usuários ou funções do IAM na conta. Para fazer isso, vocêanexa uma política de permissões do IAM a um usuário, grupo ou função do IAM. Por padrão, um usuárionão tem nenhuma permissão, o que significa que o usuário tem uma negação implícita. A política que vocêanexa substitui a negação implícita por uma permissão explícita que especifica as ações que o usuáriopode executar e em quais recursos as ações podem ser executadas. A política pode ser anexada ausuários, grupos e funções na conta. Se você conceder as permissões a uma função, essa função poderáser assumida por usuários em outras contas na organização.

Tópicos• Authentication (p. 39)• Controle de acesso e autorização (p. 40)

AuthenticationA AWS define a autenticação como o processo de estabelecer uma identidade que representa vocênos serviços que você acessa. Normalmente, um administrador atribui uma identidade a você, e vocêacessa a identidade fornecendo credenciais com sua solicitação, como um nome de usuário e senha — oucriptografando sua solicitação com uma chave de acesso da AWS.

A AWS oferece suporte aos seguintes tipos de identidades:

• Usuário raiz da conta da AWS – ao cadastrar-se na AWS, você fornece o endereço de e-mail e senha desua conta da AWS. A AWS usa essas informações como as credenciais do usuário raiz de sua conta efornece acesso completo a todos os seus recursos da AWS.

Important

Por motivos de segurança, é recomendável usar as credenciais de usuário raiz somente paracriar um usuário administrador, que é um usuário do IAM com permissões completas em suaconta da AWS. Em seguida, você poderá usar esse usuário administrador para criar outrosusuários e funções do IAM com permissões limitadas específicas para um trabalho ou umafunção. Para obter mais informações, consulte Criar usuários individuais do IAM (Melhorespráticas do IAM) e Criar um usuário administrador e grupo no Guia do usuário do IAM.

• Usuário do IAM – um usuário do IAM é uma identidade em sua conta da AWS com permissõesespecíficas, por exemplo, para acessar um segredo do Secrets Manager. Você pode usar um nome deusuário e senha do IAM para fazer login em páginas da web protegidas da AWS, como o Console deGerenciamento da AWS, os Fóruns de discussão da AWS ou o AWS Support Center.

Além de um nome de usuário e senha, você também pode criar chaves de acesso para cadausuário para habilitar o acesso aos serviços da AWS de forma programática, por meio de uma dasSDKsferramentas da linha de comando da AWS ou . O SDKs e as ferramentas da linha de comandousam as chaves de acesso para assinar criptograficamente solicitações de API. Se você não usar asferramentas da AWS, assine as solicitações de API por conta própria. O AWS KMS oferece suportea Signature Version 4, um protocolo da AWS para autenticação de solicitações de API. Para obter

39

Page 46: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

mais informações sobre as solicitações de API de autenticação, consulte o Processo de assinatura doSignature versão 4 na Referência geral da AWS.

• Função do IAM – é possível criar uma função do IAM em sua conta com permissões específicas.Semelhante a um usuário do IAM, a função do IAM não é associada a uma pessoa específica. Umafunção do IAM permite que você obtenha chaves de acesso temporárias para acessar os serviços e osrecursos da AWS de forma programática. As funções da AWS se tornam úteis nas seguintes situações:• Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidades

já existentes de usuário do AWS Directory Service, o diretório de usuário da sua empresa ou umprovedor de identidades da web (IdP). Eles são conhecidos como usuários federados. Os provedoresde identidade associam funções do IAM a usuários federados. Para obter mais informações sobreusuários federados, consulte Usuários federados e funções no Guia do usuário do IAM.

• Acesso entre contas – é possível usar uma função do IAM em sua conta da AWS para fornecer a outraconta da AWS permissão para acessar os recursos de sua conta. Para ver um exemplo, consulte oTutorial:. Delegar acesso entre contas da AWS usando funções do IAM no Guia do usuário do IAM.

• Acesso de serviço da AWS – é possível usar uma função do IAM em sua conta para conceder umapermissão de serviço da AWS para acessar os recursos de sua conta. Por exemplo, você pode criaruma função que permita ao Amazon Redshift acessar um bucket do S3 em seu nome e carregardados armazenados nesse bucket em um cluster do Amazon Redshift. Para obter mais informações,consulte Criar uma função para delegar permissões a um serviço da AWS no Guia do usuário do IAM.

• Aplicativos em execução em instâncias do EC2 – em vez de armazenar chaves de acesso em umainstância do EC2, para serem usadas por aplicativos que são executados na instância e fazemsolicitações à API da AWS, você pode usar uma função do IAM para fornecer chaves de acessotemporárias para esses aplicativos. Para atribuir uma função do IAM a uma instância do EC2, vocêcria um perfil de instância e anexa-o ao executar a instância. Um perfil de instância contém a funçãodo IAM e permite que os aplicativos em execução na instância do EC2 obtenham chaves de acessotemporárias. Para obter mais informações, consulte Uso de funções para aplicativos no Amazon EC2no Guia do usuário do IAM.

Depois de fazer login com uma identidade, você usa o controle e a autorização de acesso para estabeleceras tarefas que você, por meio de sua identidade, pode executar.

Controle de acesso e autorizaçãoVocê pode ter uma identidade válida com credenciais para autenticar suas solicitações, mas tambémprecisa de permissões para fazer solicitações de API do Secrets Manager para criar, gerenciar ou usarrecursos do Secrets Manager. Por exemplo, você precisa ter permissões para criar um segredo, gerenciaro segredo, recuperar o segredo e outras tarefas. As seções a seguir descrevem o gerenciamento depermissões do Secrets Manager.

Políticas do Secrets Manager: Combinação de recursos e açõesEsta seção aborda como os conceitos do Secrets Manager são mapeados para os conceitos equivalentesdo IAM.

Policies

O Secrets Manager concede permissões, como em quase todos os serviços da AWS, criando e anexandopolíticas de permissões. As políticas têm dois tipos básicos:

• Políticas baseadas em identidade – anexadas diretamente a um usuário, um grupo ou uma função.A política especifica as tarefas permitidas para a identidade anexada. O usuário anexado se tornaautomática e implicitamente o Principal da política. É possível especificar as Actions que aidentidade poderá executar e os Resources em que a identidade pode executar as ações. As políticaspermitem executar as seguintes ações:

40

Page 47: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

• Conceder acesso a vários recursos a serem compartilhados com a identidade.• Controle o acesso ao APIs de recursos inexistentes, como as várias operações Create*.• Conceda acesso para um grupo do IAM a um recurso.

• Políticas baseadas em recursos – anexadas diretamente a um recurso — neste caso, um segredo.A política especifica o acesso ao segredo e as ações que o usuário executa no segredo. O segredoanexado se torna automática e implicitamente o Resource da política. Você pode especificar osPrincipals que acessam o segredo e as Actions que os principais podem executar. As políticaspermitem executar as seguintes ações:• Conceda acesso a vários principais (usuários ou funções) a um único segredo. Observe que você não

pode especificar um grupo do IAM como principal em uma política baseada em recursos. Somenteusuários e funções podem ser principais.

• Conceda acesso a usuários ou funções em outras contas da AWS especificando a conta IDs noelemento Principal de uma declaração de política. Se você precisar de acesso a um segredo “entrecontas”, esse poderá ser um dos principais motivos para usar uma política baseada em recursos.

Qual tipo você deve usar? Embora a funcionalidade deles se sobreponha bastante, existem cenáriosem que um tem uma vantagem distinta sobre o outro e os dois devem ter um lugar em sua estratégia desegurança. Quando os dois tipos de política funcionarem, escolha o tipo que simplifica sua manutençãodas políticas, conforme as pessoas entram e saem de sua organização.

Important

Quando uma entidade principal do IAM em uma conta acessa um segredo em uma contadiferente, o segredo deve ser criptografado usando uma chave mestra de cliente (CMK)personalizada do AWS KMS. Um segredo criptografado com a CMK padrão do Secrets Managerpara a conta pode ser descriptografado somente por entidades principais dessa conta. Umaentidade principal de uma conta diferente deve receber permissão para o segredo e a para a CMKdo AWS KMS personalizada.Como alternativa, você pode conceder acesso entre contas ao usuário e assumir uma função doIAM na mesma conta do segredo. Como a função existe na mesma conta do segredo, ela podeacessar segredos criptografados com a chave padrão do AWS KMS da conta.

Resources

No Secrets Manager, você controla o acesso a seus segredos.

Cada segredo possui um nome de recurso da Amazon (ARN) exclusivo associado. Você pode controlar oacesso a um segredo especificando o ARN no elemento Resource de uma política de permissão do IAM.O ARN de um segredo tem o seguinte formato:

arn:aws:secretsmanager:<region>:<account-id>:secret:optional-path/secret-name-6-random-characters

Entender a propriedade de recursos

A conta da AWS possui os recursos criados na conta, independentemente de quem os criou.Especificamente, o proprietário do recurso é a conta da AWS do usuário raiz, do usuário do IAM ou dafunção do IAM com credenciais para autenticar a solicitação de criação de recurso. Os exemplos a seguirilustram como isso funciona:

• Se você fizer login como a conta de usuário raiz para criar um segredo, sua conta da AWS se tornará aproprietária do recurso.

• Se você criar um usuário do IAM em sua conta e conceder permissões ao usuário para criar umsegredo, o usuário poderá criar um segredo. No entanto, a conta da AWS do usuário possui o segredo.

41

Page 48: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

• Se você criar uma função do IAM na sua conta com permissões para criar um segredo, qualquer pessoaque puder assumir essa função poderá criar um segredo. A conta da AWS da função, não o usuário quea assume, é a proprietária do segredo.

Ações versus operações

O Secrets Manager fornece um conjunto de operações (chamadas de API e comandos da CLI) paratrabalhar com segredos. As operações permitem que você execute ações, como criar, listar, acessar,modificar ou excluir segredos. Essas operações correspondem à política de ações que você pode usarpara conceder ou negar acesso a essa operação. Na maioria dos casos, existe um relacionamento de umpara um entre as operações da API e as ações que você pode atribuir em uma política. Para controlar oacesso a uma operação, especifique a ação correspondente no elemento Action de uma política do IAM.Para obter uma lista de ações permitidas do Secrets Manager usadas em uma política, consulte Ações,recursos e chaves de contexto que podem ser utilizadas em uma política de segredos ou política do IAMpara AWS Secrets Manager (p. 179).

• Quando você combina um elemento Action e um elemento Resource em uma política de permissõesbaseada em identidade Statement, você controla as ações executadas e os recursos. Os limites seaplicam ao usuário, ao grupo ou à função da política anexada.

• Ao combinar um elemento Action e um elemento Principal em uma política de permissões baseadaem recursos, Statement, você controla as ações que podem ser executadas — e os usuários, gruposou funções (os principais) que executam essas ações. Os limites se aplicam ao segredo com a políticaanexada.

Para conceder permissões para criar novos segredos, use uma política baseada em identidade anexada aseus usuários, grupos ou funções. Essa técnica também pode ser útil quando você quiser gerenciar váriossegredos juntos de maneira semelhante.

Para conceder permissões para acessar segredos existentes, você pode usar uma política baseada emrecursos anexada ao segredo.

Gerenciar o acesso a recursos com políticasUma política de permissões descreve quem pode executar quais ações em quais recursos. A seção aseguir explica as opções disponíveis para criar políticas de permissões e também descreve brevementeos elementos que compõem uma política e os dois tipos de políticas que você pode criar para o SecretsManager.

Note

Esta seção discute o uso do IAM no contexto do Secrets Manager, mas não fornece informaçõesdetalhadas sobre o serviço IAM. Para obter a documentação completa do IAM, consulte o Guia dousuário do IAM. Para obter mais informações sobre a sintaxe e as descrições da política do IAM,consulte AWS IAM Referência da política no Guia do usuário do IAM.

Você deve compreender que usa políticas de permissões baseadas em segredo ou em identidades para oSecrets Manager. O Secrets Manager agrupa todas as políticas e processos aplicados como uma políticaampla. Esta estrutura de regra básica controla a interação:

Negação explícita >> Permissão explícita >> Negação implícita (padrão)

Para uma solicitação de execução de uma operação da AWS em um recurso da AWS, as seguintes regrasse aplicam:

42

Page 49: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

• Se qualquer instrução em qualquer política com uma “negação” explícita corresponder à ação e aorecurso da solicitação: A negação explícita substitui todo o resto e bloqueia as ações especificadas nosrecursos especificados.

• Se nenhuma “negação” explícita, mas uma instrução com uma “permissão” explícita, corresponderà ação e ao recurso da solicitação: A permissão explícita se aplica, o que concede às ações nessainstrução acesso aos recursos nessa instrução.

• Se nenhuma instrução com uma “negação” explícita e nenhuma instrução com uma “permissão” explícitacorresponder à ação e ao recurso da solicitação: por padrão, a AWS negará implicitamente a solicitação.

É importante entender que uma negação implícita pode ser substituída por uma permissão explícita. Umanegação explícita não pode ser substituída.

Permissões efetivas quando várias políticas se aplicam

Política A Política B Permissões efetivas

Permite Silencioso Acesso permitido

Permite Permite Acesso permitido

Permite Nega Acesso negado

Silencioso Silencioso Acesso negado

Silencioso Permite Acesso permitido

Silencioso Nega Acesso negado

Nega Silencioso Acesso negado

Nega Permite Acesso negado

Nega Nega Acesso negado

As políticas A e B podem ser de qualquer tipo: uma política baseada em identidade do IAM anexada a umusuário ou função ou uma política baseada em recurso anexada ao segredo. Você pode incluir o efeito depolíticas adicionais usando a permissão efetiva das duas primeiras políticas (os resultados) e tratando issocomo uma nova Política A. Em seguida, adicione os resultados da terceira política como Política B e repitaisso para cada política adicional aplicável.

Tópicos• políticas gerenciadas pela AWS (p. 43)• Especificar elementos da declaração de política (p. 44)• Políticas baseadas em identidade (p. 45)• Políticas baseadas em recursos (p. 46)

políticas gerenciadas pela AWS

A AWS resolve muitos casos de uso comuns, fornecendo políticas autônomas do IAM criadas eadministradas pela AWS. Essas políticas gerenciadas concedem as permissões necessárias para casosde uso comuns para que você possa evitar investigar as permissões necessárias. Para obter maisinformações, consulte Políticas gerenciadas pela AWS no Guia do usuário do IAM.

O Secrets Manager tem uma política específica gerenciada pela AWS, que você pode anexar aos usuáriosem sua conta:

43

Page 50: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

• SecretsManagerReadWrite–Esta política pode ser anexada a usuários e funções do IAM paraadministrar o Secrets Manager. Ela concede permissões completas ao serviço Secrets Manager epermissões limitadas a outros serviços, como o AWS KMS, o Amazon CloudFront, o AWS ServerlessApplication Repository e o AWS Lambda.

É possível visualizar essa política no Console de gerenciamento da AWS.

Important

Por motivos de segurança, essa política gerenciada não inclui as permissões do IAMnecessárias para configurar a rotação. Você deve conceder explicitamente essas permissõesde maneira separada. Normalmente, você anexa a política gerenciada IAMFullAccess a umadministrador do Secrets Manager para permitir que ele configure a rotação.

A equipe do Secrets Manager mantém a política gerenciada pela AWS, o que pode ser uma vantagemimportante para usar uma política gerenciada pela AWS. Se o processo de rotação nunca for expandidopara incluir novas funcionalidades que requerem permissões adicionais, o Secrets Manager adicionaráessas permissões à política gerenciada nesse momento. Suas funções de rotação receberãoautomaticamente as novas permissões para que elas continuem a funcionar como o esperado, semqualquer interrupção.

Especificar elementos da declaração de política

A seção a seguir contém uma breve visão geral das políticas de permissões do IAM da perspectiva doSecrets Manager. Para obter mais detalhes sobre a sintaxe de política da IAM, consulte a Referência dapolítica do AWS da IAM no Guia do usuário do IAM.

O Secrets Manager define um conjunto de operações de API para interagir com um segredo ou manipulá-lo de alguma forma. Para conceder permissões a essas operações, o Secrets Manager define umconjunto de ações (p. 179) correspondentes que podem ser especificadas em uma política. Porexemplo, o Secrets Manager define ações para funcionarem em um segredo, como CreateSecret,GetSecretValue, ListSecrets e RotateSecret.

Um documento de política precisa ter um elemento Version. Recomendamos que você sempre use aversão mais recente para garantir a disponibilidade de todos os recursos. No momento em que este tutorialfoi criado, a única versão disponível era 2012-10-17 (mais recente).

Além disso, um documento sobre a política de segredos deve ter um elemento Statement com uma oumais instruções em uma matriz. Cada instrução pode consistir em até seis elementos:

• Sid – (opcional) você pode usar o Sid como um identificador de instrução, uma string arbitrária queidentifica a instrução. A string não pode conter espaços.

• Efeito – (obrigatório) use esta palavra-chave para especificar se a declaração de política permite ounega a ação no recurso. Se você não permitir explicitamente o acesso a um recurso, o acesso seráimplicitamente negado. Você também pode negar acesso explicitamente a um recurso. Isso pode serfeito para garantir que um usuário não possa realizar a ação especificada no recurso especificado,mesmo se uma política diferente conceder acesso. Você deve entender que várias instruções sesobrepõem, a negação explícita em uma instrução substitui todas as outras instruções de permissãoexplícita. As instruções de permissão explícita substituem a negação implícita presente por padrão.

• Ação – (obrigatória) use essa palavra-chave para identificar as ações que deseja permitirou negar. Essas ações geralmente, mas nem sempre, correspondem a um a um (1:1)com as operações disponíveis. Por exemplo, dependendo do Effect especificado, osecretsmanager:PutSecretValue permite ou nega as permissões de usuário para executar aoperação Secrets Manager do PutSecretValue.

• Recurso – (obrigatório) em uma política baseada em identidade anexada a um usuário, a um grupo oua uma função, você usa essa palavra-chave para especificar o nome de recurso da Amazon (ARN) dorecurso para a declaração de política aplicável. Se não quiser que a instrução restrinja o acesso a um

44

Page 51: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

recurso específico, você poderá usar "*" para que a instrução resultante restrinja somente as ações. Emuma política baseada em recursos anexada a um segredo, o recurso deve ser sempre "*".

• Principal – (obrigatório somente em uma política baseada em recursos) para políticas baseadas emrecursos anexadas diretamente a um segredo, você especifica o usuário, a função, a conta, o serviçoou outra entidade que você deseja que receba permissões. Esse elemento não é válido em uma políticabaseada em identidade. Em políticas baseadas em identidade, o usuário ou a função com a políticaanexada se torna automática e implicitamente o principal.

• Condição – (Opcional) Use essa palavra-chave para especificar condições adicionais que devem serverdadeiras para que a instrução "corresponda" e Effect se aplique. Para obter mais informações,consulte Elementos da política JSON do IAM:. Condição .

Políticas baseadas em identidadeVocê pode anexar políticas a identidades do IAM. Por exemplo, você pode fazer o seguinte:

• Anexar uma política de permissões a um usuário ou grupo em sua conta – para conceder permissões aum usuário para criar um segredo, você pode anexar uma política de permissões diretamente ao usuárioou a um grupo ao qual o usuário pertence (recomendado).

• Anexar uma política de permissões a uma função – você pode anexar uma política de permissões a umafunção do IAM para conceder acesso a um segredo para qualquer pessoa que assuma a função. Issoinclui os usuários nos seguintes cenários:• Usuários federados – você pode conceder permissões a usuários autenticados por um sistema

de identidade diferente do IAM. Por exemplo, você pode associar funções do IAM a usuários deaplicativos móveis que fazem login usando o Amazon Cognito. A função concede ao aplicativocredenciais temporárias com as permissões na política de permissões da função. Essas permissõespodem incluir acesso a um segredo. Para obter mais informações, consulte O que é o AmazonCognito? no Guia do desenvolvedor do Amazon Cognito.

• Aplicativos em execução em instâncias do EC2 – você pode conceder permissões a aplicativos emexecução em uma instância do Amazon EC2 anexando uma função do IAM à instância. Quando umaplicativo na instância invocar uma API da AWS, ele poderá obter as credenciais temporárias da AWSnos metadados da instância. Essas credenciais temporárias são associadas a uma função e limitadaspela política de permissões da função. Essas permissões podem incluir acesso a um segredo.

• Acesso entre contas – um administrador na conta A pode criar uma função para conceder permissõesa um usuário em uma conta B diferente. Por exemplo:1. O administrador da conta A cria uma função do IAM e anexa uma política de permissões à função.

A política concede acesso a segredos na conta A e especifica as ações que os usuários executamnos segredos.

2. O administrador da conta A anexa uma política de confiança à função que identifica o ID da conta Bno elemento Principal para especificar quem assume a função.

3. O administrador da conta B pode então delegar permissões a qualquer usuário na conta B parapermitir que eles assumam a função da conta A. Isso permite que os usuários da conta B acessemos segredos da primeira conta.

Para obter mais informações sobre como usar o IAM para delegar permissões, consulte Gerenciamento deacesso no Guia do usuário do IAM.

O exemplo a seguir mostra uma política que pode ser anexada a um usuário, um grupo ou uma função.A política permite que a função ou o usuário afetado execute as operações DescribeSecret eGetSecretValue em sua conta apenas em segredos com um nome que comece com o caminho“TestEnv/”. A política também restringe o usuário ou a função a recuperar somente a versão do segredocom o rótulo de preparação AWSCURRENT anexado. Substituir o <region> e <account_id> nosseguintes exemplos com seus valores reais.

{

45

Page 52: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioControle de acesso e autorização

"Version": "2012-10-17", "Statement": [ { "Sid" : "Stmt1DescribeSecret", "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:<region>:<account_id>:secret:TestEnv/*" }, { "Sid" : "Stmt2GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:<region>:<account_id>:secret:TestEnv/*", "Condition" : { "ForAnyValue:StringLike" : { "secretsmanager:VersionStage" : "AWSCURRENT" } } } ]}

Como uma versão de segredo pode ter vários rótulos de preparação anexados, você precisa usar os"operadores de conjunto" da linguagem da política do IAM para compará-los em uma política. No exemploanterior, ForAnyValue:StringLike declara que se qualquer um dos rótulos de preparação anexadosà versão do segredo sob avaliação corresponder à string "AWSCURRENT", a instrução corresponderá eaplicará a string Effect.

Para obter mais exemplos de políticas baseadas em identidade, consulte Usar políticas baseadas emidentidade (políticas do IAM) e ABAC para Secrets Manager (p. 50). Para obter mais informações sobreusuários, grupos, funções e permissões, consulte Identidades (usuários, grupos e funções) no Guia dousuário do IAM.

Políticas baseadas em recursos

Cada segredo do Secrets Manager pode ter uma política de permissões baseada em recursos, umapolítica de segredos, anexada a ele. Você pode usar uma política de segredos para conceder permissõesentre contas como uma alternativa para usar as políticas baseadas em identidade com funções do IAM.Por exemplo, você pode conceder permissões a um usuário na conta B para acessar seu segredo naconta A adicionando permissões à política de segredos e identificando o usuário na conta B como umPrincipal, em vez de criar uma função do IAM.

O exemplo a seguir descreve uma política de segredos do Secrets Manager com uma instrução.A instrução permite que o administrador da conta 123456789012 conceda permissões a usuáriose funções nessa conta. A política limita as permissões que o administrador pode delegar à açãosecretsmanager:GetSecretValue em um segredo único, chamado “prod/ServerA-a1b2c3”. Acondição garante que o usuário possa recuperar apenas a versão atual do segredo.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root" }, "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<account_id>:secret:prod/ServerA-a1b2c3", "Condition": { "ForAnyValue:StringEquals": { "secretsmanager:VersionStage" : "AWSCURRENT" }

46

Page 53: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioDeterminar o acesso a um segredo

} } ]}

Important

Quando um principal do IAM em uma conta acessa um segredo em outra conta, o segredo deveser criptografado usando uma CMK personalizada do AWS KMS. Um segredo criptografadocom a CMK padrão do Secrets Manager para a conta pode ser descriptografado somente porentidades principais dessa conta. Uma entidade principal de uma conta diferente deve receberpermissão para o segredo e a para a CMK do AWS KMS personalizada.Como alternativa, você pode conceder ao usuário acesso entre contas para assumir uma funçãodo IAM na mesma conta do segredo. Como a função existe na mesma conta do segredo, ela podeacessar segredos criptografados com a chave padrão do AWS KMS da conta.

Como uma versão de segredo pode ter vários rótulos de preparação anexados, você precisa usar osoperadores de conjunto da linguagem da política do IAM para compará-los em uma política. No exemploanterior, ForAnyValue:StringLike declara que se qualquer um dos rótulos anexados à versão sobavaliação corresponder a "AWSCURRENT", a instrução corresponderá e aplicará o Effect.

Para mais exemplos de políticas baseadas em recursos com o Secrets Manager, consulte Uso de políticasbaseadas em recursos para o Secrets Manager (p. 57). Para obter informações adicionais sobre ouso de políticas baseadas em recursos, em vez de funções do IAM (políticas baseadas em identidade),consulte Como as funções do IAM diferem de políticas baseadas em recursos no Guia do usuário do IAM.

Determinar o acesso a um segredoPara determinar a extensão completa dos usuários com acesso a um segredo no AWS Secrets Manager,você deve examinar a política do segredo, se houver, e todas as políticas do AWS Identity and AccessManagement (IAM) anexadas ao usuário e grupos do IAM ou à função do IAM. Você pode fazer issopara determinar o escopo do uso potencial de um segredo ou para ajudá-lo a cumprir os requisitos deconformidade ou de auditoria. Os tópicos a seguir ajudam a gerar uma lista completa dos principais eidentidades da AWS com acesso atual a um segredo.

Tópicos• Noções básicas sobre a avaliação de políticas (p. 47)• Examinar a política de recursos (p. 48)• Examinar as políticas do IAM (p. 49)

Noções básicas sobre a avaliação de políticasAo autorizar o acesso a um segredo, o Secrets Manager avalia a política anexada ao segredo e todas aspolíticas do IAM anexadas ao usuário ou à função do IAM que está enviando a solicitação. Para fazer isso,o Secrets Manager usa um processo semelhante ao descrito em Determinar se uma solicitação é permitidaou negada no Guia do usuário do IAM.

Por exemplo, suponha que você tenha dois segredos e três usuários, todos na mesma conta da AWS. Ossegredos e os usuários têm as políticas a seguir:

• Secret 1 não tem uma política de segredos.• Secret 2 tem uma política de segredos que permite acesso aos usuários principais Ana e Carlos.• Ana não tem nenhuma política do IAM que faça referência a Secret 1 ou Secret 2.

47

Page 54: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExaminar a política de recursos

• A política do IAM de Bob permite todas as ações do Secrets Manager para todos os segredos.• A política do IAM de Carlos rejeita todas as ações do Secrets Manager para todos os segredos.

O Secrets Manager determina o seguinte acesso:

• Ana pode acessar apenas Secret 2. Ela não tem uma política anexada a seu usuário, mas Secret 2concede acesso a ela explicitamente.

• Bob pode acessar Secret 1 e Secret 2 porque tem uma política do IAM que permite o acesso a todos ossegredos na conta, e não há uma “negação” explícita para substituir esse acesso.

• Carlos não pode acessar o Secret 1 ou o Secret 2 porque o Secrets Manager nega todas as ações emsua política do IAM. A negação explícita na política do IAM de Carlos substitui a "permissão" explícita napolítica do segredo anexada a Secret 2.

O Secrets Manager adiciona todas as instruções de política do segredo ou da identidade que “permitem” oacesso. Toda negação explícita substitui qualquer permissão para a ação e o recurso sobrepostos.

Examinar a política de recursosVocê pode visualizar o documento de política de segredo anexado a um segredo usando a operaçãoGetResourcePolicy e examinando o elemento de resposta de ResourcePolicy.

Examine o documento da política de recurso e anote todos os principais especificados em cada elementoPrincipal da declaração da política. Os usuários do IAM, as funções do IAM e as contas da AWS noselementos Principal são aqueles que têm acesso a esse segredo.

Exemplo de declaração de política 1

{ "Sid": "Allow users or roles in account 123456789012 who are delegated access by that account's administrator to have read access to the secret", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Action": [ "secretsmanager:List*", "secretsmanager:Describe*", "secretsmanager:Get*" ], "Resource": "*"}

Na declaração da política anterior, &region-arn;iam::111122223333:root se refere à conta111122223333 da AWS e permite que o administrador dessa conta conceda acesso a todos os usuáriosou funções na conta.

Você também deve examinar todas as políticas do IAM em todas as contas da AWS listadas comoprincipais para determinar se as políticas permitem o acesso a esse segredo.

Exemplo de declaração de política 2

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:*", "Principal": {"AWS": "arn:aws:iam::123456789012:user/anaya"},

48

Page 55: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExaminar as políticas do IAM

"Resource": "*" } ]}

Na declaração de política anterior, &region-arn;iam::111122223333:user/anaya refere-se aousuário do IAM chamado Anaya na conta 111122223333 da AWS. Esse usuário pode executar todas asações do Secrets Manager.

Exemplo de declaração de política 3

{ "Sid": "Allow an app associated with an &IAM; role to only read the current version of a secret", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/EncryptionApp" }, "Action": ["secretsmanager:GetSecretValue"], "Condition": { "ForAnyValue:StringEquals": {"secretsmanager:VersionStage": "AWSCURRENT" } }, "Resource": "*"}

Na declaração de política anterior, &region-arn;iam::123456789012:role/EncryptionApprefere-se à função do IAM chamada EncryptionApp na conta da AWS 123456789012. Os principais queassumem essa função podem executar a única ação listada na declaração da política. Essa ação obtém osdetalhes da versão atual do segredo.

Para saber todas as diferentes maneiras de especificar um principal em um documento de política desegredo, consulte Especificar um principal no Guia do usuário do IAM.

Para saber mais sobre as políticas de segredo do Secrets Manager, consulte Políticas baseadas emrecursos (p. 46).

Examinar as políticas do IAMAlém da política de segredos e das concessões, você também pode usar as políticas do IAM com apolítica do segredo para permitir o acesso a um segredo. Para obter mais informações sobre como aspolíticas do IAM e as políticas de segredo funcionam juntas, consulte Noções básicas sobre a avaliação depolíticas (p. 47).

Para determinar quais identidades têm acesso no momento a um segredo por meio das políticas do IAM,você pode usar a ferramenta Simulador de políticas do IAM ou enviar solicitações à API do simulador depolíticas do IAM.

Examinar o efeito das políticas

Siga as etapas em uma das seguintes guias:

Using the web-based Policy Simulator

Você pode usar o Simulador de políticas do IAM para saber quais principais têm acesso a um segredopor meio de uma política do IAM.

1. Faça login no Console de Gerenciamento da AWS e abra o Simulador de políticas do IAM emhttps://policysim.aws.amazon.com/.

2. No painel Users, Groups, and Roles (Usuários, grupos e funções), escolha o usuário, o grupo ou afunção cujas políticas você deseja simular.

49

Page 56: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUsar políticas baseadas em identidade (políticas

do IAM) e ABAC para Secrets Manager

3. (Opcional) Desmarque a caixa de seleção ao lado de qualquer política que você deseja omitir dasimulação. Para simular todas as políticas, deixe todas as políticas selecionadas.

4. No painel Policy Simulator (Simulador de políticas), faça o seguinte:a. Em Select service (Selecionar serviço), escolha AWS Secrets Manager.b. Para simular ações específicas do Secrets Manager para Select actions (Selecionar ações),

escolha as ações a serem simuladas. Para simular todas as ações do Secrets Manager,selecione Selecionar tudo (Select All).

5. (Opcional) O Simulador de políticas simula o acesso a todos os segredos por padrão. Para simularo acesso a um determinado segredo, selecione Configurações de simulação e, em seguida, digite onome de recurso da Amazon (ARN) do segredo a ser simulado.

6. Selecione Executar simulação.

Você pode visualizar os resultados da simulação na seção Results (Resultados). Repita as etapas de2 a 6 para cada usuário, grupo e função do IAM na conta da AWS.

Using the Policy Simulator CLI or SDK operations

Você pode usar a API do IAM para examinar as políticas do IAM programaticamente. As etapas aseguir fornecem uma visão geral de como fazer isso:

1. Para cada conta da AWS listada como principal na política de segredos, ou seja,cada conta de usuário raiz listada neste formato: "Principal": {"AWS":"arn:aws:iam::accountnumber:root"}, use as operações ListUsers e ListRoles na API doIAM para recuperar uma lista de cada usuário e função do IAM na conta.

2. Para cada usuário e função do IAM na lista, use a operação SimulatePrincipalPolicy da API do IAMe envie os seguintes parâmetros:• Para PolicySourceArn, especifique o ARN de um usuário ou função da sua lista.

Você pode especificar apenas um PolicySourceArn para cada solicitação de APISimulatePrincipalPolicy. Portanto, você deve chamar essa API várias vezes, uma vezpara cada usuário e função do IAM em sua lista.

• Para ver a lista ActionNames, especifique cada ação de API do Secrets Manager a sersimulada. Para simular todas as ações de API do Secrets Manager, use secretsmanager:*.Para testar ações de API individuais do Secrets Manager, preceda cada ação de API com"secretsmanager:" — por exemplo, "secretsmanager:ListSecrets". Para uma listacompleta de todas as ações de API do Secrets Manager, consulte Ações na Referência da APIdo AWS Key Management Service.

• (Opcional) Para determinar se os usuários ou as funções do IAM têm acesso a segredosespecíficos, use o parâmetro ResourceArns para especificar uma lista dos ARNs dos segredos.Para determinar se os usuários ou as funções do IAM têm acesso a qualquer segredo, não use oparâmetro ResourceArns.

O IAM responde a cada solicitação da API SimulatePrincipalPolicy com uma decisão deavaliação: allowed , explicitDeny ou implicitDeny. Para cada resposta que contém umadecisão de avaliação allowed, a resposta também contém o nome da ação de API específica doSecrets Manager permitida e, se aplicável, o ARN do segredo usado na avaliação.

Usar políticas baseadas em identidade (políticas doIAM) e ABAC para Secrets Manager

Como administrador de uma conta, você pode controlar o acesso aos recursos da AWS na contaanexando políticas de permissões às identidades do IAM, como usuários, grupos e funções. Ao concederpermissões, você decide quais permissões, recursos e ações específicas permitir para esses recursos.

50

Page 57: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAWSPolítica gerenciada para oSecrets Manager

Se você conceder permissões a uma função, os usuários em outras contas que você especificar poderãoassumir essa função.

Por padrão, um usuário ou uma função não tem nenhum tipo de permissão. Você deve concederexplicitamente permissões usando uma política. Se você não conceder permissão explicitamente, apermissão será negada implicitamente. Se você negar explicitamente uma permissão, qualquer outrapolítica que a permita será sobreposta. Ou seja, um usuário tem apenas as permissões explicitamenteconcedidas e não as explicitamente negadas.

Para obter uma visão geral dos elementos básicos das políticas, consulte Gerenciar o acesso a recursoscom políticas (p. 42).

Também é possível implementar o controle de acesso baseado em atributo (ABAC) para suas políticasdo IAM. O controle de acesso baseado em atributo (ABAC) é uma estratégia de autorização que definepermissões com base em atributos. Na AWS, esses atributos são chamados de tags. As tags podem seranexadas a principais do IAM (usuários ou funções) e a recursos da AWS. É possível criar uma únicapolítica de ABAC ou um pequeno conjunto de políticas para os principais do IAM. Essas políticas de ABACpodem ser criadas para permitir operações quando a tag do principal corresponder à tag de recurso. OABAC é útil em ambientes que crescem rapidamente e ajuda em situações em que o gerenciamento depolíticas se torna um problema.

Para obter mais informações sobre ABAC, consulte O que é ABAC para a AWS?

AWSPolítica gerenciada para oSecrets ManagerO AWS Secrets Manager fornece a seguinte política gerenciada pela AWS para facilitar a concessão depermissões. Escolha o link para visualizar a política no console do IAM.

• SecretsManagerReadWrite – Esta política concede o acesso necessário para administrar o SecretsManager, exceto pelo fato de que a política não inclui as permissões do IAM necessárias paracriar funções e anexar políticas a essas funções. Nessas permissões, anexe a política gerenciadaIAMFullAccess. Para obter as instruções, consulte a seguinte seção Conceder permissões completas deadministrador do Secrets Manager a um usuário (p. 51).

Conceder permissões completas de administrador doSecrets Manager a um usuárioPara ser um administrador do Secrets Manager, você deve ter permissões em vários serviços.Recomendamos que você não habilite o Secrets Manager como um serviço de usuário final que permiteque os usuários criem e gerenciem seus segredos. As permissões necessárias para habilitar a rotaçãoconcedem permissões significativas que os usuários padrão não devem ter. Em vez disso, administradoresconfiáveis gerenciam o serviço Secrets Manager. O usuário final não processa mais as credenciaisdiretamente ou as incorpora no código.

Warning

Quando você ativa a rotação, o Secrets Manager cria uma função do Lambda e anexa umafunção do IAM à função. Isso requer várias permissões do IAM concedidas apenas a indivíduosconfiáveis. Portanto, a política gerenciada do Secrets Manager não inclui essas permissõesdo IAM. Em vez disso, você deve escolher explicitamente a atribuição da política gerenciadaIAMFullAccess, além da política gerenciada SecretsManagerReadWrite para criar umadministrador completo do Secrets Manager.A concessão de acesso apenas com a política SecretsManagerReadWrite permite que umusuário do IAM crie e gerencie segredos, mas o usuário não pode criar e configurar as funções derotação do Lambda necessárias para habilitar a rotação.

51

Page 58: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConceder acesso de leitura a um segredo

Realize as seguintes etapas para conceder permissões completas de administrador do Secrets Managera um usuário, grupo ou função do IAM na sua conta. Neste exemplo, você não cria uma nova política. Emvez disso, você anexa uma política gerenciada pela AWS pré-configurada com as permissões.

Para conceder permissões completas de administrador a um usuário, grupo ou função do IAM

1. Faça login no console do Identity and Access Management (IAM) no https://console.aws.amazon.com/iam/ como um usuário com permissões para anexar políticas do IAM a outros usuários do IAM.

No console do IAM, navegue até Policies (Políticas).2. Para Filter Policies: Tipo de política do , escolha Gerenciada pela AWS e, na caixa Pesquisar, comece

a digitar SecretsManagerReadWrite até ver a política na lista.3. Escolha o nome da política SecretsManagerReadWrite.4. Selecione Policy actions (Ações da política) e escolha Attach (Anexar).5. Marque a caixa de seleção ao lado dos usuários, grupos ou funções que você deseja adicionar como

um administrador do Secrets Manager.6. Escolha Attach policy (Anexar política).7. Repita as etapas de 1 a 6 para anexar também a política IAMFullAccess.

Os usuários, grupos e funções selecionados podem começar imediatamente a realizar tarefas no SecretsManager.

Conceder acesso de leitura a um segredoAo criar um aplicativo para usar o Secrets Manager para recuperar e usar um segredo, você precisaconceder a esse aplicativo apenas um conjunto limitado de permissões. O Secrets Manager só precisa dapermissão para a ação que permite a recuperação do valor do segredo criptografado com as credenciais.Você especifica o nome de recurso da Amazon (ARN) do segredo para restringir o acesso a apenas umsegredo.

Abra o console do IAM em https://console.aws.amazon.com/iam/.

Escolha Create Policy (Criar política) e adicione o seguinte código:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "<arn-of-the-secret-the-app-needs-to-access>" }}

Para obter uma lista de todas as permissões disponíveis para atribuição em uma política do IAM, consulteAções, recursos e chaves de contexto que podem ser utilizadas em uma política de segredos ou política doIAM para AWS Secrets Manager (p. 179).

Limitar o acesso a ações específicasSe você deseja conceder permissões limitadas, em vez de permissões completas, poderá criar umapolítica que lista as permissões individuais que você deseja permitir no elemento Action da política depermissões do IAM. Conforme mostrado no exemplo a seguir, você pode usar caracteres curinga (*) paraconceder somente as permissões Describe*, Get* e List* que, essencialmente, fornecem acessosomente leitura a seus segredos.

52

Page 59: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioLimitação de acesso a segredos específicos

Abra o console do IAM em https://console.aws.amazon.com/iam/.

Escolha Create Policy (Criar política) e adicione o seguinte código:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "secretsmanager:Describe*", "secretsmanager:Get*", "secretsmanager:List*" ], "Resource": "*" }}

Para obter uma lista de todas as permissões disponíveis para atribuição em uma política do IAM, consulteAções, recursos e chaves de contexto que podem ser utilizadas em uma política de segredos ou política doIAM para AWS Secrets Manager (p. 179).

Limitação de acesso a segredos específicosAlém de restringir o acesso a ações específicas, você também pode restringir o acesso a segredosespecíficos na sua conta. Os elementos Resource nos exemplos anteriores especificam o caracterecuringa ("*"), que significa "qualquer recurso com o qual essa ação pode interagir". Em vez disso, vocêpode substituir o "*" pelo ARN dos segredos específicos aos quais você deseja permitir acesso.

Example Exemplo: Conceder permissões a um único segredo por nome

A primeira declaração da política a seguir concede ao usuário acesso de leitura aos metadados sobretodos os segredos da conta. No entanto, a segunda declaração permite que o usuário execute qualqueração do Secrets Manager em apenas um único segredo especificado por nome — ou em qualquersegredo que comece com a string "another_secret_name-" seguida por exatamente 6 caracteres:

Abra o console do IAM em https://console.aws.amazon.com/iam/.

Escolha Create Policy (Criar política) e adicione o seguinte código:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "secretsmanager:*", "Resource": [ "arn:aws:secretsmanager:<region>:<account-id-number>:secret:a_specific_secret_name-a1b2c3", "arn:aws:secretsmanager:<region>:<account-id-number>:secret:another_secret_name-??????" ] } ]

53

Page 60: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioLimitar o acesso a segredos com tags ourótulos de preparação específicos (ABAC)

}

Usar '???????' como um curinga para corresponder aos 6 caracteres aleatórios atribuídos pelo SecretsManager evita um problema que ocorre se você usar o caractere curinga "*". Se você usar a sintaxe"another_secret_name-*", o Secrets Manager corresponderá não apenas ao segredo pretendido comos 6 caracteres aleatórios, mas também "another_secret_name-<anything-here>a1b2c3". Usar o"??????" A sintaxe permite conceder permissões com segurança a um segredo que ainda não existe. Issoocorre porque você pode prever todas as partes do ARN, exceto os 6 caracteres aleatórios. Mas observeque, se você excluir o segredo e recriá-lo com o mesmo nome, o usuário receberá automaticamentepermissão para o novo segredo, mesmo que os 6 caracteres tenham sido alterados.

Você obtém o ARN do segredo no console do Secrets Manager (na página Details (Detalhes) do segredoem questão) ou chamando o List* APIs. O usuário ou grupo ao qual você aplica essa política podeexecutar qualquer ação ("secretsmanager:*") apenas nos dois segredos identificados pelo ARN noexemplo.

Se você não se importar com a região ou com a conta proprietária de um segredo, especifique umcaractere curinga *, não um campo vazio, para os campos da região e do número do ID da conta do ARN.

Para obter mais informações sobre o ARNs para vários recursos, consulte Recursos que podem serreferenciados em uma política de segredo ou política do IAM (p. 179).

Limitar o acesso a segredos com tags ou rótulos depreparação específicos (ABAC)Em qualquer um dos exemplos anteriores, você chamou ações, recursos e principais explicitamentepor nome ou apenas ARN. Você também pode refinar o acesso para incluir apenas os segredos commetadados que contêm uma chave e valor de tag específicos ou um segredo com um determinado rótulo.

É possível anexar tags a principais do IAM (usuários ou funções) e a recursos da AWS. Depois disso,é possível definir políticas que usam chaves de condição de tag para conceder permissões aos seusprincipais com base nas tags. Ao usar tags para controlar o acesso aos seus recursos da AWS, vocêpermite que suas equipes e recursos cresçam com menos alterações nas políticas da AWS. As políticas deABAC são mais flexíveis do que as políticas tradicionais da AWS, que exigem que você liste cada recursoindividual.

Por exemplo, é possível criar três funções com a chave de tag access-project. Defina o valor da tag daprimeira função como Heart, a segunda como Sun e a terceira como Lightning. Você pode usar umaúnica política que permita o acesso ao marcar a função e o recurso com o mesmo valor para access-project.

Para implementar o ABAC para seus segredos, siga este tutorial: Tutorial do IAM: Definir permissões paraacessar recursos da AWS com base em tags.

Exemplo: Conceder permissão a um segredo que contém metadados com uma determinada chave e valorde tag

A política a seguir, quando anexada a um usuário, grupo ou função, permite que o usuário useDescribeSecret em qualquer segredo na conta atual com metadados que contêm uma tag com a chave"ServerName" e valor "ServerABC".

Abra o console do IAM em https://console.aws.amazon.com/iam/.

Escolha Create Policy (Criar política) e adicione o seguinte código:

{ "Version": "2012-10-17",

54

Page 61: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConceder uma permissão à função de rotação

para acessar um segredo mestre separado

"Statement": [ { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/ServerName": "ServerABC" } } } ]}

Exemplo: Conceder permissão à versão do segredo com um determinado rótulo de preparação

A política a seguir, quando anexada a um usuário, grupo ou função, permite que o usuário useGetSecretValue em qualquer segredo com um nome que comece com Prod — e somente para aversão com o rótulo de preparação AWSCURRENT anexado.

Abra o console do IAM em https://console.aws.amazon.com/iam/.

Escolha Create Policy (Criar política) e adicione o seguinte código:

{ "Policy": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecret", "Resource": "arn:aws:secretsmanager:*:*:secret:Prod*", "Condition": { "ForAnyValue:StringEquals": { "secretsmanager:VersionStage": "AWSCURRENT" } } } ] }}

Como a versão de um segredo pode ter vários rótulos de preparação, você precisa usar osoperadores do conjunto de linguagens da política do IAM para compará-los. No exemplo anterior,ForAnyValue:StringLike declara que se qualquer um dos rótulos de preparação anexados à versãoem avaliação corresponder à string AWSCURRENT, a instrução corresponderá e aplicará o Effect.

Conceder uma permissão à função de rotação paraacessar um segredo mestre separadoQuando você cria uma função de rotação do Lambda usando o modelo do AWS Serverless ApplicationRepository fornecido, usando o console ou os comandos da AWS CLI, uma política padrão anexada àfunção controla as ações da função. Por padrão, essa política concede acesso somente a segredos quetêm essa função do Lambda configurada como a função de rotação do segredo.

Se as credenciais do segredo não permitirem que os usuários alterem a senha no banco de dados ouserviço protegido, será necessário usar um conjunto separado de credenciais com permissões elevadas(um superusuário) para alterar as credenciais do segredo durante a rotação. O Secrets Manager armazenaas credenciais de superusuário em um segredo “mestre” separado. Quando você alterna o segredo, afunção de rotação Lambda faz login no banco de dados ou serviço com as credenciais mestras para alterarou atualizar as credenciais do segredo. Se você decidir implementar essa estratégia, deverá adicionaroutra instrução à política da função anexada à função que conceda acesso a esse segredo mestre, alémdo segredo principal.

55

Page 62: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConceder uma permissão à função de rotação

para acessar um segredo mestre separado

Se você usar o console para configurar uma rotação com uma estratégia que usa um segredo mestre,poderá selecionar o segredo mestre ao configurar a rotação do segredo.

Important

Você deve ter a permissão GetSecretValue do segredo mestre para selecioná-lo no console.

Depois de configurar a rotação no console, você deve executar manualmente as seguintes etapas paraconceder acesso ao segredo mestre à função do Lambda.

Para conceder acesso a uma função de rotação do Lambda a um segredo mestre

Siga as etapas em uma das seguintes guias:

Using the console

1. Quando você concluir a criação de um segredo com a rotação habilitada ou a edição do segredopara habilitar a rotação, o console exibirá uma mensagem semelhante à seguinte:

Your secret MyNewSecret has been successfully stored [and secret rotation is enabled].To finish configuring rotation, you need to grant the role MyLambdaFunctionRole permission to retrieve the secret <ARN of master secret>.

2. Copie o ARN do segredo mestre na mensagem na área de transferência. Você o usa em uma etapaposterior.

3. O nome da função na mensagem anterior fornece um link para o console do IAM e acessadiretamente essa função para você. Escolha esse link.

4. Na guia Permissions (Permissões), pode haver uma ou duas políticas em linha. O SecretsManager nomeia uma como SecretsManager<Name of Template>0. O modelo contémas permissões relacionadas ao EC2 necessárias quando a função de rotação e você executamo serviço protegido em uma VPC, e não diretamente acessível pela Internet. O outro modelochamado SecretsManager<Name of Template>1 contém as permissões para habilitar afunção de rotação para chamar operações do Secrets Manager. Abra a política (a que termina com"1") escolhendo a seta de expansão à esquerda da política e examinando as permissões.

5. Escolha Edit policy (Editar política) e execute as etapas em uma das seguintes guias:Using the IAM Visual Editor

Na guia Visual editor (Editor visual), selecione Add additional permissions (Adicionar maispermissões) e defina os seguintes valores:• Em Service (Serviço), escolha Secrets Manager (Gerenciador de segredos).• Em Actions (Ações), escolha GetSecretValue.• Em Resources (Recursos), escolha Add ARN (Adicionar ARN) ao lado da entrada do tipo de

recurso secret (segredo).• Na caixa de diálogo Add ARN(s) (Adicionar ARN(s)), cole o ARN do segredo mestre copiado

anteriormente.Using the JSON editor

Na guia JSON, examine a parte superior do script. Entre as linhas 3 ("Statement": [) e 4 ({ ), insira as seguintes linhas:

{ "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:region:123456789012:secret:MyDatabaseMasterSecret", "Effect": "Allow" },

56

Page 63: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUso de políticas baseadas em

recursos para o Secrets Manager

6. Ao concluir a edição da política, escolha Review policy (Rever política) e Save changes (Salvaralterações).

7. Agora você pode fechar o console do IAM e retornar ao console do Secrets Manager.

Note

Para obter uma lista completa de ações, recursos e chaves de contexto que você pode usar como Secrets Manager, consulte Ações, recursos e chaves de condição do AWS Secrets Manager.

Uso de políticas baseadas em recursos para oSecrets Manager

Você controla o acesso a segredos no AWS Secrets Manager usando políticas de segredo baseadas emrecursos. A AWS define um segredo como um recurso no Secrets Manager. Você, como o administradorda conta, controla o acesso a um recurso em um serviço da AWS. É possível adicionar permissões àpolítica anexada a um segredo.O Secrets Manager faz referência às políticas de permissões anexadasdiretamente a segredos como políticas baseadas em recursos. Você pode usar políticas baseadas emrecursos para gerenciar o acesso ao segredo e as permissões de gerenciamento.

Uma política baseada em recursos tem uma vantagem em relação às políticas baseadas em identidadeporque uma política baseada em recursos permite conceder acesso a principais de contas diferentes.Consulte o segundo exemplo na seção a seguir.

Para obter uma visão geral dos elementos básicos das políticas, consulte Gerenciar o acesso a recursoscom políticas (p. 42).

Para obter informações sobre políticas alternativas de permissão baseadas em identidade, consulte Usarpolíticas baseadas em identidade (políticas do IAM) e ABAC para Secrets Manager (p. 50).

Tópicos• Controlar o acesso a segredos para principais (p. 57)• Conceder acesso somente leitura a uma função (p. 58)

Controlar o acesso a segredos para principaisQuando você usa uma política baseada em recursos com o Secrets Manager anexado diretamente a umsegredo, o Resource se torna o segredo com a política anexada de maneira automática e implícita. Agoravocê pode especificar o elemento Principal. O elemento Principal permite especificar os usuários,grupos, funções e contas do IAM ou principais de serviço da AWS que podem acessar esse segredo,e as ações que podem executar nesse segredo. Para obter mais informações sobre todas as maneirasdiferentes de especificar um Principal, consulte Principal no Guia do usuário do IAM.

Exemplo: Conceder permissão a um usuário na mesma conta do segredo

A política a seguir, quando anexada diretamente a um segredo como parte dos metadados, concede aousuário Anaya permissão para executar qualquer operação do Secrets Manager no segredo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:*",

57

Page 64: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConceder acesso somente leitura a uma função

"Principal": {"AWS": "arn:aws:iam::123456789012:user/anaya"}, "Resource": "*" } ]}

Exemplo: Conceder permissão a usuários autorizados em uma conta diferente

A política a seguir, quando anexada diretamente a um segredo como parte dos metadados, concede aousuário Mateo do IAM na conta 123456789012 acesso para ler qualquer versão de um segredo específico:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/mateo" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ]}

Conceder acesso somente leitura a uma funçãoUm cenário comum do Secrets Manager pode ser um aplicativo que executa em uma instância do AmazonEC2 e que precisa de acesso a um banco de dados para executar as tarefas necessárias. O aplicativoprecisa recuperar as credenciais de banco de dados do Secrets Manager. Para enviar uma solicitaçãoao Secrets Manager, como a qualquer outro serviço da AWS, você precisa ter credenciais da AWS compermissões para executar a solicitação. Você pode conseguir isso criando uma função do IAM anexadaao perfil de instância do EC2. Para obter mais informações, consulte Funções do IAM para o Amazon EC2no Guia do usuário do Amazon EC2 para instâncias do Linux, especificamente na seção Recuperar ascredenciais de segurança dos metadados da instância.

Se você anexar o seguinte exemplo de política baseada em recursos ao segredo, todas as solicitações derecuperação do segredo funcionarão somente se o solicitante usar credenciais associadas à função e se asolicitação for somente para a versão atual do segredo:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/EC2RoleToAccessSecrets"}, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "secretsmanager:VersionStage" : "AWSCURRENT" } } } ]}

58

Page 65: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um segredo

Criar e gerir segredos com AWSSecrets Manager

Esta seção descreve como criar, atualizar, recuperar, pesquisar e excluir segredos usando o AWS SecretsManager.

Tópicos• Criar um segredo (p. 59)• Modificar um segredo (p. 63)• Recuperar o valor secreto (p. 69)• Recursos de pesquisa aprimorados para segredos noSecrets Manager (p. 71)• Eliminar e restaurar um segredo (p. 74)• Gerenciar uma política baseada em recursos de um segredo (p. 78)

Criar um segredoAWS Secrets Manager permite-lhe guardar segredos com o mínimo de esforço. Um segredo consiste nummínimo de metadados e num único valor secreto encriptado. Secrets Manager guarda o segredo e marca-oautomaticamente com AWSCURRENT.

Criar um segredo

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

Permissões mínimas

Para criar um segredo no console, você precisa ter estas permissões:

• As permissões concedidas pelo SecretsManagerReadWrite AWS uma política gerida.• As permissões concedidas pelo IAMFullAccess AWS política gerida – necessário apenas

se ativar a rotação para o segredo.• kms:CreateKey – necessária somente se você quiser que o Secrets Manager crie uma

chave mestra de cliente (CMK) personalizada do AWS KMS.• kms:Encrypt – necessário somente se você usar uma chave do AWS KMS personalizada

para criptografar seu segredo em vez da CMK padrão do Secrets Manager da sua conta.Você não precisa dessa permissão para usar a CMK gerenciada pela AWS padrão daconta para o Secrets Manager.

• kms:Decrypt – necessário somente se você usar uma chave do AWS KMS personalizadapara criptografar seu segredo em vez da CMK padrão do Secrets Manager da sua conta.Você não precisa dessa permissão para usar a CMK gerenciada pela AWS padrão daconta para o Secrets Manager.

• kms:GenerateDataKey – necessário somente se você usar uma chave do AWS KMSpersonalizada para criptografar seu segredo em vez da CMK padrão do Secrets Manager

59

Page 66: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um segredo

da sua conta. Você não precisa dessa permissão para usar a CMK gerenciada pela AWSpadrão da conta para o Secrets Manager.

1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

2. Selecione Store a new secret (Armazenar um novo segredo).3. Na seção Select secret type (Selecionar tipo de segredo), especifique o tipo de segredo que

você deseja criar escolhendo uma das opções a seguir. Em seguida, forneça as informaçõesnecessárias.

4. para Nome secreto, escreva um nome e caminho opcional, tal como production/MyAwesomeAppSecret ou development/TestSecret. Note que a utilização do carácter barrapermite-lhe estruturar os seus segredos numa hierarquia, tal como agrupar pelo ambiente deimplementação, o que poderá ser útil para organizar e gerir os seus segredos à escala. Se preferir,adicione uma descrição para ajudá-lo a lembrar a finalidade desse segredo.

O nome do segredo deve ter somente letras ASCII, números ou qualquer um dos seguintescaracteres: /_+=.@-

Note

Se adicionar um segredo ao repositório de parâmetros do Systems Manager, você deveráadicionar uma barra (/) à estrutura do diretório. Para obter mais informações, consulte adocumentação do AWS Systems Manager sobre Organizar parâmetros em hierarquias.

5. (Opcional) Na seção Tags, é possível adicionar uma ou mais tags ao segredo. Uma tag consisteem uma chave e um valor que você define. As tags auxiliam o gerenciamento dos seus recursosda AWS. É possível criar tags que associem recursos à estrutura de sua organização, comoChave="Departamento" e Valor="Contabilidade". Isso pode ajudar com o rastreamento e a alocaçãode custos. Você atribui tags para agrupar recursos pelo aplicativo que os utiliza (Chave="AppName"e Valor="HRDatabase"). Você cria tags para praticamente qualquer finalidade. Cada recurso, comoum segredo, pode ter várias tags anexadas. Para obter mais informações, consulte Estratégias demarcação da AWS no site de Respostas da AWS.

Important

Não armazene informações confidenciais sobre um segredo nas tags. Armazeneinformações confidenciais somente no valor do segredo (os campos SecretString ouSecretBinary) onde a criptografia protege as informações.

6. Depois de preencher o Name (Nome), Description (Descrição) e todas as Tags, selecione Next(Próximo).

7. (Opcional) Nesse momento, você poderá configurar a rotação para o segredo. Como você criou umsegredo “básico” sem rotação, deixe a opção como Disable automatic rotation (Desabilitar rotaçãoautomática) e escolha Next (Avançar).

Para obter informações sobre como configurar a rotação em segredos novos ou existentes,consulte Rotação dos segredos do AWS Secrets Manager (p. 85).

8. Reveja suas configurações e, em seguida, selecione Store secret (Armazenar segredo) para salvartudo o que inseriu como um novo segredo no Secrets Manager.

Amazon RDS

Use esse tipo de segredo para um dos serviços de banco de dados compatíveis (p. 4) para os quaiso Secrets Manager oferece suporte total de rotação com uma função de rotação do Lambda pré-configurada. Você só especifica as credenciais de autenticação porque o Secrets Manager determinaoutros parâmetros consultando a instância do banco de dados.

60

Page 67: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um segredo

1. Digite o nome do usuário e a senha que permitem acesso ao banco de dados. Escolha um usuáriocom apenas as permissões exigidas pelo cliente que acessa esse segredo.

2. Escolha a chave de criptografia do AWS KMS que você quer usar para criptografar o textoprotegido no segredo. Se você não escolher uma, o Secrets Manager verificará se existe umachave padrão para a conta e usará a chave padrão se ela existir. Se não houver nenhuma chavepadrão, o Secrets Manager criará um para você automaticamente. Também é possível selecionarAdd new key (Adicionar nova chave) para criar uma CMK personalizada do especificamente paraesse segredo. Para criar o seu próprio AWS KMS CMK, tem de ter permissão para criar CMKs nasua conta.

3. Escolha a instância de banco de dados na lista. O Secrets Manager recupera os detalhes daconexão sobre o banco de dados consultando a instância escolhida.

Amazon Redshift

Use esse tipo de segredo para um cluster do Amazon Redshift. Você só especifica as credenciaisde autenticação porque o Secrets Manager determina outros parâmetros consultando a instância dobanco de dados.

1. Digite o nome do usuário e a senha que permitem acesso ao banco de dados.2. Escolha a chave de criptografia do AWS KMS que você quer usar para criptografar o texto

protegido no segredo. Se você não escolher uma, o Secrets Manager verificará se existe umachave padrão para a conta e usará a chave padrão se ela existir. Se não houver nenhuma chavepadrão, o Secrets Manager criará um para você automaticamente. Também é possível selecionarAdd new key (Adicionar nova chave) para criar uma CMK personalizada do especificamente paraesse segredo. Para criar o seu próprio AWS KMS CMK, tem de ter permissões para criar CMKs nasua conta.

3. Escolha o mecanismo de banco de dados correto.4. Especifique os detalhes da conexão digitando o endereço IP do servidor de banco de dados, o

nome do banco de dados e o número da porta TCP.

DocumentDB database

Use este tipo de segredo para um DocumentDB base de dados. Você só especifica as credenciaisde autenticação porque o Secrets Manager determina outros parâmetros consultando a instância dobanco de dados.

1. Digite o nome do usuário e a senha que permitem acesso ao banco de dados.2. Escolha a chave de criptografia do AWS KMS que você quer usar para criptografar o texto

protegido no segredo. Se você não escolher uma chave, o Secrets Manager verificará se há umachave padrão para a conta e a usará. Se não houver nenhuma chave padrão, o Secrets Managercriará uma para você automaticamente. Também é possível selecionar Add new key (Adicionarnova chave) para criar uma CMK personalizada do especificamente para esse segredo. Para criar oseu próprio AWS KMS CMK, tem de ter permissões para criar CMKs na sua conta.

3. Escolha o mecanismo de banco de dados correto.4. Especifique os detalhes da conexão digitando o endereço IP do servidor de banco de dados, o

nome do banco de dados e o número da porta TCP.

Other databases

O Secrets Manager é compatível com outros tipos de banco de dados e usa esse segredo para essestipos. No entanto, você deve fornecer outras informações sobre o banco de dados. Para rotacionar

61

Page 68: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um segredo

esse segredo, escreva uma função de rotação do Lambda para analisar o segredo e interagir com oserviço para rotacioná-lo.

1. Digite o nome do usuário e a senha que permitem acesso ao banco de dados.2. Escolha a chave de criptografia do AWS KMS que você quer usar para criptografar o texto

protegido no segredo. Se você não escolher uma chave, o Secrets Manager verificará se há umachave padrão para a conta e a usará. Se não houver nenhuma chave padrão, o Secrets Managercriará uma para você automaticamente. Também é possível selecionar Add new key (Adicionarnova chave) para criar uma CMK personalizada do especificamente para esse segredo. Para criar oseu próprio AWS KMS CMK, tem de ter permissões para criar CMKs na sua conta.

3. Escolha o tipo de mecanismo de banco de dados que executa seu banco de dados.4. Especifique os detalhes da conexão digitando o endereço IP do servidor de banco de dados, o

nome do banco de dados e o número da porta TCP.

Other type of secret

O Secrets Manager pode ser configurado para outros bancos de dados ou serviços e usa essesegredo para eles. Você precisa fornecer a estrutura e os detalhes de seu segredo. Para rotacionaresse segredo, escreva uma função de rotação personalizada do Lambda para analisar o segredo einteragir com o serviço para rotacioná-lo em seu nome.

1. Especifique os detalhes do seu segredo personalizado como pares de Key e Value. Por exemplo,pode especificar uma chave de UserNamee, em seguida, forneça o nome de utilizador apropriadocomo o valor. Adicione uma segunda chave com o nome da Password e o texto da senha comoo valor. Você também pode adicionar entradas para Database name, Server address,TCP port e assim por diante. Adicione quantos pares desejar para armazenar as informaçõesnecessárias.

Como alternativa, escolha a guia Plaintext (Texto simples) e insira o valor do segredo em qualquerformato.

2. Escolha a chave de criptografia do AWS KMS que você quer usar para criptografar o textoprotegido no segredo. Se você não escolher uma chave, o Secrets Manager verificará se há umachave padrão para a conta e a usará. Se não houver nenhuma chave padrão, o Secrets Managercriará uma para você automaticamente. Também é possível selecionar Add new key (Adicionarnova chave) para criar uma CMK personalizada do especificamente para esse segredo. Para criar oseu próprio AWS KMS CMK, tem de ter permissões para criar CMKs na sua conta.

Using the AWS CLI or AWS SDK operations

Você usa os seguintes comandos para criar um segredo em Secrets Manager:

• API/SDK: CreateSecret• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: create-secret

62

Page 69: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

Example

Um exemplo de um comando da AWS CLI para executar o equivalente à configuração de segredobaseada em console. Esse comando pressupõe que você colocou o segredo, como este exemplo deestrutura de texto JSON {"username":"anika","password":"aDM4N3*!8TT"}, em um arquivochamado mycreds.json.

$ aws secretsmanager create-secret --name production/MyAwesomeAppSecret --secret-string file://mycreds.json{ "SecretARN": "arn:aws:secretsmanager:region:accountid:secret:production/MyAwesomeAppSecret-AbCdEf", "SecretName": "production/MyAwesomeAppSecret", "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"}

Important

Pode criar um segredo utilizando qualquer formato desejado para SecretString.Por exemplo, pode utilizar um par simples de valor chave JSON, ou{"username":"someuser", "password":"securepassword"} No entanto, sepretender activar posteriormente a rotação para este segredo, deverá utilizar a estruturaespecífica esperada pela função de rotação utilizada com este segredo. Para obter detalhessobre cada função de rotação necessária para trabalhar com o valor secreto, consulte oEsperado SecretString Valor sob a função de rotação relevante em Modelos da AWS quepodem ser usados para criar funções de rotação do Lambda (p. 171).

O Secrets Manager não requer o parâmetro ClientRequestToken porque você usa a AWS CLI quegera e fornece um automaticamente para você. Quando você usa a CMK padrão do Secrets Managerpara a conta, você não precisa do parâmetro KmsKeyId. Quando você usa o console do SecretsManager e a SecretString, você não pode usar SecretBinary. O Secrets Manager reserva oSecretType para uso pelo console.

Em um ambiente de trabalho, onde os clientes usam um aplicativo que usa o segredo para acessarum banco de dados, é possível que você ainda precise conceder permissões ao usuário ou funçãodo IAM que o aplicativo usa para acessar o segredo. Você pode fazer isso anexando uma políticabaseada em recursos diretamente ao segredo e listando o usuário ou a função no elementoPrincipal. Ou você pode anexar uma política ao usuário ou função que identifica o segredo noelemento Resource.

Modificar um segredoÉ possível modificar alguns elementos de um segredo após criá-lo. No console, você pode editar adescrição, editar ou anexar uma nova política baseada em recursos para modificar as permissões para osegredo, alterar a chave mestra do cliente (CMK) do AWS KMS usada para criptografar e descriptografaras informações do segredo protegido, e editar, adicionar ou remover tags.

Você também pode alterar o valor das informações de segredo criptografadas. No entanto, recomendamosusar rotação para atualizar os valores de segredos que contêm credenciais. A rotação não apenasatualiza o segredo, mas também modifica as credenciais no banco de dados ou serviço protegido paraque correspondam às do segredo. Isso mantém os segredos sincronizados automaticamente para que,quando solicitarem um valor de segredo, os clientes sempre recuperem um conjunto de credenciais quefuncionam.

Esta seção inclui procedimentos e comandos que descrevem como modificar os seguintes elementos deum segredo:

63

Page 70: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

• Valor de segredo criptografado (p. 64)• Description (Descrição) (p. 65)• AWS KMS chave de criptografia (p. 67)• Tags (p. 68)• Política de permissão (p. 78)

Modificar o valor de segredo criptografado armazenado em um segredo

Siga as etapas em uma das seguintes guias:Important

• Atualizar o segredo dessa maneira não altera as credenciais no servidor protegido. Para queas credenciais no servidor permaneçam em sincronia com as credenciais armazenadas novalor do segredo, recomendamos habilitar a rotação. Uma função AWS Lambda altera ambasas credenciais no servidor e aquelas do segredo para corresponder e testar se as credenciaisatualizadas funcionam. Para obter mais informações, consulte Rotação dos segredos do AWSSecrets Manager (p. 85).

• Você pode criar um segredo básico usando um formato desejado para o SecretString.Por exemplo, você pode usar um par de chave/valor JSON simples. Por exemplo,{"username":"someuser", "password":"securepassword"}. No entanto, seposteriormente você desejar habilitar a rotação para este segredo, deverá utilizar uma estruturaespecífica para o segredo. O Secrets Manager determina o formato exato por meio da funçãode rotação que você deseja usar com esse segredo. Para obter os detalhes do que cada funçãode rotação requer para trabalhar com o valor do segredo, consulte a entrada Valor esperadodo SecretString sob a função de rotação relevante em Rotação de segredos do AWS SecretsManager para outros bancos de dados ou serviços..

Using the Secrets Manager console

Ao atualizar o valor de segredo criptografado em um segredo, uma nova versão do segredo é criada.A nova versão recebe automaticamente o rótulo de preparação AWSCURRENT. Você ainda podeacessar a versão antiga consultando o rótulo de preparação AWSPREVIOUS. Na CLI, use o comandoget-version-ids ou use a API GETVERSIONIDS para comparar o segredo modificado com osegredo original.

A saída dos dois comandos exibe um campo CreatedDate, um parâmetro válido já que o SecretsManager cria uma nova versão para o segredo modificado.

Note

Sempre que o rótulo de preparação AWSCURRENT é movido de uma versão para outra, oSecrets Manager move automaticamente o rótulo de preparação AWSPREVIOUS para aversão rotulada AWSCURRENT anteriormente.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Na lista de segredos, escolha o nome do segredo com o valor do segredo a ser modificado.3. Na seção Secret value (Valor de segredo), selecione Retrieve secret value (Recuperar o valor de

segredo).4. Com o valor de segredo exibido, selecione Edit.5. Atualize os valores conforme apropriado e, em seguida, selecione Save (Salvar).

Using the AWS CLI or AWS SDK operations

64

Page 71: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

Use os comandos a seguir para atualizar o valor de segredo criptografado armazenado no segredo.Ao atualizar o valor de segredo criptografado em um segredo, uma nova versão do segredo é criada.

Important

Você pode atualizar um segredo usando um formato desejado para SecretString.Por exemplo, você pode usar um par de chave/valor JSON simples. Por exemplo,{"username":"someuser", "password":"securepassword"}. No entanto, sevocê desejar habilitar a rotação para esse segredo posteriormente, deverá usar a estruturaespecífica esperada pela função de rotação usada com esse segredo. Para obter os detalhesdo que cada função de rotação requer para trabalhar com o valor do segredo, consulte aentrada Valor esperado do SecretString sob a função de rotação relevante em Rotação desegredos do AWS Secrets Manager para outros bancos de dados ou serviços..

Note

UpdateSecret move automaticamente o rótulo de preparação AWSCURRENT para a novaversão do segredo.PutSecretValue não move automaticamente os rótulos de preparação. No entanto, ocomando adicionará AWSCURRENT se esse comando criar a primeira versão do segredo.Caso contrário, ele apenas anexará ou moverá esses rótulos explicitamente solicitados com oparâmetro VersionStages.Sempre que o rótulo de preparação AWSCURRENT é movido de uma versão para outra, oSecrets Manager move automaticamente o rótulo de preparação AWSPREVIOUS para aversão AWSCURRENT e remove o rótulo de preparação AWSPREVIOUS.

• API/SDK: UpdateSecretvoltas,PutSecretValue• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: update-secret, put-secret-value

Example

O comando da AWS CLI de exemplo a seguir altera o valor do segredo de um segredo. Isso resultana criação de uma nova versão, para a qual o Secrets Manager move automaticamente o rótulo depreparação AWSCURRENT para a nova versão. Além disso, o Secrets Manager move automaticamenteo rótulo de preparação AWSPREVIOUS para a versão mais antiga com o rótulo de preparaçãoAWSCURRENT.

$ aws secretsmanager update-secret --secret-id production/MyAwesomeAppSecret --secret-string '{"username":"anika","password":"a different password"}'{ "SecretARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:production/MyAwesomeAppSecret-AbCdEf", "SecretName": "production/MyAwesomeAppSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"}

O VersionId na saída contém o ID exclusivo da nova versão do segredo. Você pode fornecer o valormanualmente usando o parâmetro ClientRequestToken. Se você não especificar o valor, o SDK oua AWS CLI gerarão um valor de UUID aleatório para você.

65

Page 72: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

Modificar a descrição de um segredo

Siga as etapas em uma das seguintes guias:

Using the console

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Na lista de segredos, escolha o nome do segredo a ser modificado.3. Na seção Secrets details (Detalhes dos segredos), selecione Actions (Ações) e, em seguida,

selecione Edit description (Editar descrição).4. Insira uma nova descrição ou edite o texto existente e selecione Save (Salvar).

Using the AWS CLI or AWS SDK operations

Use os seguintes comandos para modificar a descrição de um segredo no AWS Secrets Manager:

• API/SDK: UpdateSecret• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: update-secret

Example

O comando da AWS CLI de exemplo a seguir adiciona ou substitui a descrição por aquela fornecidapelo parâmetro --description.

$ aws secretsmanager update-secret --secret-id production/MyAwesomeAppSecret --description 'This is the description I want to attach to the secret.'{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:production/MyAwesomeAppSecret-AbCdEf", "Name": "production/MyAwesomeAppSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"}

Example

Para visualizar as alterações no segredo, use o comando describe-secret:

aws secretsmanager describe-secret --secret-id production/MyAwesomeAppSecret { "ARN": "arn:aws:secretsmanager:region:accountid:secret:production/MyAwesomeAppSecret-AbCdEf", "Name": "production/MyAwesomeAppSecret", "Description": "This is the description I want to attach to the secret", "LastChangedDate": 1579542853.77, "LastAccessedDate": 1579478400.0,

66

Page 73: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

Modificar a chave de criptografia do AWS KMS usada por um segredo

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

Important

Se você alterar a chave de criptografia usada por um segredo, deverá atualizar o valordo segredo com UpdateSecret ou PutSecretValue pelo menos uma vez antes dedesabilitar ou excluir a primeira CMK. A atualização do valor do segredo descriptografa osegredo usando a CMK antiga e criptografa novamente o segredo com a nova CMK. Se vocêdesabilitar ou excluir a primeira CMK antes dessa atualização, o Secrets Manager não poderádescriptografar a chave, e você perderá o conteúdo do segredo, a menos que você possahabilitar a CMK novamente.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Na lista de segredos, escolha o nome do segredo a ser modificado.3. Na seção Secrets details (Detalhes dos segredos), selecione Actions (Ações) e, em seguida,

selecione Edit encryption key (Editar chave de criptografia).4. Selecione a chave de criptografia do AWS KMS para criptografar e descriptografar versões do

segredo posteriormente. Em seguida, escolha Save (Salvar).

Using the AWS CLI or AWS SDK operations

Important

Se você alterar a chave de criptografia usada por um segredo, deverá atualizar o valordo segredo com UpdateSecret ou PutSecretValue pelo menos uma vez antes dedesabilitar ou excluir a primeira CMK. A atualização do valor do segredo descriptografa osegredo usando a CMK antiga e criptografa novamente o segredo com a nova CMK. Se vocêdesabilitar ou excluir a primeira CMK antes dessa atualização, o Secrets Manager não poderádescriptografar a chave, e você perderá o conteúdo do segredo, a menos que você possahabilitar a CMK novamente.

É possível usar os seguintes comandos para modificar a chave de criptografia do AWS KMS usadapelo segredo. Especifique a CMK pelo nome de recurso da Amazon (ARN).

• API/SDK: UpdateSecret• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: update-secret

Example

O comando de exemplo da AWS CLI a seguir adiciona ou substitui a CMK do AWS KMS usada emtodas as operações de criptografia e descriptografia nesse segredo a partir deste momento.

67

Page 74: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModificar um segredo

$ aws secretsmanager update-secret --secret-id production/MyAwesomeAppSecret --kms-key-id arn:aws:kms:region:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Modificar as tags anexadas a um segredo

Siga as etapas em uma das seguintes guias:

Using the console

Os nomes e valores da chave de tag diferenciam letras maiúsculas de minúsculas. Somente uma tagem um segredo pode ter um determinado nome de chave.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Na lista de segredos, escolha o nome do segredo a ser modificado.3. Na seção Tags, selecione Edit (Editar).4. O Secrets Manager exibe todas as tags existentes. É possível digitar sobre qualquer um dos

valores ou nomes da chave.5. Você pode remover qualquer linha existente escolhendo Remove tag (Remover tag).6. Se for necessário adicionar outro par de chave-valor, selecione Add tag (Adicionar tag) e insira o

novo nome da chave e o valor associado.7. Quando terminar de fazer as alterações, selecione Save (Salvar).

Using the AWS CLI or AWS SDK operations

Use os comandos a seguir para adicionar ou remover as tags anexadas a um segredo no SecretsManager. Os nomes e valores de chave diferenciam maiúsculas de minúsculas. Somente uma tag emum segredo pode ter um determinado nome de chave. Para editar uma tag existente, adicione uma tagcom o mesmo nome da chave, mas com um valor diferente. Isso não adiciona um novo par de chave-valor. Em vez disso, o Secrets Manager atualiza o valor no par existente. Para alterar um nome dechave, é necessário remover a primeira chave e adicionar uma segunda com o novo nome.

• API/SDK: TagResourcevoltas,UntagResource• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: tag-resource, untag-resource

Example

O comando da AWS CLI de exemplo a seguir adiciona ou substitui as tags por aquelas fornecidas peloparâmetro --tags. O parâmetro deve ser uma matriz JSON de elementos Key e Value:

$ aws secretsmanager tag-resource --secret-id MySecret2 --tags '[{"Key":"costcenter","Value":"12345"},{"Key":"environment","Value":"production"}]'

O comando tag-resource não retorna nenhuma saída.

68

Page 75: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRecuperar o valor secreto

Example

O comando da AWS CLI de exemplo a seguir remove as tags com a chave "ambiente" do segredoespecificado:

$ aws secretsmanager untag-resource --secret-id MySecret2 --tag-keys 'environment'

O comando tag-resource não retorna nenhuma saída.

Recuperar o valor secretoO Secrets Manager permite que você recupere seus segredos de forma programática e segura emseus aplicativos personalizados. No entanto, também é possível recuperá-los usando o console ou asferramentas da CLI.

Esta seção inclui procedimentos e comandos que descrevem como recuperar o valor de um segredo.

Recuperar o valor de um segredo

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

Permissões mínimas

Para recuperar um segredo no console, você precisa ter estas permissões:

• secretsmanager:ListSecrets – use para navegar até o segredo a ser recuperado.• secretsmanager:DescribeSecret — use para recuperar as partes não criptografadas

do segredo.• secretsmanager:GetSecretValue – use para recuperar a parte criptografada do

segredo.• kms:Decrypt – Necessária somente se você usou uma chave mestra do cliente (CMK) do

AWS KMS personalizada para criptografar seu segredo.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Na lista de segredos em sua conta, selecione o nome do segredo que deseja visualizar.

A página Secret details (Detalhes do segredo) é exibida. Ela exibe todos os detalhes daconfiguração do segredo escolhido, exceto o texto criptografado do segredo.

3. Na seção Secret value (Valor de segredo), selecione Retrieve secret value (Recuperar o valor desegredo).

4. Selecione Secret key/value (Chave/valor do segredo) para visualizar as credenciais analisadascomo chaves e valores individuais. Selecione Plaintext (Texto simples) para ver a string de textoJSON original criptografada e armazenada.

Using the AWS CLI or AWS SDK operations

Você pode usar os seguintes comandos para recuperar um segredo armazenado no AWS SecretsManager:

69

Page 76: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUsar os componentes em cache de código aberto

no lado do cliente desenvolvidos pela AWS

• API/SDK: GetSecretValue• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: get-secret-value

Você deve identificar o segredo pelo nome amigável ou nome de recurso da Amazon (ARN) eespecificar a versão do segredo. Se você não especificar uma versão, o Secrets Manager usará comopadrão a versão com o rótulo de preparação AWSCURRENT. O Secrets Manager retorna o conteúdodo texto do segredo nos parâmetros da resposta de PlaintextString e, se você tiver armazenadoqualquer dado binário no segredo, Plaintext, que retorna uma matriz de bytes.

Example

O comando da AWS CLI de exemplo a seguir descriptografa e recupera as informações de segredocriptografadas da versão padrão do segredo chamado "MyTestDatabase". O Secrets Manager usa aúltima data de modificação para a saída de CreatedDate.

$ aws secretsmanager get-secret-value --secret-id development/MyTestDatabase{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "SecretString": "{\"ServerName\":\"MyDBServer\",\"UserName\":\"Anaya\",\"Password\":\"MyT0pSecretP@ssw0rd\"}", "SecretVersionStages": [ "AWSCURRENT" ], "CreatedDate": 1510089380.309}

Usar os componentes em cache de código aberto nolado do cliente desenvolvidos pela AWSPara usar o segredo de maneira eficiente, você não deve simplesmente recuperar o valor do segredo cadavez que desejar usá-lo. Você também deve incluir o código para executar as seguintes operações:

• O aplicativo deve armazenar um segredo em cache depois de recuperá-lo. Depois, em vez de recuperaro segredo em toda a rede no Secrets Manager cada vez que precisar dele, use o valor armazenado emcache.

• Sempre que o código receber uma erro de rede ou de serviço da AWS, repita as solicitações usando umalgoritmo que implementa um recuo exponencial e tente novamente com tremulação, como descrito emRecuo exponencial e tremulação no Blog de arquitetura da AWS.

Ao escrever o código para realizar essas tarefas, você obterá os seguintes benefícios:

• Custos reduzidos – para segredos usados com frequência, recuperá-los do cache reduz o número dechamadas de API que os aplicativos fazem para o Secrets Manager. Como o Secrets Manager cobrauma taxa por chamada de API, isso pode reduzir significativamente os custos.

70

Page 77: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRecursos de pesquisa aprimoradospara segredos noSecrets Manager

• Desempenho aprimorado – recuperar o segredo da memória, em vez de enviar uma solicitação pelaInternet para o Secrets Manager, pode melhorar significativamente o desempenho de seus aplicativos.

• Melhor disponibilidade – Os problemas com erros de rede transitórios podem ser minimizados quandovocê recupera as informações do segredo do cache.

O Secrets Manager criou um componente do lado do cliente para implementar essas práticasrecomendadas e simplificar a criação de código para acessar segredos armazenados no AWS SecretsManager. Você instala o cliente e depois chama o segredo fornecendo o identificador do segredo quevocê deseja que o código use. O Secrets Manager também exige que as credenciais da AWS que vocêusa para chamar o Secrets Manager contenham as permissões secretsmanager:DescribeSecret esecretsmanager:GetSecretValue no segredo. Essas credenciais normalmente seriam associadasa uma função do IAM. Essa função pode ser atribuída a você no momento do login, se você usar aFederação SAML ou a Federação de identidades da web (OIDC). Se o aplicativo estiver em execução emuma instância do Amazon EC2, o administrador poderá atribuir uma função do IAM criando um perfil deinstância.

O componente vem de uma das seguintes formas:

• As bibliotecas no lado do cliente no Java, Python, Go e .NET com as quais você interage com o segredoem vez de chamar diretamente a operação GetSecretValue.

• Um componente de driver de banco de dados compatível com o Java Database Connectivity (JDBC).Esse componente atua como um wrapper em torno do verdadeiro driver JDBC que adiciona afuncionalidade descrita acima.

Para obter instruções de como fazer download e usar veja um dos links a seguir:

• Componente de cliente armazenado em cache baseado em Java• Componente de conector de banco de dados compatível com JDBC• Cliente armazenado em cache para Python• Cliente armazenado em cache para .NET• Cliente armazenado em cache para Go

Recursos de pesquisa aprimorados para segredosnoSecrets Manager

O Secrets Manager fornece um método mais fácil para gerenciar e pesquisar segredos com baseem atributos, como nomes de segredo, descrição, chaves de tag e valores de tag, introduzindo umafuncionalidade de pesquisa aprimorada compatível com o console da AWS, a API da AWS e a CLI daAWS.

Se você armazenar milhares de segredos no Secrets Manager, a pesquisa de segredos por nome poderánão retornar informações suficientes sobre os segredos. Contudo, usar atributos de pesquisa adicionaisao pesquisar fornece informações mais detalhadas sobre os segredos. Você pode aplicar vários filtros aoscritérios de pesquisa.

Talvez você também queira ler o blog de segurança da AWSIdentificar, organizar e gerenciar segredosfacilmente usando a pesquisa avançada no AWS Secrets Manager.

É possível pesquisar um segredo usando estes atributos:

• Nome do - uma consulta de frase com distinção entre maiúsculas e minúsculas usando parte ou todo onome do segredo para retornar resultados relevantes.

71

Page 78: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUsar pesquisa sem filtros

Por exemplo, a pesquisa de MySecret retornará resultados se você nomeou o segredo como MySecret.A pesquisa não encontra segredos chamados mysecret nem outras variações.

• Descrição do - uma consulta que não diferencia maiúsculas de minúsculas de frase correspondentepara especificar uma frase localizada na descrição para filtrar descrições correspondentes.

Por exemplo, a pesquisa de MyDescription retorna resultados com MyDescriptiion, mydescription,Mydescription ou myDescription.

• Chaves de tag do - uma consulta que diferencia maiúsculas de minúsculas em um prefixocorrespondente que pesquisa a existência de chave de tag. O Secrets Manager retorna somente as tagscorrespondentes ao prefixo especificado.

Por exemplo, a pesquisa de MyKey retorna apenas segredos com um valor de chave de tag MyKey, nãomykey ou outras variações.

• Valores de tag do uma consulta que diferencia maiúsculas de minúsculas de prefixo correspondenteque pesquisa a existência de um valor de tag. O Secrets Manager retorna somente as tagscorrespondentes ao prefixo especificado.

Por exemplo, a pesquisa de MyValue retorna apenas segredos com um valor de tag MyValue, nãomyvalue ou outras variações.

Usar pesquisa sem filtrosUsar o recurso de pesquisa sem especificar filtros retorna diferentes resultados de pesquisa parasegredos. Quando você especifica uma palavra-chave de pesquisa, a pesquisa retorna todos ossegredos com essa palavra-chave no nome, na chave de tag, no valor da tag ou na descrição e ignora adiferenciação de maiúsculas e minúsculas nos resultados.

Se você usar uma pesquisa de texto completo sem filtros, o recurso de pesquisa ignorará caracteresespeciais, como espaço, /, _, =, # e pesquisará somente números e alfabetos correspondentes.

O Secrets Manager fornece esse tipo de comportamento de pesquisa por padrão.

Note

é um serviço regional, e a pesquisa retorna as correspondências armazenadas na regiãoselecionada.Secrets Manager

Como procurar segredos

Use as etapas em uma das seguintes guias:

Using the Secrets Manager console

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Clique no campo Search e escolha o(s) filtro(s) para usar em sua pesquisa:

• Nome• Description (Descrição)• Chaves de tag• Valor da tag

Note

Você pode usar vários filtros para seus critérios de pesquisa.3. Digite sua palavra-chave no campo Pesquisar e pressione Enter.

72

Page 79: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUsar pesquisa sem filtros

4. Secrets Manager retorna uma lista de segredos que correspondem aos seus critérios de pesquisa.

Por exemplo, a pesquisa de segredos com a palavra-chave conducts, na descrição do segredo,retorna dois segredos:

Nome de segredo Description (Descrição)

SecretsManager – rotação-lambda Realiza uma rotação do AWS SecretsManagerpara o RDS MySQL usando um esquema derotação de usuário único

SecretsManager -rotation-Desenvolvedores Realiza uma rotação do AWS SecretsManagerpara o RDS MySQL usando um esquema derotação de usuário único

Using the AWS CLI or AWS SDK operations

Você pode usar os seguintes comandos para procurar um segredo armazenado no AWS SecretsManager:

• API/SDK: ListSecret• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: list-secret

Example

O exemplo a seguir do comando AWS CLI procura segredos com a palavra-chave conducts nadescrição.

$ aws secretsmanager list-secrets --filters '[{"Key":"description", "Values":["conducts"]}]' --query "SecretList[*].{SecretName:Name,Description:Description}"{ [ { "Description": "Conducts an AWS SecretsManager rotation for RDS MySQL using single user rotation scheme", "SecretName": "SecretsManager-rotation-lambda" }, { "Description": "Conducts an AWS SecretsManager rotation for RDS MySQL using single user rotation scheme", "SecretName": "SecretsManager-rotation-Developers" }]}

A consulta retorna dois segredos, SecretsManager-rotation-lambda e SecretsManager-rotation-Developers, que contêm a palavra-chave conducts na descrição.

73

Page 80: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEliminar e restaurar um segredo

Eliminar e restaurar um segredoDevido à natureza crítica dos segredos, o AWS Secrets Manager dificulta intencionalmente a exclusão deum segredo. O Secrets Manager não exclui segredos imediatamente. Em vez disso, o Secrets Managertorna os segredos imediatamente inacessíveis e programados para exclusão após uma janela de nomínimo sete dias. Até que a janela de recuperação termine, é possível recuperar um segredo excluídoanteriormente. Ao usar a CLI (p. 75), é possível excluir um segredo sem uma janela de recuperação.

Também não é possível excluir diretamente uma versão de um segredo. Em vez disso, remova todos osrótulos de preparação do segredo. Isso marca o segredo como obsoleto e permite que o Secrets Managerexclua automaticamente a versão em segundo plano.

Esta seção inclui procedimentos e comandos que descrevem a exclusão e restauração de um segredoexcluído:

• Eliminar um segredo e todas as versões (p. 74)• Restaurar um segredo programado para exclusão (p. 76)• Excluir uma versão de um segredo (p. 77)

Excluir um segredo e todas as versões

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

Quando você exclui um segredo, o Secrets Manager o defasa imediatamente. No entanto, o SecretsManager não exclui realmente o segredo até que o número de dias especificado na janela derecuperação tenha decorrido. Você não pode acessar um segredo defasado. Se precisar acessarum segredo programado para exclusão, você deverá restaurá-lo. Você pode acessar o segredo e asinformações criptografadas do segredo.

Pode eliminar permanentemente um segredo sem qualquer janela de recuperação, utilizando o AWSCLI ou AWS SDKs. No entanto, não pode fazê-lo na Secrets Manager consola.

Permissões mínimas

Para excluir um segredo no console, você precisa ter estas permissões:

• secretsmanager:ListSecrets – usada para navegar até o segredo a ser excluído.• secretsmanager:DeleteSecret – Usada para obsoletar o segredo e programá-lo para

exclusão permanente.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Acesse a lista de segredos que você gerencia atualmente no Secrets Manager e selecione o nome

do segredo que deseja excluir.3. Na seção Secret details (Detalhes do segredo), selecione Delete secret (Excluir segredo).4. Na caixa de diálogo Schedule secret deletion (Programar exclusão do segredo), especifique o

número de dias na janela de recuperação. Isso representa o número de dias que você desejaesperar antes que a exclusão se torne permanente. O Secrets Manager anexa um campo chamadoDeletionDate e o define com a data e hora atuais mais o número de dias especificado para ajanela de recuperação.

5. Escolha Schedule deletion.6. Se você tiver habilitado a opção de mostrar itens excluídos no console, o segredo continuará a ser

exibido. Como opção, você pode visualizar o campo de data de exclusão na lista.

74

Page 81: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEliminar e restaurar um segredo

a. Escolha o Preferências ícone (a engrenagem ) no canto superior direito.b. Selecione Show secrets scheduled for deletion (Mostrar segredos programados para exclusão).c. Habilite a opção para Deleted on (Excluído em).d. Selecione Save (Salvar).

Os segredos excluídos agora aparecem na lista com a data na qual você excluiu cada um.

Using the AWS CLI or AWS SDK operations

Você pode usar os seguintes comandos para recuperar um segredo armazenado no AWS SecretsManager:

• API/SDK: DeleteSecret• +++ AC• Java• PHP• Python• Ruby• Node.js

• AWS CLI: delete-secret

É necessário identificar o segredo a ser excluído pelo nome amigável ou pelo nome de recurso daAmazon (ARN) no campo SecretId.

Example

O comando de exemplo da AWS CLI a seguir defasa o segredo chamado "MyTestDatabase" eprograma-o para exclusão após uma janela de recuperação de 14 dias.

$ aws secretsmanager delete-secret --secret-id development/MyTestDatabase --recovery-window-in-days 14{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase", "DeletionDate": 1510089380.309}

A qualquer momento após a data e a hora especificadas no campo DeletionDate, o AWS SecretsManager exclui permanentemente o segredo.

Você também pode excluir um segredo imediatamente sem esperar o tempo.

Important

Um segredo excluído com o parâmetro ForceDeleteWithoutRecovery não pode serrecuperado com a operação RestoreSecret.

Example

O comando da AWS CLI de exemplo a seguir exclui imediatamente o segredo sem uma janela derecuperação. O campo de resposta de DeletionDate mostra a data e a hora atuais em vez de umadata futura.

75

Page 82: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEliminar e restaurar um segredo

$ aws secretsmanager delete-secret --secret-id development/MyTestDatabase --force-delete-without-recovery{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase", "DeletionDate": 1508750180.309}

Dica útil

Se não souber se um segredo ainda é usado por um aplicativo, você poderá criar um alarmedo Amazon CloudWatch para alertá-lo sobre qualquer tentativa de acessar um segredodurante a janela de recuperação. Para obter mais informações, consulte A monitorizarversões secretas agendadas para eliminação (p. 148).

Restaurar um segredo agendado para exclusão

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

O Secrets Manager considera um segredo programado para exclusão como defasado e não maisacessado diretamente. Depois que a janela de recuperação passar, o Secrets Manager excluiráo segredo permanentemente. Depois que o Secrets Manager apagou o segredo, você não poderecuperá-lo. Antes do final da janela de recuperação, você pode recuperar o segredo e torná-loacessível novamente. Isso remove o campo DeletionDate, que cancela a exclusão permanenteprogramada.

Permissões mínimas

Para restaurar um segredo e os respectivos metadados no console, é necessário ter estaspermissões:

• secretsmanager:ListSecrets – usada para navegar até o segredo que desejarestaurar.

• secretsmanager:RestoreSecret – usada para excluir versões que ainda estãoassociadas ao segredo.

1. Abra o console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Acesse a lista de segredos que você gerencia atualmente no Secrets Manager.3. Para visualizar os segredos excluídos, você deve habilitar essa opção no console. Se você não tiver

ativado esse recurso, execute estas etapas:4. a. Escolha o Preferências ícone , o equipamento , no canto superior direito.

b. Selecione Show secrets scheduled for deletion (Mostrar segredos programados para exclusão).c. Habilite a opção para Deleted on (Excluído em).d. Selecione Save (Salvar).

Os segredos excluídos agora aparecem na lista com a data na qual você excluiu cada um.5. Escolha o nome do segredo excluído a ser restaurado.6. Na seção Secret details (Detalhes do segredo), selecione Cancel deletion (Cancelar exclusão).7. Na caixa de diálogo de confirmação Cancel secret deletion (Cancelar exclusão do segredo),

selecione Cancelar exclusão.

76

Page 83: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEliminar e restaurar um segredo

O AWS Secrets Manager remove o campo DeletionDate do segredo. Isso cancela a exclusãoprogramada e restaura o acesso ao segredo.

Using the AWS CLI or AWS SDK operations

Você pode usar os seguintes comandos para recuperar um segredo armazenado no AWS SecretsManager:

• API/SDK: RestoreSecret• C++• Java• PHP• Python• Ruby• Node.js

• AWS CLI: restore-secret

É necessário identificar o segredo a ser restaurado pelo nome amigável ou pelo ARN no campoSecretId.

Example

O comando da AWS CLI de exemplo a seguir restaura um segredo excluído anteriormente chamado"MyTestDatabase". Isso cancela a exclusão programada e restaura o acesso ao segredo.

$ aws secretsmanager restore-secret --secret-id development/MyTestDatabase{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase"}

Excluir uma versão de um segredo

Siga as etapas em uma das seguintes guias:

Using the AWS CLI or AWS SDK operations

Não é possível excluir uma versão de um segredo usando o console do Secrets Manager. Você deveusar a AWS CLI ou API da AWS.

Não é possível excluir diretamente uma versão de um segredo. Em vez disso, remova todos os rótulosde preparação que marcam efetivamente o segredo como defasado. O Secrets Manager pode, então,excluir a versão em segundo plano.

Use os seguintes comandos para defasar uma versão de um segredo armazenado no AWS SecretsManager:

• API/SDK: UpdateSecretVersionStage• AWS CLI: update-secret-version-stage

77

Page 84: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioGerenciar uma política baseada em recursos de um segredo

Você deve identificar o segredo por seu nome amigável ou pelo ARN. Você também especifica osrótulos de preparação que deseja adicionar, mover ou remover.

Você pode especificar FromSecretVersionId e MoveToSecretId nas seguintes combinações:

• FromSecretVersionId apenas: Isto elimina completamente as etiquetas de preparação daversão especificada.

• MoveToVersionId apenas: Isto adiciona as etiquetas de preparação à versão especificada. Seoutras versões tiverem qualquer um dos rótulos de preparação já anexados, o Secrets Managerremoverá automaticamente os rótulos dessas versões.

• MoveToVersionId e RemoveFromVersionId: Estas movem explicitamente uma etiqueta. Orótulo de preparação deve estar presente na versão RemoveFromVersionId do segredo ouocorrerá um erro.

Example

O exemplo do comando da AWS CLI a seguir remove o rótulo de preparação AWSPREVIOUS de umaversão do segredo chamado "MyTestDatabase". Pode recuperar o ID da versão que pretende eliminarutilizando o ListSecretVersionIds comando.

$ aws secretsmanager update-secret-version-stage \ --secret-id development/MyTestDatabase \ --remove-from-version-id EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE --version-stage AWSPREVIOUS{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase"}

Gerenciar uma política baseada em recursos de umsegredo

Esta seção descreve como anexar, recuperar e remover políticas baseadas em recursos de segredos.

Uma conta da AWS tem todos os recursos da AWS, incluindo os segredos que você armazena no AWSSecrets Manager. O AWS contém políticas baseadas em recursos para criar ou acessar os recursos. Umadministrador de conta pode controlar o acesso aos recursos do AWS anexando políticas baseadas emrecursos diretamente aos recursos, os segredos ou as identidades, os usuários, os grupos e as funções doIAM que precisam acessar os recursos.

Para obter mais informações sobre o AWS Identity and Access Management, consulte a seção Políticas epermissões do IAM do .Guia do usuário do IAM

Você pode recuperar uma política baseada em recursos para revisá-la em uma data posterior e excluir apolítica baseada em recursos quando não precisar mais dela.

Use o console do Secrets Manager ou a GetResourcePolicy, o PutResourcePolicy e oDeleteResourcePolicy APIs para recuperar, anexar ou excluir uma política baseada emrecursos de um segredo. Quando você anexa uma política baseada em recursos no formato JSONno console, o Secrets Manager usa Zelkova, um mecanismo de raciocínio automatizado, e a API,ValidateResourcePolicy, para validar se a política não concede a uma ampla variedade de principaisdo IAM acesso aos seus segredos. Como alternativa, você pode chamar a API do PutResourcePolicycom o parâmetro BlockPublicPolicy na CLI ou no SDK.

78

Page 85: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAnexar uma política baseada em recursos a um segredo

para consideração como uma política baseada em recursos aceitável, a política baseada em recursosdeve conceder acesso somente a um ou mais dos seguintes valores fixos:

• aws:SourceArn

• aws:SourceVpc

• aws:SourceVpce

• aws:SourceAccount

Para obter mais informações, consulte a Documentação do Amazon S3.

O AWS Secrets Manager usa o Zelkova nos seguintes produtos e o para fornecer uma experiênciasemelhante:

• AWS Config• Amazon S3• AWS Trusted Advisor• Amazon Macie• Amazon GuardDuty

Se a política não criar um segredo amplamente acessível, o console do Secrets Manager usará a APIPutResourcePolicy para anexar a política. Caso você crie uma política baseada em recursos quepermita que uma grande variedade de principais do IAM acessem o segredo, o Console do SecretsManager exibe uma mensagem de erro e impede que você anexe a política.

Você ainda pode adicionar, modificar, recuperar e excluir políticas baseadas em recursos usando oscomandos da CLI e da API.

Anexar uma política baseada em recursos a umsegredoAnexar uma política baseada em recurso a um segredo

Para obter detalhes sobre como criar uma política baseada em recursos, consulte Visão geral dogerenciamento de permissões de acesso aos segredos doSecrets Manager (p. 38) e Uso de políticasbaseadas em recursos para o Secrets Manager (p. 57).

Use as etapas a seguir para anexar uma política baseada em recursos a um segredo.

Using the Secrets Manager Console

É possível anexar ou modificar políticas baseadas em recursos a segredos usando o console doSecrets Manager. A política deve ser formatada como texto JSON estruturado.

Para adicionar uma política a um segredo existente, use as seguintes etapas:

1. Escolha o segredo do qual você deseja adicionar ou modificar uma política baseada em recursos.2. Role para baixo até a seção Permissões de recursos (opcional) e escolha Editar permissões.

Insira sua política, no formato JSON, no campo de código.3. Selecione Save (Salvar).

O Secrets Manager valida a política como parte do processo Salvar.

79

Page 86: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAnexar uma política baseada em recursos a um segredo

Example

O exemplo de código JSON a seguir exibe uma política baseada em recursos aceitável:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/admin" }, "Action":"secretsmanager:GetSecretValue", "Resource":"arn:aws:secretsmanager:us-east-1:123456789012:secret:consolesecret-m4qxfJ" } ]}

Se o Secrets Manager detectar uma política baseada em recursos inválida, o Secrets Managerretornará uma mensagem de erro dependendo do tipo de erro encontrado.

• JSON de bloqueio

Your requested changes will not allow you to manage this secret in the future.

Example

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Principal" : "*", "Action" : "secretsmanager:*", "Resource" : "*" } ]}

• JSON de acesso amplo

This resource policy grants broad access to your secret. Secrets Manager does not allow creating and applying such policies in the console.

Example

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : "*", "Action" : "secretsmanager:*", "Resource" : "*" } ]}

• Erro de sintaxe JSON

This resource policy contains a syntax error.

80

Page 87: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAnexar uma política baseada em recursos a um segredo

Example

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "AllowSomething", "Principal" : "*", "Action" : "secretsmanager:*", "Resource" : "*" } ]}

• Política de principal inválida JSON

This resource policy contains an unsupported principal.

Example

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::123456789012:user/invaliduser" }, "Action" : "secretsmanager:GetSecretValue", "Resource" : "*" } ]}

• JSON principal de serviço inválido

This resource policy contains an invalid service principal.

Example

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::123456789012:user/iam-user", "Service": [ "invalidservice.amazonaws.com" ] }, "Action" : "secretsmanager:GetSecretValue", "Resource" : "*" } ]}

O Secrets Manager exibe vários erros em uma única saída.Using the AWS CLI or AWS SDK operations

Use o comando a seguir para anexar ou modificar o documento da política para conceder ou negaro acesso ao segredo especificado. O documento de política deve estar formatado como texto JSON

81

Page 88: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRecuperar uma política baseada

em recursos de um segredo

estruturado. Para obter mais informações, consulte Uso de políticas baseadas em recursos para oSecrets Manager (p. 57). É recomendável armazenar o documento de sua política como um arquivode texto e fazer referência ao arquivo no parâmetro do comando.

• API/SDK: PutResourcePolicy• C++• Java• PHP• Python• Ruby• Node.js

• CLI: put-resource-policy

Example

O exemplo de comando da CLI a seguir anexa ou substitui a política baseada em recursosatualmente anexada ao segredo. O Secrets Manager recupera o documento de política do arquivosecretpolicy.json.

$ aws secretsmanager put-resource-policy --secret-id production/MyAwesomeAppSecret --resource-policy file://secretpolicy.json { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:production/MyAwesomeAppSecret-a1b2c3", "Name": "MyAwesomeAppSecret" }

Usar o parâmetro opcional --block-public-policy retorna um erro, pois o Secrets Managernão permite esse tipo de política. O Secrets Manager retorna a seguinte resposta: "Ocorreu um erro(BlockPublicPolicyException) ao chamar a operação PutResourcePolicy: Não é possível anexar umapolítica baseada em recursos que permita amplo acesso ao segredo."

Recuperar uma política baseada em recursos de umsegredoRecuperar uma política de permissão anexada a um segredo

Use as etapas a seguir para recuperar o texto de uma política baseada em recursos anexada a umsegredo.

Using the Secrets Manager Console

Para recuperar a política baseada em recursos de um segredo, use as seguintes etapas:

1. Escolha o segredo na sua lista de segredos disponíveis.2. Role para baixo até Resource Permissions (optional).3. Para alterar o texto, escolha Edit Permissions (Editar permissões).4. Escolha Save (Salvar) para salvar as alterações na política baseada em recursos.

Using the AWS CLI or AWS SDK operations

82

Page 89: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExcluir uma política baseada em recursos de um segredo

Você pode usar o seguinte comando para recuperar o documento de política atualmente anexado aosegredo especificado.

• API/SDK: GetResourcePolicy• C++• Java• PHP• Python• Ruby• Node.js

• CLI: get-resource-policy

Example

O seguinte comando de exemplo da CLI obtém o texto da política de permissões baseada emrecursos que está anexada ao segredo.

$ aws secretsmanager get-resource-policy --secret-id production/MyAwesomeAppSecret{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:production/MyAwesomeAppSecret-a1b2c3", "Name": "MyAwesomeAppSecret", "ResourcePolicy": "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:root\",\"arn:aws:iam::444455556666:root\"},\"Action\":[\"secretsmanager:GetSecret\",\"secretsmanager:GetSecretValue\"],\"Resource\":\"*\"}}"}

Excluir uma política baseada em recursos de umsegredoExcluir a política baseada em recursos anexada a um segredo

Use as etapas a seguir para excluir a política baseada em recursos que está anexada ao segredoespecificado.

Using the Secrets Manager Console

1. Escolha o segredo na sua lista de segredos configurados.2. Role para baixo até Resource Permissions (optional).3. Escolha Edit permissions (Editar permissões).4. Exclua o texto da política e escolha Save (Salvar).

Secrets Manager retorna uma mensagem indicando a exclusão bem-sucedida da política derecursos do segredo.

Using the AWS CLI or AWS SDK operations

Você pode usar o seguinte comando para excluir uma política baseada em recursos que está anexadaao segredo especificado.

83

Page 90: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExcluir uma política baseada em recursos de um segredo

• API/SDK: DeleteResourcePolicy• C++• Java• PHP• Python• Ruby• Node.js

• CLI: delete-resource-policy

Example

O seguinte comando de exemplo da CLI exclui a política de permissões baseada em recursos queestá anexada ao segredo.

$ aws secretsmanager delete-resource-policy --secret-id production/MyAwesomeAppSecret{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:production/MyAwesomeAppSecret-a1b2c3", "Name": "production/MyAwesomeAppSecret"}

84

Page 91: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermissões necessárias para

alternar segredos automaticamente

Rotação dos segredos do AWSSecrets Manager

Configure o AWS Secrets Manager para fazer a rotação automaticamente do segredo de um serviçoou banco de dados protegido. O Secrets Manager já sabe como fazer a rotação dos segredos de formanativa para bancos de dados do Amazon RDS compatíveis (p. 4). No entanto, o Secrets Manager tambémpermite que você execute rotação de segredos em outros bancos de dados ou serviços de terceiros.Como cada serviço ou banco de dados pode ter uma maneira exclusiva de configurar segredos, o SecretsManager usa uma função do Lambda que você pode personalizar para funcionar com um banco dedados ou serviço selecionado. É possível personalizar a função do Lambda para implementar os detalhesespecíficos do serviço de como executar a rotação de um segredo.

Ao habilitar a rotação para um segredo usando o tipo de segredo Credentials for RDS database(Credenciais para o banco de dados do RDS), Credentials for Redshift cluster (Credenciais para ocluster do Redshift) ou Credentials for DocumentDB database (Credenciais para o banco de dados doDocumentDB), o Secrets Manager fornece uma função de rotação do Lambda para você e preencheautomaticamente o nome de recurso da Amazon (ARN) da função no segredo. Forneça alguns detalhespara que isso funcione. Por exemplo, você especifica o segredo com permissões para rotacionar ascredenciais e com que frequência deseja rotacionar o segredo.

Ao permitir a rotação de um segredo com Credentials for other database (Credenciais para outro banco dedados) ou algum Other type of secret (Outro tipo de segredo), é necessário fornecer o código da funçãoLambda. O código inclui os comandos necessários para interagir com o serviço protegido para atualizar ouadicionar credenciais.

Tópicos• Permissões necessárias para alternar segredos automaticamente (p. 85)• Configuração da rede para ser compatível com rotação de segredos (p. 88)• Rotação de segredos para bancos de dados do Amazon RDS compatíveis (p. 89)• Rotação de segredos para o Amazon Redshift (p. 97)• Segredos rotativos para Amazon DocumentDB (p. 105)• Rotação de segredos do AWS Secrets Manager para outros bancos de dados ou serviços (p. 113)• Compreender e personalizar o seu Lambda função de rotação (p. 118)• Eliminação de itens não utilizados Lambda funções de rotação (p. 132)

Permissões necessárias para alternar segredosautomaticamente

Quando você usa o console do AWS Secrets Manager para configurar a rotação de um segredo para umdos bancos de dados totalmente compatíveis (p. 4), o console configura praticamente todos os parâmetrospara você. Mas, se você criar uma função ou optar por fazer qualquer coisa manualmente por outrosmotivos, talvez também seja necessário configurar manualmente as permissões para essa parte darotação.

85

Page 92: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermissões para usuários que configuram

rotação versus usuários que acionam rotação

Permissões para usuários que configuram rotaçãoversus usuários que acionam rotaçãoO Secrets Manager requer dois conjuntos separados de permissões para operações de usuário usando arotação de segredos:

• Permissões necessárias para configurar a rotação – o Secrets Manager atribui permissões a um usuárioconfiável para configurar a rotação de segredos. Para obter mais informações, consulte Concessão depermissões completas de administrador do Secrets Manager a um usuário.

• Permissões necessárias para fazer a rotação do segredo – um usuário do IAM só precisa da permissão,secretsmanager:RotateSecret, para acionar a rotação após a configuração. Após o início darotação, a função de rotação do Lambda assume e usa sua função do IAM anexada e as permissõespara autorizar as operações executadas durante a rotação, incluindo todas as operações necessárias doAWS KMS.

O restante deste tópico aborda as permissões para a função de rotação do Lambda fazer a rotação de umsegredo com êxito.

Permissões associadas à função de rotação doLambdaO AWS Secrets Manager usa uma função do Lambda para implementar o código para rotacionar ascredenciais em um segredo.

O serviço Secrets Manager Lambda invoca a função do . O serviço faz isso invocando uma função do IAManexada à função do Lambda. O Secrets Manager tem duas ações para isso:

• A política de confiança que especifica quem pode assumir a função. Você deve configurar essa políticapara permitir que o Secrets Manager assuma a função, conforme identificado pelo principal de serviço:psecretsmanager.amazonaws.com. Você pode visualizar essa política no console do Lambda, napágina de detalhes da função, clicando no ícone de chave na seção Designer. Os detalhes aparecem naseção Function policy (Política de função). Essa política será semelhante ao seguinte exemplo:

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "<arn of the Lambda function that this trust policy is attached to - must match exactly>" } ]}

Por motivos de segurança, a política de confiança criada pelo Secrets Manager inclui um elementoResource e inclui o nome de recurso da Amazon (ARN) da função do Lambda. Qualquer pessoa queassume a função pode invocar apenas a função do Lambda associada à função.

• A política de permissões da função que especifica a função do responsável por assumir. Configureessa política para especificar as permissões que o Secrets Manager pode usar ao assumir a função

86

Page 93: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermissões associadas à função de rotação do Lambda

invocando a função. O Secrets Manager tem duas políticas diferentes disponíveis, dependendo daestratégia de rotação a ser implementada.• Rotação de usuário único do : O exemplo a seguir descreve uma função que alterna um segredo

fazendo login com as credenciais armazenadas no segredo e alterando a senha.

{ "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:resource/AllowRotationLambdaArn": "<lambda_arn>" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Effect": "Allow" } ]}

A primeira declaração no exemplo de usuário único concede permissão à função para executaroperações do Secrets Manager. No entanto, o elemento Condition restringe isso apenas aossegredos configurados com esse ARN da função do Lambda como a função de rotação de segredo doLambda.

A segunda instrução permite uma operação do Secrets Manager adicional que não exige a condição.

A terceira declaração permite que o Lambda defina a configuração necessária quando você especificaque seu banco de dados ou serviço é executado em uma VPC. Para obter mais informações, consulteConfigurar uma função Lambda para acessar recursos em uma VPC da Amazon no AWS LambdaDeveloper Guide.

• Rotação do usuário mestre: O exemplo a seguir descreve uma função que alterna um segredofazendo login com um segredo mestre separado com credenciais que contêm permissões elevadas.Se você usar uma das estratégias de rotação que alternam entre dois usuários, o Secrets Managerexigirá essa função.

{ "Statement": [ { "Effect": "Allow",

87

Page 94: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConfiguração da rede para ser

compatível com rotação de segredos

"Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:resource/AllowRotationLambdaArn": "<lambda_arn>" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "<master_arn>" } ]}

Além das mesmas três instruções da política de usuário único anterior, essa política adiciona umaquarta instrução. A quarta instrução permite que a função recupere as credenciais no segredo mestre.O Secrets Manager usa as credenciais no segredo mestre para fazer login no banco de dadosprotegido e atualizar as credenciais no segredo rotacionado.

Configuração da rede para ser compatível comrotação de segredos

Para conseguir alternar os segredos, a função de rotação do Lambda deve conseguir se comunicar como banco de dados ou serviço protegido e com o serviço do AWS Secrets Manager. A função de rotaçãoenvia solicitações ao banco de dados ou outro serviço para atualizar uma senha de usuário com um novovalor. A função também chama operações da API do Secrets Manager para recuperar e atualizar ossegredos envolvidos no processo de rotação. Se a instância do Amazon RDS ou outro serviço protegidofor executado em uma nuvem privada virtual (VPC) fornecida pela Amazon VPC, você deverá executar asseguintes etapas de alto nível para habilitar a conectividade necessária.

• Configure a função de rotação do Lambda para habilitar a comunicação entre a função e a instância dobanco de dados. Se você usar um dos serviços de banco de dados (p. 4) totalmente compatíveis como Secrets Manager, o modelo do AWS CloudFormation que cria a função determinará a acessibilidadepública da instância do banco de dados.

88

Page 95: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon RDS

• Se o serviço protegido estiver em execução em uma VPC e não estiver acessível publicamente, omodelo do AWS CloudFormation configurará a função de rotação do Lambda para ser executadana mesma VPC. Nesse cenário, a função de rotação pode se comunicar com o serviço protegidodiretamente na VPC.

• Se você executar seu serviço protegido como um recurso acessível publicamente, em uma VPC ounão, o modelo do AWS CloudFormation configurará a função de rotação do Lambda para não serexecutada em uma VPC. Nesse cenário, a função de rotação do Lambda se comunica com o serviçoprotegido por meio do ponto de conexão acessível publicamente.

Se você configurar a função de rotação manualmente e quiser adicioná-la a uma VPC, na página Details(Detalhes) da função, role para baixo até a seção Networking (Redes) e escolha a VPC apropriada nalista.

• Configure a VPC para permitir a comunicação entre a função de rotação do Lambda em execução emuma VPC e o endpoint de serviço do Secrets Manager. Por padrão, os endpoints do Secrets Managersão executados na Internet pública. Se você executar a função de rotação do Lambda e o banco dedados ou serviço protegido em uma VPC, execute uma das seguintes etapas:• Você pode habilitar a função Lambda para acessar o endpoint público do Secrets Manager

adicionando umgateway NAT à sua VPC. Isso permite que o tráfego proveniente da sua VPC alcanceo endpoint do Secrets Manager público. Isso expõe a VPC a um nível de risco, pois um endereço IPdo gateway pode ser atacado pela Internet pública.

• Você pode configurar endpoints de serviço do Secrets Manager diretamente em sua VPC. Issoconfigura a VPC para interceptar qualquer solicitação endereçada ao endpoint regional público eredirecioná-la para o endpoint de serviço privado em execução na VPC. Para obter mais detalhes,consulte Conectar-se ao Secrets Manager por um VPC endpoint.

Rotação de segredos para bancos de dados doAmazon RDS compatíveis

É possível configurar o AWS Secrets Manager para rotacionar automaticamente o segredo de um bancode dados do Amazon RDS. O Secrets Manager usa uma função do Lambda fornecida pelo SecretsManager.

Bancos de dados compatíveis do Amazon RDS

Para as opções do Amazon RDS no Secrets Manager, um banco de dados compatível significa que,quando você habilita a rotação, o Secrets Manager fornece uma função de rotação do Lambda completae pronta para execução criada para esse banco de dados. Para obter uma lista completa dos bancosde dados compatíveis, consulte the section called “Bases de dados com suporte de rotação totalmenteconfigurado e pronto a usar” (p. 4). Para qualquer outro tipo de banco de dados do , você ainda podealternar o segredo. No entanto, você deve usar o fluxo de trabalho para Other database (Outro banco dedados). Para obter essas instruções, consulte Rotação de segredos do AWS Secrets Manager para outrosbancos de dados ou serviços (p. 113).

Ao habilitar a rotação de um segredo com Credentials for RDS database (Credenciais para o banco dedados do RDS) como o tipo de segredo, o Secrets Manager cria e configura automaticamente uma funçãode rotação do Lambda para você. O Secrets Manager fornece ao segredo o nome de recurso da Amazon(ARN) da função. O Secrets Manager cria a função do IAM associada à função e configura-a com todas aspermissões necessárias. Como alternativa, se usar a mesma estratégia de rotação com outro segredo equiser usar a mesma rotação com o novo segredo, você poderá especificar o ARN da função existente eusá-lo para ambos os segredos.

Se você executar a instância de banco de dados do Amazon RDS em uma VPC fornecida pela AmazonVPC e a VPC não tiver acesso público à Internet, o Secrets Manager também configurará a função doLambda a ser executada nessa VPC. O Secrets Manager também requer que a função de rotação do

89

Page 96: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon RDS

Lambda possa acessar um endpoint de serviço do Secrets Manager para chamar as operações de APInecessárias. Se um ou mais dos recursos na VPC precisarem se comunicar com a Internet, você poderáconfigurar a VPC com um gateway NAT para habilitar a função de rotação do Lambda para consultar oendpoint público do serviço Secrets Manager. Se não houver necessidade de se comunicar com a Internet,você poderá configurar a VPC com um endpoint de serviço privado do Secrets Manager (p. 88) que sejaacessível de dentro da VPC.

Caso contrário, normalmente só é necessário fornecer alguns detalhes para determinar o modelo usadopara criar a função do Lambda:

• Especifique o segredo com credenciais com permissões para alternar o segredo: algumas vezes, ousuário pode alterar a própria senha. Outras vezes, o usuário tem permissões muito restritas e nãopode alterar a própria senha. Em vez disso, você deve usar as credenciais de outro administrador ousuperusuário para alterar as credenciais do usuário.

É necessário especificar qual segredo a função de rotação usa para alternar as credenciais no banco dedados protegido:• Use this secret (Usar este segredo): escolha essa opção se as credenciais no segredo atual tiverem

permissões no banco de dados para alterar a própria senha. Escolher essa opção faz com que oSecrets Manager implemente uma função do Lambda com uma estratégia de rotação que alteraa senha de um único usuário a cada rotação. Para obter mais informações sobre essa estratégiade rotação, consulte Rotacionar segredos do AWS Secrets Manager para um usuário com umasenha (p. 122).

Considerações

O Secrets Manager fornece essa opção como uma opção de "disponibilidade mais baixa".Podem ocorrer falhas de login entre o momento em que a rotação remove a senha antiga eo momento em que a senha atualizada se torna acessível como a nova versão do segredo.Essa janela de tempo pode ser muito curta — na ordem de um segundo ou menos. Se vocêescolher essa opção, verifique se os aplicativos cliente implementam uma estratégia de"backoff e repetição com tremulação" apropriada no código. Os aplicativos devem gerar umerro somente se houver várias falhas de login durante um período mais longo.

• Use a secret that I have previously stored in AWS Secrets Manager (Usar um segredo que armazeneianteriormente no AWS Secrets Manager): escolha essa opção se as credenciais do segredo atualtiverem permissões mais restritivas e não puderem ser usadas para atualizar as credenciais noserviço protegido. Ou escolha essa opção se você precisar de alta disponibilidade para o segredo.Para escolher essa opção, crie um segredo "mestre" separado e credenciais com permissão paracriar e atualizar credenciais no serviço protegido. Em seguida, selecione esse segredo mestre nalista. Escolher essa opção faz com que o Secrets Manager implemente uma função Lambda. Essafunção do Lambda tem uma estratégia de rotação que clona o usuário inicial encontrado no segredo.A função alterna entre os dois usuários a cada rotação e atualiza a senha do usuário que está setornando ativo. Para obter mais informações sobre essa estratégia de rotação, consulte Executar arotação de segredos do AWS Secrets Manager alternando entre dois usuários existentes (p. 126).

Considerações

O Secrets Manager fornece essa opção como a opção de “alta disponibilidade” porque aversão antiga do segredo continua a funcionar e a lidar com solicitações de serviço enquantoprepara e testa a nova versão. O Secrets Manager não defasa a versão antiga até que osclientes mudem para a nova versão. Não ocorre nenhum tempo de inatividade ao alterarentre versões.Essa opção exige que a função Lambda clone as permissões do usuário original e aplique-asao novo usuário. Em seguida, a função alterna entre os dois usuários com cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere as permissões dosdois usuários.

• Personalizar a função: é possível personalizar a função de rotação do Lambda fornecida pelo SecretsManager para atender aos requisitos de sua organização. Por exemplo, você pode estender a fase

90

Page 97: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon

RDS secreta da base de dados

testSecret da função (p. 121) para testar a nova versão com verificações específicas ao aplicativopara garantir que o novo segredo funciona conforme esperado. Para obter instruções, consultePersonalização do Lambda função de rotação fornecida pelo Gestor de Segredos (p. 96).

Tópicos• Permitir a rotação para um Amazon RDS secreta da base de dados (p. 91)• Personalização do Lambda função de rotação fornecida pelo Gestor de Segredos (p. 96)

Permitir a rotação para um Amazon RDS secreta dabase de dadosPode ativar a rotação para um segredo com credenciais para um suportado Amazon RDS base dedados (p. 4) usando o Consola de gestão de segredos da AWS (p. 91), o AWS CLIou um dos AWSSDKs.

Warning

Habilitar a rotação faz com que o segredo rotacione uma vez imediatamente depois de salvaro segredo. Antes de habilitar a rotação, verifique se todos os aplicativos foram atualizadosusando essas credenciais secretas para recuperar o segredo do Secrets Manager. As credenciaisoriginais podem não ser utilizáveis após a rotação inicial. Qualquer aplicativo que não foratualizado falhará assim que as credenciais antigas se tornarem inválidas.

Pré-requisitos: Requisitos de rede para ativar a rotação

Para habilitar a rotação com êxito, você deve configurar corretamente o ambiente de rede.

• lá estão Lambda função deve ser capaz de comunicar com a base de dados. Se sua instância debanco de dados do RDS estiver sendo executada em uma VPC, é recomendável configurar a funçãodo Lambda para ser executada na mesma VPC. Isso permite conectividade direta entre a função derotação e seu serviço. Para configurar isso, na página de detalhes da função do Lambda, role parabaixo até a seção Network (Rede) e escolha a VPC na lista suspensa para que corresponda à de suainstância. Verifique também se os grupos de segurança do EC2 anexados a sua instância habilitam acomunicação entre a instância e o Lambda.

• lá estão Lambda função deve ser capaz de comunicar com o Secrets Manager ponto final do serviço. Sea função de rotação do Lambda puder acessar a Internet, porque você não configurou a função para serexecutada em uma VPC ou porque a VPC tem um gateway NAT anexado, você poderá usar qualquerendpoint disponível publicamente para o Secrets Manager. Como alternativa, se você configurar afunção do Lambda para ser executada em uma VPC sem acesso à Internet, poderá configurar a VPCcom um endpoint de serviço privado do Secrets Manager (p. 88).

Habilitar e configurar a rotação para um segredo do banco de dados compatível do Amazon RDS

Siga as etapas em uma das seguintes guias:

Como usar o Console de Gerenciamento da AWS

Permissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter permissões fornecidas pelasseguintes políticas gerenciadas:

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

91

Page 98: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon

RDS secreta da base de dados

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

2. Escolha o nome do segredo do qual você deseja habilitar a rotação.3. Na seção Configure automatic rotation (Configurar rotação automática), selecione Enable automatic

rotation (Habilitar rotação automática). Isso habilita os outros controles nesse seção.4. Em Select rotation interval (Selecionar intervalo de rotação), selecione um dos valores pré-definidos

— ou selecione Custom (Personalizar) e, em seguida, digite o número de dias desejado entre asrotações. Se você estiver rotacionando o segredo para atender a requisitos de conformidade, érecomendável definir esse valor para pelo menos um dia a menos que o intervalo exigido pelaconformidade.

Secrets Manager agenda a próxima rotação quando a anterior é concluída. Secrets Manageragenda a data adicionando o intervalo de rotação (número de dias) para a data real da últimarotação. O serviço escolhe a hora dentro da janela de data de 24 horas disponível de formaaleatório. O minuto também é escolhido aleatoriamente, mas é pesado com relação ao topo da horae influenciada pela variedade dos fatores que ajudam a distribuir carga.

Note

Se você usar a função do Lambda fornecida pelo Secrets Manager para alternar entre doisusuários, o console usará esse modelo se você escolher a segunda opção de “segredomestre” na próxima etapa, então você deve definir o período de rotação para metadedo intervalo mínimo especificado pela conformidade. O Secrets Manager mantém ascredenciais antigas disponíveis, se não forem usadas ativamente, para um ciclo de rotaçãoadicional. O Secrets Manager invalida as credenciais antigas somente depois de atualizaro usuário com uma nova senha depois da segunda rotação.Se você modificar a função de rotação para invalidar as credenciais antigas imediatamentedepois que o novo segredo ficar ativo, poderá estender o intervalo de rotação para omínimo exigido pela conformidade total. Deixar as credenciais antigas ativas para um cicloadicional com o rótulo de preparação AWSPREVIOUS fornece um conjunto de credenciaiscomo o último em boas condições que pode ser usado para recuperação rápida. Seocorrer algo que invalide as credenciais atuais, você poderá simplesmente mover o rótulode preparação AWSCURRENT para a versão com o rótulo AWSPREVIOUS. Assim, seusclientes conseguirão acessar o recurso novamente. Para obter mais informações, consulteExecutar a rotação de segredos do AWS Secrets Manager alternando entre dois usuáriosexistentes (p. 126).

5. Escolha uma das seguintes opções:• Quer criar um novo Lambda função de rotação

a. Selecione Create a new Lambda function (Criar função do Lambda) para executar a rotação.b. Em Lambda function name (Nome da função do Lambda), insira o nome a ser atribuído à

função do Lambda que o Secrets Manager cria para você.c. Especifique o segredo com credenciais que a função de rotação pode usar. As credenciais

devem conter permissões para atualizar o nome de usuário e a senha no banco de dadosprotegido.• Use este segredo: Escolha esta opção se as credenciais neste segredo tiverem permissão

na base de dados para alterar a palavra-passe. Escolher essa opção faz com que o SecretsManager crie uma função do Lambda alternando segredos com um único usuário e altere asenha em cada rotação.

92

Page 99: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon

RDS secreta da base de dados

Considerations

O Secrets Manager fornece essa opção como uma opção de “baixadisponibilidade”. Podem ocorrer falhas de login entre o momento em que a rotaçãoremove a senha antiga e o momento em que a senha atualizada se torna acessívelcomo a nova versão do segredo. Essa janela de tempo pode ser muito curta —na ordem de um segundo ou menos. Se você escolher essa opção, verifique seos aplicativos cliente implementam uma estratégia de "backoff e repetição comtremulação" apropriada em seus códigos. Os aplicativos devem gerar um errosomente se houver várias falhas de login durante um período mais longo.

• Use um segredo que eu tenha guardado anteriormente AWS Secrets Manager: Selecioneesta opção se as credenciais no segredo atual não tiverem permissões para atualizar, ou seprecisar de disponibilidade elevada para o segredo. Para escolher essa opção, é necessáriocriar um segredo mestre separado com credenciais com permissões para atualizar ascredenciais do segredo. Em seguida, selecione o segredo mestre na lista.

Selecionar essa opção faz com que o Secrets Manager crie uma função do Lambda quealterna segredos ao criar um usuário e uma senha a cada rotação e tornando o usuárioantigo obsoleta.

Considerations

O Secrets Manager fornece essa opção como a opção de “alta disponibilidade”porque a versão antiga do segredo continua a funcionar e a lidar com solicitaçõesde serviço enquanto prepara e testa a nova versão. O Secrets Manager não defasaa versão antiga até que os clientes mudem para a nova versão. Não ocorre nenhumtempo de inatividade ao alterar entre versões.Essa opção exige que a função Lambda clone as permissões do usuário originale aplique-as ao novo usuário. Em seguida, a função alterna entre os dois usuárioscom cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere aspermissões dos dois usuários.

• Quer usar um Lambda função que já criou para outro segredoa. Selecione Use an existing Lambda function to perform rotation (Usar uma função existente do

Lambda para executar rotação).b. Escolha uma função do Lambda na lista suspensa.c. Especifique o tipo de função de rotação:

• Rotação de utilizador único: Uma função de rotação para um segredo que armazenacredenciais para um utilizador com permissões para alterar a sua palavra-passe. SecretsManager cria este tipo de função quando escolhe a opção Use este segredo.

• Rotação multi-utilizador: Uma função de rotação para um segredo que armazena credenciaispara um utilizador que não pode alterar a sua palavra-passe. A função requer um segredomestre separado que armazene credenciais de um usuário com permissão para alterar ascredenciais desse usuário do segredo. O Secrets Manager cria esse tipo de função quandovocê escolhe a opção Use a secret that I have previously stored in AWS Secrets Manager(Usar um segredo que armazenei anteriormente no AWS Secrets Manager).

d. Se você especificou a segunda opção de "segredo mestre", também deverá escolher osegredo que pode fornecer as credenciais do usuário mestre. As credenciais no segredomestre devem ter permissão para atualizar as credenciais armazenadas nesse segredo.

6. Selecione Save (Salvar) para armazenar as alterações e acionar a rotação inicial do segredo.

Se você não tiver um ARN para uma função do Lambda atribuída ao segredo, o Secrets Managercriará a função, atribuirá todas as permissões necessárias e configurará a função para funcionar comseu banco de dados. O Secrets Manager faz a contagem regressiva do número de dias especificado

93

Page 100: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon

RDS secreta da base de dados

no intervalo de rotação. Quando o intervalo chegar a zero, o Secrets Manager alternará o segredonovamente e reiniciará o intervalo para o próximo ciclo. Isso continua até você desabilitar a rotação.

Uso de operações AWS CLI ou SDKPermissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter as permissões fornecidaspelas seguintes políticas gerenciadas:

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

Você pode usar os seguintes comandos do Secrets Manager para configurar a rotação de um segredoexistente para um banco de dados do Amazon RDS compatível:

• API/SDK: RotateSecret• AWS CLI: RotateSecret

Você também precisa usar comandos do AWS CloudFormation e do AWS Lambda. Consulte adocumentação desses serviços para obter mais informações sobre os seguintes comandos.

Important

A função de rotação determina o formato exato do valor do segredo usado em seu segredopela função de rotação que usa esse segredo. Para obter detalhes sobre o que cada funçãode rotação requer para o valor secreto, consulte o Esperado SecretString Valor sob a funçãode rotação relevante em Modelos da AWS que podem ser usados para criar funções derotação do Lambda (p. 171).

Criar uma função de rotação do Lambda usando um modelo do AWS Serverless ApplicationRepository.

Veja um exemplo de uma sessão da AWS CLI que executa o equivalente da configuração de rotaçãobaseada no console, descrita na guia Como usar o Console de Gerenciamento da AWS. Você criaa função usando um conjunto de alterações do AWS CloudFormation. Em seguida, você configura afunção resultante com as permissões necessárias. Finalmente, você configura o segredo com o ARNda função concluída e alterna uma vez para testá-lo.

O exemplo a seguir usa o modelo genérico e, portanto, o modelo usa o último ARN mostradoanteriormente.

O primeiro comando configura um AWS CloudFormation alteração baseada no modelo fornecido peloSecrets Manager.

Se o seu banco de dados ou serviço residir em uma VPC fornecida pelo Amazon VPC, você deveráincluir o quarto dos comandos a seguir para configurar a função para se comunicar com essa VPC. Sevocê não tiver uma VPC, poderá ignorar esse comando.

Além disso, se a sua VPC não tiver acesso à Internet pública, você deverá configurar a VPC com umendpoint de serviço privado para o Secrets Manager. O quinto dos comandos a seguir faz isso.

Você pode usar o parâmetro --application-id para especificar qual modelo deve ser usado.O valor é o ARN do modelo. Para a lista de modelos fornecidos pela AWS e seus ARNs, consulteModelos da AWS que podem ser usados para criar funções de rotação do Lambda (p. 171).

Os modelos também exigem parâmetros adicionais fornecidos com --parameter-overrides,conforme mostrado no exemplo a seguir. O modelo de rotação requer que o parâmetro envie duasinformações como pares de Nome e valor para o modelo que afeta a criação da função de rotação:

94

Page 101: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon

RDS secreta da base de dados

• endpoint – a URL do endpoint de serviço que você deseja que a função de rotação consulte.Normalmente, é https://secretsmanager.region.amazonaws.com.

• functionname – o nome da função de rotação do Lambda concluída que é criada por esse processo.

$ aws serverlessrepo create-cloud-formation-change-set \ --application-id arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate \ --parameter-overrides '[{"Name":"endpoint","Value":"https://secretsmanager.region.amazonaws.com"},{"Name":"functionName","Value":"MyLambdaRotationFunction"}]' \ --stack-name MyLambdaCreationStack{ "ApplicationId": "arn:aws:serverlessrepo:us-west-2:297356227824:applications/SecretsManagerRDSMySQLRotationSingleUser", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE"}

O próximo comando executa o conjunto de alterações que você acabou de criar. O parâmetro change-set-name é oriundo da saída de ChangeSetId do comando anterior. Este comando não produz saída.

$ aws cloudformation execute-change-set --change-set-name arn:aws:cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE

O comando a seguir concede ao serviço Secrets Manager permissão para chamar a função. A saídamostra a permissão adicionada à política de confiança da função.

$ aws lambda add-permission \ --function-name MyLambdaRotationFunction \ --principal secretsmanager.amazonaws.com \ --action lambda:InvokeFunction \ --statement-id SecretsManagerAccess{ "Statement": "{\"Sid\":\"SecretsManagerAccess\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"secretsmanager.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-west-2:123456789012:function:MyLambdaRotationFunction\"}"}

O Secrets Manager exigirá o comando a seguir somente se você executar seu banco de dados emuma VPC. Se você não executar o banco de dados em uma VPC, ignore esse comando. Procureas informações da VPC de sua instância de banco de dados do Amazon RDS usando o console doAmazon RDS ou o comando aws rds describe-instances da CLI. Adicione as informações aocomando a seguir e execute-o.

$ aws lambda update-function-configuration \ --function-name arn:aws:lambda:us-west-2:123456789012:function:MyLambdaRotationFunction \ --vpc-config SubnetIds=<COMMA SEPARATED LIST OF VPC SUBNET IDS>,SecurityGroupIds=<COMMA SEPARATED LIST OF SECURITY GROUP IDs>

Se a VPC com sua instância de banco de dados e função de rotação do Lambda não tiver acesso àInternet, você deverá configurar a VPC com um endpoint de serviço privado do Secrets Manager. Issopermite que a função de rotação acesse o Secrets Manager em um endpoint na VPC.

95

Page 102: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPersonalização do Lambda função de

rotação fornecida pelo Gestor de Segredos

$ aws ec2 create-vpc-endpoint --vpc-id <VPC ID> / --vpc-endpoint-type Interface / --service-name com.amazonaws.<region>.secretsmanager / --subnet-ids <COMMA SEPARATED LIST OF VPC SUBNET IDS> / --security-group-ids <COMMA SEPARATED LIST OF SECURITY GROUP IDs> / --private-dns-enabled

Se você criou uma função usando um modelo que exige um segredo mestre, também será necessárioadicionar a seguinte instrução à política da função. Isso concede permissão para a função de rotaçãorecuperar o valor do segredo mestre. Para instruções completas, consulte Conceder uma permissão àfunção de rotação para acessar um segredo mestre separado (p. 55).

{ "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:region:123456789012:secret:MyDatabaseMasterSecret", "Effect": "Allow" },

Finalmente, você pode aplicar a configuração da rotação ao segredo e executar a rotação inicial.

$ aws secretsmanager rotate-secret \ --secret-id production/MyAwesomeAppSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:123456789012:function:aws-serverless-repository-SecretsManagerRDSMySQLRo-10WGBDAXQ6ZEH \ --rotation-rules AutomaticallyAfterDays=7

É recomendável que, se você quiser criar sua própria função de rotação do Lambda paraum banco de dados do Amazon RDS compatível, siga as etapas anteriores que usam oSecretsManagerRotationTemplate modelo do AWS CloudFormation. O Secrets Managerconfigura a maioria das permissões e definições da configuração para você.

Personalização do Lambda função de rotaçãofornecida pelo Gestor de SegredosÉ possível personalizar a função de rotação do Lambda para atender aos requisitos de segurançaexclusivos de sua organização. Tais requisitos podem incluir:

• Adicionar testes adicionais na nova versão do segredo. Verificar se as permissões estão associadascorretamente às novas credenciais.

• Usar uma estratégia para alternar os segredos diferente da usada pela função do Lambda fornecida peloSecrets Manager.

Para personalizar a função, primeiro é necessário descobrir qual função o Secrets Manager criou paravocê. Se não puder encontrar o ARN da função no console do Secrets Manager, você poderá recuperá-lousando a AWS CLI ou as operações equivalentes do AWS SDK.

$ aws secretsmanager describe-secret --secret-id MyDatabaseSecret

Encontre o valor de RotationLambdaARN na resposta.

Para editar a função de rotação Lambda

96

Page 103: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon Redshift

Siga as etapas em uma das seguintes guias:

Using the Secrets Manager console

1. Determine o nome da função de rotação Lambda para o segredo:a. Na lista de segredos, escolha o nome do segredo do qual modificar a rotação.b. Na seção Configuração da rotação, examine o ARN da rotação. A parte do ARN depois de

:function: é o nome da função.2. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.3. Escolha o nome da função de rotação do Lambda que você deseja modificar.4. Faça as alterações necessárias à função.

Using the AWS CLI or AWS SDK operations

1. Determine o nome da função de rotação Lambda para o segredo. Para fazer isso, execute oseguinte comando e examine a parte do RotationLambdaARN após :function:.

$ describe-secret --secret-id MySecret{ "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-abc123", "Name": "MySecret", "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:name_of_rotation_lambda_function", "LastChangedDate": 1519940941.014, "SecretVersionsToStages": { "5eae5e4a-a683-469e-96e7-af9a8180fba5": [ "AWSCURRENT" ] }}

2. Examine o valor da resposta RotationLambdaARN. O ARN de sua função de rotação do Lambdae a última parte definem o nome da função.

3. Faça login no Console de gerenciamento da AWS e abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.

4. Selecione o nome da função do Lambda identificado para ver os detalhes da função.5. Na seção Function code (Código da função), edite o código-fonte da função. Para obter mais

informações sobre como codificar uma função Lambda especificamente para o Secrets Manager,consulte Descrição geral do Lambda função de rotação (p. 119). Em AWS Lambda DeveloperGuide. As funções do Lambda são compatíveis com o ambiente do Python 2.7.

Para obter mais informações sobre as opções e as técnicas de codificação da função Lambda, consulte oAWS Lambda Developer Guide.

Para obter mais informações sobre como codificar sua própria função de rotação do Secrets Manager,consulte Compreender e personalizar o seu Lambda função de rotação (p. 118).

Rotação de segredos para o Amazon RedshiftÉ possível configurar o AWS Secrets Manager para fazer a rotação do segredo automaticamente para oAmazon Redshift. O Secrets Manager usa uma função do Lambda fornecida pelo Secrets Manager.

O Secrets Manager oferece suporte a bancos de dados do Amazon Redshift

97

Page 104: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon Redshift

O Secrets Manager é compatível com o Amazon Redshift, o que significa que quando você habilita arotação, o Secrets Manager fornece uma função de rotação do Lambda completa e pronta para execução.

Ao habilitar a rotação para Credentials for Redshift (Credenciais para o Redshift) como o tipo de segredo,o Secrets Manager pode criar e configurar automaticamente uma função de rotação do Lambda paravocê. O Secrets Manager fornece ao segredo o nome de recurso da Amazon (ARN) da função. O SecretsManager cria a função do IAM associada à função e configura-a com todas as permissões necessárias.Como alternativa, se você já tiver outro segredo que usa a mesma estratégia de rotação que deseja usarcom o novo segredo, você poderá especificar o ARN da função existente e usar a estratégia de rotaçãopara os dois segredos.

Se você executar o cluster do Amazon Redshift em uma VPC fornecida pela Amazon VPC e essa VPCnão tiver acesso à Internet pública, o Secrets Manager também configurará a função do Lambda paraser executada nessa VPC. Além disso, a função de rotação do Lambda deve poder acessar um endpointde serviço do Secrets Manager para chamar as operações necessárias da API. Se um ou mais de seusrecursos na VPC precisarem se comunicar com a Internet, você poderá configurar a VPC com um gatewayNAT para habilitar a função de rotação do Lambda para consultar o endpoint de serviço público do SecretsManager. Se você não precisar se comunicar com a Internet, configure a VPC com um endpoint de serviçoprivado do Secrets Manager (p. 88) que seja acessível de dentro da VPC.

Caso contrário, geralmente, você só precisa fornecer alguns detalhes que determinam qual modelo usarpara criar a função do Lambda:

• Especifique o segredo com credenciais com permissões para fazer a rotação do segredo: às vezes, ousuário poderá alterar a própria senha. Em outros casos, o usuário tem permissões muito restritas e nãopode alterar a própria senha. Em vez disso, você deve usar as credenciais de outro administrador ousuperusuário para alterar as credenciais do usuário.

Você deve especificar qual segredo a função de rotação pode usar para fazer a rotação das credenciais:• Use this secret (Usar este segredo): selecione essa opção se as credenciais no segredo atual tiverem

permissões para alterar a própria senha. Escolher essa opção faz com que o Secrets Managerimplemente uma função Lambda com uma estratégia de rotação que altera a senha de um únicousuário a cada rotação. Para obter mais informações sobre essa estratégia de rotação, consulteRotacionar segredos do AWS Secrets Manager para um usuário com uma senha (p. 122).

Considerações

O Secrets Manager fornece essa opção como uma opção de “baixa disponibilidade”. Podemocorrer falhas de login entre o momento em que a rotação remove a senha antiga e omomento em que a senha atualizada se torna acessível como a nova versão do segredo.Essa janela de tempo pode ser muito curta — na ordem de um segundo ou menos. Se vocêescolher essa opção, verifique se os aplicativos cliente implementam uma estratégia de"backoff e repetição com tremulação" apropriada em seus códigos. Os aplicativos devemgerar um erro somente se houver várias falhas de login durante um período mais longo.

• Use a secret that I have previously stored in AWS Secrets Manager (Usar um segredo que armazeneianteriormente no &ASMlong;): escolha essa opção se as credenciais do segredo atual tiverempermissões mais restritivas e não puderem ser usadas para atualizar as credenciais no serviçoprotegido. Ou escolha essa opção se você precisar de alta disponibilidade para o segredo. Paraescolher essa opção, crie um segredo mestre separado e credenciais com permissão para criare atualizar credenciais no serviço protegido. Em seguida, selecione esse segredo mestre na lista.Escolher essa opção faz com que o Secrets Manager implemente uma função Lambda. Essa funçãodo Lambda tem uma estratégia de rotação que clona o usuário inicial encontrado no segredo. Arotação alterna entre os dois usuários a cada rotação e atualiza a senha do usuário que está setornando ativo. Para obter mais informações sobre essa estratégia de rotação, consulte Executar arotação de segredos do AWS Secrets Manager alternando entre dois usuários existentes (p. 126).

98

Page 105: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

Considerações

O Secrets Manager fornece essa opção como a opção de “alta disponibilidade” porque aversão antiga do segredo continua a funcionar e a lidar com solicitações de serviço enquantoprepara e testa a nova versão. O Secrets Manager não defasa a versão antiga até que osclientes mudem para a nova versão. Não ocorre nenhum tempo de inatividade ao alterarentre versões.Essa opção exige que a função Lambda clone as permissões do usuário original e aplique-asao novo usuário. Em seguida, a função alterna entre os dois usuários com cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere as permissões dosdois usuários.

• É possível personalizar a função: você pode personalizar a função de rotação do Lambda fornecida peloSecrets Manager para atender aos requisitos de sua organização. Por exemplo, você pode estendera fase testSecret da função (p. 121) para testar a nova versão com verificações específicas aoaplicativo para garantir que o novo segredo funciona conforme esperado. Para obter instruções, consultePersonalização do Lambda função de rotação fornecida pelo Gestor de Segredos (p. 96).

Tópicos• Permitir a rotação para um Amazon Redshift secreto (p. 99)

Permitir a rotação para um Amazon Redshift secretoPode ativar a rotação para um segredo com credenciais para um Amazon Redshift serviço, utilizando oConsola de gestão de segredos da AWS (p. 100), o AWS CLIou um dos AWS SDKs.

Warning

Habilitar a rotação faz com que o segredo rotacione uma vez imediatamente depois de salvar osegredo. Antes de habilitar a rotação, atualize todos os aplicativos que usam essas credenciaisde segredo para recuperar o segredo no Secrets Manager. As credenciais originais podem nãoser utilizáveis após a rotação inicial. Qualquer aplicativo não atualizado falhará assim que ascredenciais antigas se tornarem inválidas.

Pré-requisitos: Requisitos de rede para ativar a rotação

Para habilitar a rotação, seu ambiente de rede deve estar configurado corretamente.

• lá estão Lambda função deve ser capaz de comunicar com o Amazon Redshift serviço. Se o cluster doAmazon Redshift estiver sendo executado em uma VPC, recomendamos configurar a função do Lambdapara ser executada na mesma VPC. Isso permite conectividade direta entre a função de rotação e seuserviço. Para configurar isso, na página de detalhes da função do Lambda, role para baixo até a seçãoNetwork (Rede) e escolha a VPC na lista suspensa para que corresponda àquela que está executandosua instância. Você também deve garantir que os grupos de segurança do EC2 anexados ao clusterpermitam a comunicação entre o cluster e o Lambda.

• lá estão Lambda função deve ser capaz de comunicar com o Secrets Manager ponto final do serviço. Sesua função de rotação do Lambda puder acessar a Internet, porque a função não está configurada paraexecutar em uma VPC ou porque a VPC tem um gateway NAT anexado, você poderá usar qualquerendpoint disponível publicamente para o Secrets Manager. Como alternativa, se você configurar afunção do Lambda para ser executada em uma VPC sem acesso à Internet, poderá configurar a VPCcom um endpoint de serviço privado do Secrets Manager (p. 88).

Habilitar e configurar a rotação para um segredo de cluster compatível do Amazon Redshift

Siga as etapas em uma das seguintes guias:

99

Page 106: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

Como usar o Console de Gerenciamento da AWS

Permissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter as permissões fornecidaspelas seguintes políticas gerenciadas:

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

2. Escolha o nome do segredo do qual habilitar a rotação.3. Na seção Configure automatic rotation (Configurar rotação automática), selecione Enable automatic

rotation (Habilitar rotação automática). Isso habilita os outros controles nesse seção.4. Em Select rotation interval (Selecionar intervalo de rotação), selecione um dos valores pré-definidos

— ou selecione Custom (Personalizar) e, em seguida, digite o número de dias desejado entreas rotações. Se você fizer a rotação do segredo para atender a requisitos de conformidade,recomendamos definir esse valor como pelo menos um dia a menos que o intervalo exigido pelaconformidade.

Secrets Manager agenda a próxima rotação quando a anterior é concluída. Secrets Manageragenda a data adicionando o intervalo de rotação (número de dias) para a data real da últimarotação. O serviço escolhe a hora dentro da janela de data de 24 horas disponível de formaaleatório. O minuto também é escolhido aleatoriamente, mas é pesado com relação ao topo da horae influenciada pela variedade dos fatores que ajudam a distribuir carga.

Note

Se você usar a função do Lambda fornecida pelo Secrets Manager para alternar entre doisusuários, o console usará esse modelo se você escolher a segunda opção de “segredomestre” na próxima etapa, então você deve definir o período de rotação para metade dointervalo mínimo especificado pela conformidade. O Secrets Manager retém as credenciaisantigas, se não forem usadas ativamente, por um ciclo de rotação adicional e só invalidaas credenciais antigas depois de atualizar o usuário com uma nova senha após a segundarotação.Se você modificar a função de rotação para invalidar as credenciais antigas imediatamentedepois que o novo segredo ficar ativo, poderá estender o intervalo de rotação para omínimo exigido pela conformidade total. Deixar as credenciais antigas ativas para um cicloadicional com o rótulo de preparação AWSPREVIOUS fornece um conjunto de credenciaiscomo o "último em boas condições" que pode ser usado para recuperação rápida. Seocorrer algo que invalide as credenciais atuais, você poderá simplesmente mover o rótulode preparação AWSCURRENT para a versão com o rótulo AWSPREVIOUS. Assim, seusclientes conseguirão acessar o recurso novamente. Para obter mais informações, consulteExecutar a rotação de segredos do AWS Secrets Manager alternando entre dois usuáriosexistentes (p. 126).

5. Escolha uma das seguintes opções:• Quer criar um novo Lambda função de rotação

a. Selecione Create a new Lambda function (Criar função do Lambda) para executar a rotação.b. Em Lambda function name (Nome da função do Lambda), insira o nome a ser atribuído à

função do Lambda que o Secrets Manager cria para você.c. Especifique o segredo com credenciais que a função de rotação pode usar. Elas devem ter

permissões para atualizar o nome de usuário e a senha no serviço protegido.

100

Page 107: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

• Use este segredo: Escolha esta opção se as credenciais neste segredo tiverem permissãono serviço para alterar a sua palavra-passe. Selecionar essa opção faz com que o SecretsManager crie uma função do Lambda que alterna segredos com um único usuário depois dealterar a senha a cada rotação.

Note

O Secrets Manager fornece essa opção como uma opção de “baixadisponibilidade”. Podem ocorrer falhas de login entre o momento em que a rotaçãoremove a senha antiga e o momento em que a senha atualizada se torna acessívelcomo a nova versão do segredo. Essa janela de tempo pode ser muito curta — naordem de um segundo ou menos.Se você escolher essa opção, verifique se os aplicativos cliente implementam umaestratégia de "backoff e repetição com tremulação" apropriada em seus códigos. Osaplicativos devem gerar um erro somente se houver várias falhas de login duranteum período mais longo.

• Use um segredo que eu tenha guardado anteriormente AWS Secrets Manager: Selecioneesta opção se as credenciais no segredo atual não tiverem permissões para se atualizar, ouse precisar de disponibilidade elevada para o segredo. Para selecionar essa opção, vocêdeve criar um segredo "mestre" separado com credenciais que possuem permissões paraatualizar as credenciais desse segredo. Em seguida, selecione o segredo mestre na lista.Selecionar essa opção faz com que o Secrets Manager crie uma função do Lambda quealterna segredos ao criar um usuário e uma senha a cada rotação e tornando o usuárioantigo obsoleta.

Note

O Secrets Manager fornece essa opção como a opção de “alta disponibilidade”porque a versão antiga do segredo continua a funcionar e a lidar com solicitaçõesde serviço enquanto prepara e testa a nova versão. O Secrets Manager não defasaa versão antiga até que os clientes mudem para a nova versão. Não ocorre nenhumtempo de inatividade ao alterar entre versões.Essa opção exige que a função Lambda clone as permissões do usuário originale aplique-as ao novo usuário. Em seguida, a função alterna entre os dois usuárioscom cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere aspermissões dos dois usuários.

• Quer usar um Lambda função que já criou para outro segredoa. Selecione Use an existing Lambda function to perform rotation (Usar uma função existente do

Lambda para executar rotação).b. Escolha uma função do Lambda na lista suspensa.c. Especifique o tipo de função de rotação escolhido:

• Rotação de utilizador único: Uma função de rotação para um segredo que armazenacredenciais para um utilizador com permissões para alterar a sua palavra-passe. SecretsManager cria este tipo de função quando escolhe a opção Use este segredo quando criaruma função.

• Rotação multi-utilizador: Uma função de rotação para um segredo que armazena credenciaispara um utilizador sem permissão, altera a sua palavra-passe. A função requer um segredomestre separado que armazene credenciais de um usuário com permissão para alterar ascredenciais do segredo desse usuário.

• O Secrets Manager cria esse tipo de função quando você escolhe a opção Use a secretthat I have previously stored in AWS Secrets Manager (Usar um segredo que armazeneianteriormente no AWS Secrets Manager).

d. Se você especificou a segunda opção de "senha mestre", deverá escolher também o segredoque fornece as credenciais do usuário mestre. As credenciais no segredo mestre devem terpermissão para atualizar as credenciais armazenadas nesse segredo.

101

Page 108: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

6. Selecione Save (Salvar) para armazenar as alterações e acionar a rotação inicial do segredo.7. Se você tiver optado pela rotação do segredo com um segredo mestre separado, deverá conceder

manualmente a permissão de função de rotação a seu Lambda para acessar o segredo mestre.Siga estas instruções:a. Quando a configuração da rotação for concluída, a seguinte mensagem poderá ser exibida na

parte superior da página:

O seu segredo <secret name> foi guardado com sucesso e a rotação secreta está activada.Para concluir a configuração da rotação, é necessário fornecer o função permissões para acederao valor do sigilo <Amazon Resource Name (ARN) of your master secret>.

Se isso aparecer, você deverá modificar manualmente a política da função para conceder àfunção de rotação a permissão secretsmanager:GetSecretValue para acessar o segredomestre. O Secrets Manager não pode fazer isso para você por motivos de segurança. A rotaçãodo segredo falhará até que você conclua as etapas a seguir, caso não possa acessar o segredomestre.

b. Copie o nome de recurso da Amazon (ARN) da mensagem para a área de transferência.c. Escolha o link na palavra "role" (função) da mensagem. Isso abre o console do IAM na página de

detalhes da função anexada à função de rotação do Lambda que o Secrets Manager criou paravocê.

d. Na guia Permissions (Permissões), selecione Add inline policy (Adicionar política em linha) edefina os seguintes valores:• Em Service (Serviço), escolha Secrets Manager (Gerenciador de segredos).• para Ações, escolher GetSecretValue.• Em Resources (Recursos), escolha Add ARN (Adicionar ARN) ao lado da entrada do tipo de

recurso secret (segredo).• Na caixa de diálogo Add ARN(s) (Adicionar ARN(s)), cole o ARN do segredo mestre copiado

anteriormente.e. Selecione Review policy (Rever política) e escolha, Create policy (Criar política).

Note

Como alternativa ao uso do editor visual, conforme descrito nas etapas anteriores, vocêpode colar a instrução a seguir em uma política existente ou nova:

{ "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "<ARN of the master secret>" }

f. Retorne para o console do AWS Secrets Manager.

Se você ainda não tem um ARN para uma função do Lambda atribuída ao segredo, o SecretsManager cria a função, atribui todas as permissões necessárias e configura a função para funcionarcom o serviço. O Secrets Manager faz a contagem regressiva do número de dias especificado nointervalo de rotação. Quando o intervalo de rotação chega a zero, o Secrets Manager alterna osegredo novamente e reinicia o intervalo para o próximo ciclo. Isso continua até você desabilitar arotação.

Uso de operações AWS CLI ou SDK

Permissões mínimas

Para habilitar e configurar a rotação no console, você deve ter as permissões fornecidaspelas seguintes políticas gerenciadas:102

Page 109: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

Você pode usar os seguintes comandos do Secrets Manager para configurar a rotação de um segredoexistente para o Amazon Redshift:

• API/SDK: RotateSecret• AWS CLI: RotateSecret

Você também precisa usar comandos do AWS CloudFormation e do AWS Lambda. Consulte adocumentação desses serviços para obter mais informações sobre os seguintes comandos.

Important

A função de rotação que pretende utilizar com o segredo determina o formato exacto do valorsecreto que deve utilizar no seu segredo Para detalhes sobre o que cada função de rotaçãonecessita para o valor secreto, consulte o Esperado SecretString Valor sob a função derotação relevante em Modelos da AWS que podem ser usados para criar funções de rotaçãodo Lambda (p. 171).

Para criar uma função de rotação do Lambda usando um modelo do AWS Serverless ApplicationRepository

Veja um exemplo de uma sessão da AWS CLI que executa o equivalente da configuração de rotaçãobaseada no console descrita na guia Como usar o Console de Gerenciamento da AWS. Você cria afunção usando um conjunto de alterações do AWS CloudFormation. Em seguida, você configura afunção resultante com as permissões necessárias. Finalmente, você configura o segredo com o ARNda função concluída e alterna uma vez para testá-lo.

O exemplo a seguir usa o modelo genérico e, portanto, o modelo usa o último ARN mostradoanteriormente.

O primeiro comando configura um conjunto de alterações de um AWS CloudFormation com base nomodelo fornecido pelo Secrets Manager.

Se o serviço residir em uma VPC fornecida pela Amazon VPC, você deverá incluir o quarto doscomandos a seguir para configurar a função para se comunicar com essa VPC. Se nenhuma VPCestiver envolvida, você poderá ignorar esse comando.

Se sua VPC não tiver acesso à Internet, configure-a com um endpoint de serviço privado do SecretsManager. O quinto dos comandos a seguir faz isso.

Você pode usar o parâmetro --application-id para especificar qual modelo deve ser usado.O valor é o ARN do modelo. Para a lista de modelos fornecidos pela AWS e seus ARNs, consulteModelos da AWS que podem ser usados para criar funções de rotação do Lambda (p. 171).

Os modelos também exigem parâmetros adicionais fornecidos com --parameter-overrides,conforme mostrado no exemplo a seguir. O Secrets Manager requer esse parâmetro para enviar duasinformações, pois os pares de nome e valor do modelo afetam a criação da função de rotação:

• endpoint – a URL do endpoint de serviço que você deseja que a função de rotação consulte.Normalmente, é https://secretsmanager.region.amazonaws.com.

• functionname – o nome da função de rotação do Lambda concluída que é criada por esse processo.

$ aws serverlessrepo create-cloud-formation-change-set \

103

Page 110: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon Redshift secreto

--application-id arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate \ --parameter-overrides '[{"Name":"endpoint","Value":"https://secretsmanager.region.amazonaws.com"},{"Name":"functionName","Value":"MyLambdaRotationFunction"}]' \ --stack-name MyLambdaCreationStack{ "ApplicationId": "arn:aws:serverlessrepo:us-west-2:297356227824:applications/SecretsManagerRDSMySQLRotationSingleUser", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE"}

O próximo comando executa o conjunto de alterações que você acabou de criar. O parâmetro change-set-name é oriundo da saída de ChangeSetId do comando anterior. Este comando não produz saída.

$ aws cloudformation execute-change-set --change-set-name arn:aws:cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE

O comando a seguir concede ao serviço Secrets Manager permissão para chamar a função em seunome. A saída mostra a permissão adicionada à política de confiança da função.

$ aws lambda add-permission \ --function-name MyLambdaRotationFunction \ --principal secretsmanager.amazonaws.com \ --action lambda:InvokeFunction \ --statement-id SecretsManagerAccess{ "Statement": "{\"Sid\":\"SecretsManagerAccess\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"secretsmanager.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-west-2:123456789012:function:MyLambdaRotationFunction\"}"}

O Secrets Manager requer o seguinte comando se você executar seu serviço em uma VPC. Senão estiver, ignore esse comando. Encontre as informações da VPC do cluster do Amazon Redshiftusando o console do Amazon RDS ou o comando aws rds describe-instances da CLI. Depois,use as informações no seguinte comando e execute-o.

$ aws lambda update-function-configuration \ --function-name arn:aws:lambda:us-west-2:123456789012:function:MyLambdaRotationFunction \ --vpc-config SubnetIds=<COMMA SEPARATED LIST OF VPC SUBNET IDS>,SecurityGroupIds=<COMMA SEPARATED LIST OF SECURITY GROUP IDs>

Se a VPC com a instância do serviço e a função de rotação do Lambda não tiver acesso à Internet,configure a VPC com um endpoint de serviço privado do Secrets Manager. Isso permite que a funçãode rotação acesse o Secrets Manager em um endpoint na VPC.

$ aws ec2 create-vpc-endpoint --vpc-id <VPC ID> / --vpc-endpoint-type Interface / --service-name com.amazonaws.<region>.secretsmanager / --subnet-ids <COMMA SEPARATED LIST OF VPC SUBNET IDS> / --security-group-ids <COMMA SEPARATED LIST OF SECURITY GROUP IDs> /

104

Page 111: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon DocumentDB

--private-dns-enabled

Se você criou uma função usando um modelo que exige um segredo mestre, também será necessárioadicionar a seguinte instrução à política da função. Isso concede permissão para a função de rotaçãorecuperar o valor do segredo mestre. Para instruções completas, consulte Conceder uma permissão àfunção de rotação para acessar um segredo mestre separado (p. 55).

{ "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:region:123456789012:secret:MyDatabaseMasterSecret", "Effect": "Allow" },

Finalmente, você pode aplicar a configuração da rotação ao segredo e executar a rotação inicial.

$ aws secretsmanager rotate-secret \ --secret-id production/MyAwesomeAppSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:123456789012:function:aws-serverless-repository-SecretsManagerRDSMySQLRo-10WGBDAXQ6ZEH \ --rotation-rules AutomaticallyAfterDays=7

Para criar sua própria função de rotação do Lambda para o Amazon Redshift, recomendamosseguir as etapas anteriores que usam o SecretsManagerRotationTemplate modelo do AWSCloudFormation. O uso do modelo permite que o Secrets Manager configure a maioria das permissõese configurações para você.

Segredos rotativos para Amazon DocumentDBÉ possível configurar o AWS Secrets Manager para fazer automaticamente a rotação do segredo para oAmazon DocumentDB. O Secrets Manager usa uma função do Lambda fornecida pelo Secrets Manager.

Amazon DocumentDB é um serviço compatível

O Secrets Manager é compatível com o Amazon DocumentDB e fornece uma função de rotação doLambda completa e pronta para execução projetada para o Amazon DocumentDB.

Quando ativar a rotação por um segredo com Credenciais para DocumentDB como o tipo secreto, SecretsManager pode criar e configurar automaticamente um Lambda função de rotação para o utilizador. OSecrets Manager fornece ao segredo o nome de recurso da Amazon (ARN) da função. O Secrets Managercria a função do IAM associada à função e configura-a com todas as permissões necessárias. Comoalternativa, se já tiver outro segredo que use a mesma estratégia de rotação que deseja usar com o novosegredo, você poderá especificar o ARN da função existente e usá-lo para os dois segredos.

Se você executar a instância do Amazon DocumentDB em uma VPC fornecida pela Amazon VPC, e aVPC não tiver acesso à Internet pública, o Secrets Manager também configurará a função do Lambda paraexecução nessa VPC. A função de rotação do Lambda deve ter acesso a um endpoint do serviço SecretsManager para chamar as operações de API necessárias. Se um ou mais dos recursos na VPC precisaremse comunicar com a Internet, você poderá configurar a VPC com um gateway NAT para habilitar a funçãode rotação do Lambda para consultar o endpoint público do serviço Secrets Manager. Se não houver outranecessidade de comunicação com a Internet, você poderá configurar a VPC com um endpoint privado doserviço Secrets Manager (p. 88) acessível de dentro da VPC.

Caso contrário, normalmente você só precisará fornecer alguns detalhes para determinar qual modelo usarpara criar a função do Lambda:

105

Page 112: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de segredos do Amazon DocumentDB

• Especifique o segredo com credenciais e permissões para fazer a rotação do segredo: somente osuperusuáriopoderá alterar a própria senha. Outros usuários têm permissões restritas e não podemalterar sua própria senha. Use as credenciais de outro administrador ou do superusuário para alterar ascredenciais do usuário.

Você precisa especificar qual segredo a função de rotação pode usar para alternar as credenciais nobanco de dados protegido:• Use este segredo: Escolha esta opção se o segredo atual tiver super utilizador credenciais. Escolher

essa opção faz com que o Secrets Manager implemente uma função do Lambda com uma estratégiade rotação que altera a senha de um único usuário a cada rotação. Para obter mais informações sobreessa estratégia de rotação, consulte Rotacionar segredos do AWS Secrets Manager para um usuáriocom uma senha (p. 122).

Considerations

O Secrets Manager fornece essa opção como uma opção de “baixa disponibilidade”. Podemocorrer falhas de login entre o momento em que a rotação remove a senha antiga e omomento em que a senha atualizada se torna acessível como a nova versão do segredo.Essa janela de tempo pode ser muito curta — na ordem de um segundo ou menos.Se você escolher essa opção, verifique se os aplicativos cliente implementam uma estratégiade "backoff e repetição com tremulação" apropriada em seus códigos. Os aplicativos devemgerar um erro somente se houver várias falhas de login durante um período mais longo.

• Use um segredo que eu tenha guardado anteriormente AWS Secrets Manager: Selecione esta opçãose precisar de disponibilidade elevada para o segredo. Para selecionar essa opção, crie um segredo"mestre" separado com credenciais que contêm permissão para criar e atualizar credenciais noserviço protegido. Em seguida, selecione o segredo mestre na lista. Escolher essa opção faz com queo Secrets Manager implemente uma função Lambda. Essa função do Lambda tem uma estratégiade rotação que clona o usuário inicial encontrado no segredo. O Secrets Manager alterna entre osdois usuários a cada rotação e atualiza a senha do usuário que está se tornando ativo. Para obtermais informações sobre essa estratégia de rotação, consulte Executar a rotação de segredos do AWSSecrets Manager alternando entre dois usuários existentes (p. 126).

Note

O Secrets Manager fornece essa opção como a opção de "alta disponibilidade" porque aversão antiga do segredo continua a funcionar e a lidar com solicitações de serviço enquantoa nova versão é preparada e testada. O Secrets Manager não tornará a versão antigadefasada até a próxima rotação. Não ocorre nenhum tempo de inatividade ao alterar entreversões.Essa opção exige que a função Lambda clone as permissões do usuário original e aplique-asao novo usuário. Em seguida, a função alterna entre os dois usuários com cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere as permissões dosdois usuários.

• Pode personalizar a função: Você pode personalizar o Lambda fornecido pela Secrets Manager paracumprir os seus requisitos de segurança organizacional. Por exemplo, você pode estender o testSecretfase da função (p. 121) para testar a nova versão com verificações específicas da aplicação paragarantir que o novo segredo funciona como esperado. Para obter instruções, consulte Personalização doLambda função de rotação fornecida pelo Gestor de Segredos (p. 96).

Tópicos• Permitir a rotação para um Amazon DocumentDB secreto (p. 107)

106

Page 113: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

Permitir a rotação para um Amazon DocumentDBsecretoPode ativar a rotação para um segredo com credenciais para um Amazon DocumentDB base de dadosutilizando o Consola de gestão de segredos da AWS (p. 107), o AWS CLIou um dos AWS SDKs.

Warning

Habilitar a rotação faz com que o segredo rotacione uma vez imediatamente depois de salvar osegredo. Antes de habilitar a rotação, verifique se você atualizou todos os aplicativos usando ascredenciais do segredo para recuperar o segredo no Secrets Manager. As credenciais originaispodem não ser utilizáveis após a rotação inicial. Se você não atualizar todos os aplicativos,poderá encontrar erros conforme as credenciais antigas se tornam inválidas.

Pré-requisitos: Requisitos de rede para ativar a rotação

Para habilitar a rotação com êxito, configure seu ambiente de rede corretamente.

• lá estão Lambda função deve ser capaz de comunicar com a base de dados. Se executar o seuDocumentDB instância de base de dados numa VPC, recomendamos que configure o seu Lambda aexecutar no mesmo VPC. Isso permite conectividade direta entre a função de rotação e seu serviço.Para configurar isso, na página de detalhes da função do Lambda, role para baixo até a seção Network(Rede) e escolha a VPC na lista suspensa para que corresponda à sua instância. Verifique também seos grupos de segurança do EC2 anexados a sua instância habilitam a comunicação entre a instância e oLambda.

• lá estão Lambda função deve ser capaz de comunicar com o Secrets Manager ponto final do serviço. Sesua função de rotação do Lambda puder acessar a Internet, porque a função não está configurada paraexecutar em uma VPC ou porque a VPC tem um gateway NAT anexado, você poderá usar qualquerendpoint disponível publicamente do Secrets Manager. Como alternativa, se você configurar sua funçãodo Lambda para ser executada em uma VPC sem acesso à Internet, poderá configurar a VPC com umendpoint de serviço privado do Secrets Manager (p. 88).

Habilitar e configurar a rotação de um segredo do Amazon DocumentDB

Siga as etapas em uma das seguintes guias:

Como usar o Console de Gerenciamento da AWS

Permissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter as permissões fornecidaspelas seguintes políticas gerenciadas:

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

1. Faça login no console do AWS Secrets Manager em https://console.aws.amazon.com/secretsmanager/.

2. Escolha o nome do segredo do qual habilitar a rotação.3. Na seção Configure automatic rotation (Configurar rotação automática), selecione Enable automatic

rotation (Habilitar rotação automática). Isso habilita os outros controles nesse seção.4. Em Select rotation interval (Selecionar intervalo de rotação), selecione um dos valores pré-definidos

— ou selecione Custom (Personalizar) e, em seguida, digite o número de dias desejado entre as

107

Page 114: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

rotações. Se você rotacionar o segredo para atender a requisitos de conformidade, recomendamosdefinir esse valor para pelo menos um dia a menos que o intervalo exigido pela conformidade.

Secrets Manager agenda a próxima rotação quando a anterior é concluída. Secrets Manageragenda a data adicionando o intervalo de rotação (número de dias) para a data real da últimarotação. O serviço escolhe a hora dentro da janela de data de 24 horas disponível de formaaleatório. O minuto também é escolhido aleatoriamente, mas é pesado com relação ao topo da horae influenciada pela variedade dos fatores que ajudam a distribuir carga.

Note

Se você usar a função do Lambda fornecida pelo Secrets Manager para alternar entre doisusuários, o console usará esse modelo se você escolher a segunda opção de segredomestre na próxima etapa, e você deverá definir o período de rotação para a metade dointervalo mínimo especificado pela conformidade. O Secrets Manager retém as credenciaisantigas, se não forem usadas ativamente, por um ciclo de rotação adicional. Após asegunda rotação, o Secrets Manager invalida as credenciais antigas depois de atualizar ousuário com uma nova senha.Se você modificar a função de rotação para invalidar as credenciais antigas imediatamentedepois que o novo segredo ficar ativo, poderá estender o intervalo de rotação parao mínimo exigido pela conformidade total. Deixar as credenciais antigas ativas paraum ciclo adicional com o rótulo de preparação AWSPREVIOUS fornece um conjunto decredenciais como o último em boas condições que pode ser usado para recuperaçãorápida. Se ocorrer algo que invalide as credenciais atuais, você poderá simplesmentemover o rótulo de preparação AWSCURRENT para a versão com o rótulo AWSPREVIOUS.Você, então, pode acessar o recurso novamente. Para obter mais informações, consulteExecutar a rotação de segredos do AWS Secrets Manager alternando entre dois usuáriosexistentes (p. 126).

5. Escolha uma das seguintes opções:• Quer criar um novo Lambda função de rotação

a. Selecione Create a new Lambda function (Criar função do Lambda) para executar a rotação.b. Em Lambda function name (Nome da função do Lambda), insira o nome que deseja atribuir à

função do Lambda que o Secrets Manager cria para você.c. Especifique o segredo com credenciais que a função de rotação pode usar. Elas devem ter

permissões para atualizar o nome de usuário e a senha no banco de dados protegido.• Use este segredo: Escolha esta opção se as credenciais neste segredo tiverem permissão

na base de dados para alterar a sua palavra-passe. Selecionar essa opção faz com que oSecrets Manager crie uma função do Lambda que alterna segredos com um único usuárioque altera a senha a cada rotação.

Note

O Secrets Manager fornece essa opção como uma opção de baixa disponibilidade.Podem ocorrer falhas de login entre o momento em que a rotação remove a senhaantiga e o momento em que a senha atualizada se torna acessível como a novaversão do segredo. Essa janela de tempo pode ser muito curta — na ordem de umsegundo ou menos.Se você escolher essa opção, verifique se os aplicativos cliente implementam umaestratégia de "backoff e repetição com tremulação" apropriada em seus códigos. Osaplicativos devem gerar um erro somente se houver várias falhas de login duranteum período mais longo.

• Use um segredo que eu tenha guardado anteriormente AWS Secrets Manager: Selecioneesta opção se as credenciais no segredo atual não permitirem atualizar as permissões ouse precisar de uma disponibilidade elevada para o segredo. Para escolher essa opção,é necessário criar um segredo "mestre" separado com credenciais e permissões paraatualizar as credenciais do segredo. Em seguida, selecione o segredo mestre na lista.

108

Page 115: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

Selecionar essa opção faz com que o Secrets Manager crie uma função do Lambda quealterna segredos ao criar um usuário e uma senha a cada rotação e tornando o usuárioantigo obsoleta.

Note

O Secrets Manager fornece essa opção como uma opção de alta disponibilidadeporque a versão antiga do segredo continua a funcionar e a lidar com solicitaçõesde serviço enquanto prepara e testa a nova versão. O Secrets Manager não tornaráa versão antiga defasada até que os clientes mudem para a nova versão. Nãoocorre nenhum tempo de inatividade ao alterar entre versões.Essa opção exige que a função Lambda clone as permissões do usuário originale aplique-as ao novo usuário. Em seguida, a função alterna entre os dois usuárioscom cada rotação.Se você precisar alterar as permissões concedidas aos usuários, altere aspermissões dos dois usuários.

• Quer usar um Lambda função que já criou para outro segredoa. Selecione Use an existing Lambda function to perform rotation (Usar uma função existente do

Lambda para executar rotação).b. Escolha uma função do Lambda na lista suspensa.c. Especifique o tipo de função de rotação:

• Rotação de utilizador único: Uma função de rotação para um segredo que armazenacredenciais para um utilizador com permissões para alterar a sua palavra-passe. Você criaesse tipo de função ao escolher a opção Use this secret (Usar este segredo) ao criar umafunção.

• Rotação multi-utilizador: Uma função de rotação para um segredo que armazena credenciaispara um utilizador incapaz de alterar a sua palavra-passe. A função requer um segredomestre separado que armazene credenciais de um usuário com permissão para alterar ascredenciais do segredo desse usuário. Você cria esse tipo de função quando escolhe aopção Use a secret that I have previously stored in AWS Secrets Manager (Usar um segredoque armazenei anteriormente no AWS Secrets Manager).

d. Se você especificou a segunda opção de "senha mestra", deverá escolher também o segredoque pode fornecer as credenciais do usuário mestre. As credenciais no segredo mestre devemter permissão para atualizar as credenciais armazenadas nesse segredo.

6. Selecione Save (Salvar) para armazenar as alterações e acionar a rotação inicial do segredo.7. Se você tiver optado pela rotação do segredo com um segredo mestre separado, deverá conceder

manualmente a permissão de função de rotação a seu Lambda para acessar o segredo mestre.Siga estas instruções:a. Quando a configuração da rotação for concluída, a seguinte mensagem poderá ser exibida na

parte superior da página:

O seu segredo <secret name> foi guardado com sucesso e a rotação secreta está activada.Para concluir a configuração da rotação, é necessário fornecer o função permissões para acederao valor do sigilo <Amazon Resource Name (ARN) of your master secret>.

Se isso aparecer, você deverá modificar manualmente a política da função para conceder àfunção de rotação a permissão secretsmanager:GetSecretValue para acessar o segredomestre. O Secrets Manager não pode fazer isso para você por motivos de segurança. Se oSecrets Manager não puder acessar o segredo mestre, a rotação do segredo falhará até quevocê conclua as etapas a seguir.

b. Copie o nome de recurso da Amazon (ARN) da mensagem para a área de transferência.c. Escolha o link na palavra "role" (função) da mensagem. Isso abre o console do IAM na página de

detalhes da função anexada à função de rotação do Lambda que o Secrets Manager criou paravocê.

109

Page 116: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

d. Na guia Permissions (Permissões), selecione Add inline policy (Adicionar política em linha) edefina os seguintes valores:• Em Service (Serviço), escolha Secrets Manager (Gerenciador de segredos).• para Ações, escolher GetSecretValue.• Em Resources (Recursos), escolha Add ARN (Adicionar ARN) ao lado da entrada do tipo de

recurso secret (segredo).• Na caixa de diálogo Add ARN(s) (Adicionar ARN(s)), cole o ARN do segredo mestre copiado

anteriormente.e. Selecione Review policy (Rever política) e escolha, Create policy (Criar política).

Note

Como alternativa ao uso do editor visual, conforme descrito nas etapas anteriores, vocêpode colar a instrução a seguir em uma política existente ou nova:

{ "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "<ARN of the master secret>" }

f. Retorne para o console do AWS Secrets Manager.

Se você ainda não tiver um ARN para uma função do Lambda atribuída ao segredo, o SecretsManager criará a função, atribuirá todas as permissões necessárias e configurará a função parafuncionar com seu banco de dados. O Secrets Manager faz a contagem regressiva do número de diasespecificado no intervalo de rotação. Quando a contagem chega a zero, o Secrets Manager rotacionao segredo novamente e redefine o intervalo para o próximo ciclo. Isso continua até você desabilitar arotação.

Uso de operações AWS CLI ou SDK

Permissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter as permissões fornecidaspelas seguintes políticas gerenciadas:

• SecretsManagerReadWrite – fornece todas as permissões do Secrets Manager, doLambda e do AWS CloudFormation.

• IAMFullAccess – fornece as permissões do IAM necessárias para criar uma função eanexar uma política de permissão a ela.

Você pode usar os seguintes comandos do Secrets Manager para configurar a rotação de um segredoexistente para um banco de dados do Amazon RDS compatível:

• API/SDK: RotateSecret• AWS CLI: RotateSecret

Você também precisa usar comandos do AWS CloudFormation e do AWS Lambda. Consulte adocumentação desses serviços para obter mais informações sobre os seguintes comandos.

Important

A função de rotação determina o formato exato do valor do segredo que você deve usarem seu segredo. Para obter detalhes sobre cada requisito de função de rotação para ovalor secreto, consulte o Esperado SecretString Valor sob a função de rotação relevante

110

Page 117: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

em Modelos da AWS que podem ser usados para criar funções de rotação do Lambda (p. 171).

Criar uma função de rotação do Lambda usando um modelo do AWS Serverless ApplicationRepository

Veja a seguir um exemplo de sessão da AWS CLI que executa o equivalente da configuração darotação do console descrita na guia Como usar o Console de Gerenciamento da AWS. Você cria afunção usando um conjunto de alterações do AWS CloudFormation. Em seguida, você configura afunção resultante com as permissões necessárias. Finalmente, você configura o segredo com o ARNda função concluída e alterna uma vez para testá-lo.

O exemplo a seguir usa o modelo genérico e o último ARN mostrado anteriormente.

O primeiro comando configura um conjunto de alterações de um AWS CloudFormation com base nomodelo fornecido pelo Secrets Manager.

Se o seu banco de dados ou serviço residir em uma VPC fornecida pelo Amazon VPC, você deveráincluir o quarto dos comandos a seguir para configurar a função para se comunicar com essa VPC. Sevocê não tem uma VPC, é possível ignorar o comando.

Além disso, se a sua VPC não tiver acesso à Internet pública, você deverá configurar a VPC com umendpoint de serviço privado para o Secrets Manager. O quinto dos comandos a seguir faz isso.

Os modelos também exigem parâmetros adicionais fornecidos com --parameter-overrides,conforme mostrado no exemplo a seguir. Esse parâmetro exige que o Secrets Manager envie duasinformações como pares de nome/valor ao modelo que afetam a criação da função de rotação:

• endpoint – a URL do endpoint de serviço que você deseja que a função de rotação consulte.Normalmente, é https://secretsmanager.region.amazonaws.com.

• functionname – o nome da função de rotação do Lambda concluída que é criada por esse processo.

$ aws serverlessrepo create-cloud-formation-change-set \ --application-id &region-arn;serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate \ --parameter-overrides '[{"Name":"endpoint","Value":"https://secretsmanager.region.amazonaws.com"},{"Name":"functionName","Value":"MyLambdaRotationFunction"}]' \ --stack-name MyLambdaCreationStack{ "ApplicationId": "&region-arn;serverlessrepo:us-west-2:297356227824:applications/SecretsManagerRDSMySQLRotationSingleUser", "ChangeSetId": "&region-arn;cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "StackId": "&region-arn;cloudformation:us-west-2:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE"}

O próximo comando executa o conjunto de alterações que você acabou de criar. O parâmetrochange-set-name é oriundo da saída de ChangeSetId do comando anterior. Este comando nãoproduz saída.

$ aws cloudformation execute-change-set --change-set-name &region-arn;cloudformation:us-west-2:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE

O comando a seguir concede ao serviço Secrets Manager permissão para chamar a função para você.A saída mostra a permissão adicionada à política de confiança da função.

111

Page 118: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um Amazon DocumentDB secreto

$ aws lambda add-permission \ --function-name MyLambdaRotationFunction \ --principal secretsmanager.amazonaws.com \ --action lambda:InvokeFunction \ --statement-id SecretsManagerAccess{ "Statement": "{\"Sid\":\"SecretsManagerAccess\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"secretsmanager.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"&region-arn;lambda:us-west-2:123456789012:function:MyLambdaRotationFunction\"}"}

Se você executar seu banco de dados em um ambiente de VPC, o Secrets Manager exigirá o seguintecomando. Caso contrário, ignore este comando. Encontre as informações da VPC de sua instânciade banco de dados do Amazon RDS usando o console do Amazon RDS ou o comando aws rdsdescribe-instances da CLI. Adicione as informações ao comando a seguir e execute-o.

$ aws lambda update-function-configuration \ --function-name &region-arn;lambda:us-west-2:123456789012:function:MyLambdaRotationFunction \ --vpc-config SubnetIds=<COMMA SEPARATED LIST OF VPC SUBNET IDS>,SecurityGroupIds=<COMMA SEPARATED LIST OF SECURITY GROUP IDs>

Se sua VPC com sua instância de banco de dados e função de rotação do Lambda não tiver acesso àInternet, você deverá configurar a VPC com um endpoint de serviço privado do Secrets Manager. Issopermite que a função de rotação acesse o Secrets Manager em um endpoint na VPC.

$ aws ec2 create-vpc-endpoint --vpc-id <VPC ID> / --vpc-endpoint-type Interface / --service-name com.amazonaws.<region>.secretsmanager / --subnet-ids <COMMA SEPARATED LIST OF VPC SUBNET IDS> / --security-group-ids <COMMA SEPARATED LIST OF SECURITY GROUP IDs> / --private-dns-enabled

Se você criou uma função usando um modelo que exige um segredo mestre, também será necessárioadicionar a seguinte instrução à política da função. Isso concede permissão para a função de rotaçãorecuperar o valor do segredo mestre. Para instruções completas, consulte Conceder uma permissão àfunção de rotação para acessar um segredo mestre separado (p. 55).

{ "Action": "secretsmanager:GetSecretValue", "Resource": "&region-arn;secretsmanager:region:123456789012:secret:MyDatabaseMasterSecret", "Effect": "Allow" },

Finalmente, você pode aplicar a configuração da rotação ao segredo e executar a rotação inicial.

$ aws secretsmanager rotate-secret \ --secret-id production/MyAwesomeAppSecret \ --rotation-lambda-arn &region-arn;lambda:us-west-2:123456789012:function:aws-serverless-repository-SecretsManagerRDSMySQLRo-10WGBDAXQ6ZEH \ --rotation-rules AutomaticallyAfterDays=7

112

Page 119: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de outros segredos

Se você desejar criar sua própria função de rotação do Lambda, recomendamos seguir as etapasanteriores que usam o SecretsManagerRotationTemplate modelo do AWS CloudFormation. OSecrets Manager define a maioria das permissões e configurações para você.

Rotação de segredos do AWS Secrets Managerpara outros bancos de dados ou serviços

Configure o AWS Secrets Manager para rotacionar automaticamente o segredo de um serviço ou banco dedados protegido. O Secrets Manager sabe como alternar segredos de forma nativa para bancos de dadosdo Amazon RDS (p. 89). No entanto, o Secrets Manager também permite que você execute rotaçãode segredos em outros bancos de dados ou serviços de terceiros. Como cada serviço ou banco de dadospode ter uma maneira exclusiva de configurar seus segredos, o Secrets Manager usa uma função Lambdaque você deve gravar para trabalhar com qualquer banco de dados ou serviço que escolher. Personalize afunção Lambda para implementar os detalhes específicos do serviço sobre como executar a rotação de umsegredo.

Quando habilita a rotação de um segredo para outro banco de dados ou algum outro tipo de serviço, vocêdeve criar e configurar a função Lambda e escrever o código.

Antes de habilitar a rotação para outros bancos de dados ou serviços, você deve primeiro criar a funçãode rotação Lambda. A AWS fornece um modelo genérico de função de rotação Lambda que você podeusar como um ponto de partida. O procedimento a seguir descreve como criar uma nova função Lambdade acordo com este modelo. Quando habilitar a rotação (p. 116), você precisará adicionar ao segredoapenas o nome de recurso da Amazon (ARN) da função concluída.

Tópicos• Rotação AWS Secrets Manager segredos para outras bases de dados ou serviços (p. 113)• Permitir a rotação para um segredo para outra base de dados ou serviço (p. 116)

Rotação AWS Secrets Manager segredos para outrasbases de dados ou serviçosSe você criar um segredo para outro aplicativo além dos bancos de dados do Amazon RDS compatíveis,o AWS Secrets Manager não criará a função de rotação do Lambda para você. Você deve criá-lo econfigurá-lo e, em seguida, fornecer o nome de recurso da Amazon (ARN) da função concluída para osegredo. Pode fazê-lo utilizando o Secrets Manager consola, o AWS CLIou um dos AWS SDKs.

Este tópico descreve a criação da função do Lambda usando um conjunto de alterações do AWSCloudFormation que você cria e executa. Você, então, anexa permissões. Nesse ponto, você pode editar ocódigo para fazer a função de rotação funcionar da maneira desejada. Finalmente, você associa a funçãoconcluída ao segredo para que o Secrets Manager chame a função sempre que a rotação for acionada.

É possível especificar o modelo "genérico" que você deve implementar totalmente. Ou você pode escolherum dos modelos que implementam completamente uma estratégia de rotação de um determinado bancode dados ou serviço e usá-lo como ponto de partida para personalizar a função para atender às suasnecessidades.

Permissões mínimas

Para executar os comandos que habilitam e configuram a rotação, você deve ter estaspermissões:

• serverlessrepo:CreateCloudFormationChangeSet – para criar o conjunto dealterações do AWS CloudFormation que configura e cria a função de rotação Lambda.

113

Page 120: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de outros segredos

• cloudformation:ExecuteChangeSet – para executar o conjunto de alterações do AWSCloudFormation que cria e configura a função de rotação Lambda.

• lambda:AddPermission – adicione as permissões necessárias à função de rotação doLambda depois de criá-la.

• lambda:InvokeFunction – anexe a função de rotação ao segredo.• lambda:UpdateFunctionConfiguration – permita que o console atualize a configuração

da VPC da função do Lambda para que ela possa se comunicar com um banco de dados ouserviço que reside em uma VPC.

• secretsmanager:RotateSecret – configure e acione a rotação inicial.

Pode conceder todas estas permissões a um IAM utilizador ou função anexando oSecretsManagerReadWrite AWS uma política gerida.

Os comandos a seguir aplicam o SecretsManagerRotationTemplate genérico à sua função doLambda. Esse modelo é oriundo do AWS Serverless Application Repository e é usado pelo AWSCloudFormation para automatizar a maioria das etapas para você. Para ver o conjunto completo demodelos e o ARN que você deve especificar, consulte Modelos da AWS que podem ser usados para criarfunções de rotação do Lambda (p. 171).

Use o ARN do modelo genérico e insira-o exatamente como mostrado:

arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate

Se o banco de dados ou serviço que usa suas credenciais residir em uma VPC fornecida pela AmazonVPC, inclua o comando na etapa 5. Esse comando configura a função para se comunicar com essa VPC.Se você não tiver uma VPC, poderá ignorar o comando.

Criar uma função de rotação do Lambda como um modelo genérico para personalização

1. O primeiro comando configura um conjunto de alterações de um AWS CloudFormation com base nomodelo fornecido pelo Secrets Manager. Você fornece dois parâmetros para o modelo: a URL doendpoint do Secrets Manager e o nome da função de rotação do Lambda produzida pelo modelo.

$ aws serverlessrepo create-cloud-formation-change-set \ --application-id arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate \ --stack-name MyLambdaCreationStack \ --parameter-overrides '[{"Name":"endpoint","Value":"https://secretsmanager.region.amazonaws.com"},{"Name":"functionName","Value":"MySecretsManagerRotationFunction"}]' --capabilities CAPABILITY_IAM CAPABILITY_RESOURCE_POLICY{ "ApplicationId": "arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRDSMySQLRotationSingleUser", "ChangeSetId": "arn:aws:cloudformation:region:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "StackId": "arn:aws:cloudformation:region:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE"}

2. O próximo comando executa o conjunto de alterações que você acabou de criar. O parâmetrochange-set-name é oriundo da saída de ChangeSetId do comando anterior. Este comando nãoproduz saída:

$ aws cloudformation execute-change-set --change-set-name arn:aws:cloudformation:region:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE

114

Page 121: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotação de outros segredos

3. Você deve localizar o nome da função do Lambda que o comando anterior criou para você.

$ aws lambda list-functions { ... "FunctionName": "MySecretsManagerRotationFunction", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:MySecretsManagerRotationFunction", ... }

4. O comando a seguir concede permissão do Secrets Manager para chamar a função.

$ aws lambda add-permission \ --function-name MySecretsManagerRotationFunction \ --principal secretsmanager.amazonaws.com \ --action lambda:InvokeFunction \ --statement-id SecretsManagerAccess{ "Statement": "{\"Sid\":\"SecretsManagerAccess\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"secretsmanager.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-west-2:123456789012:function:aws-serverless-repository-SecretsManagerRDSMySQLRo-10WGBDAXQ6ZEH\"}"}

5. Ao executar um banco de dados em uma VPC, você precisa do seguinte comando. Se você nãotiver uma VPC, ignore esse comando. Esse comando configura a função de rotação do Lambdapara ser executada na VPC que executa sua instância de banco de dados do Amazon RDS. Procureas informações da VPC para a instância de banco de dados do Amazon RDS usando o console doAmazon RDS ou o comando aws rds describe-instances da CLI. Adicione as informações aocomando a seguir e execute-o.

$ aws lambda update-function-configuration \ --function-name arn:aws:lambda:us-west-2:123456789012:function:MySecretsManagerRotationFunction \ --vpc-config SubnetIds=<COMMA SEPARATED LIST OF VPC SUBNET IDS>,SecurityGroupIds=<COMMA SEPARATED LIST OF SECURITY GROUP IDs> \

6. Se a VPC com sua instância de banco de dados e função de rotação do Lambda não tiver acesso àInternet, configure a VPC com um endpoint de serviço privado para o Secrets Manager. Isso permiteque a função de rotação acesse o Secrets Manager em um endpoint na VPC.

$ aws ec2 create-vpc-endpoint --vpc-id <VPC ID> \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.<region>.secretsmanager \ --subnet-ids <COMMA SEPARATED LIST OF VPC SUBNET IDS> \ --security-group-ids <COMMA SEPARATED LIST OF SECURITY GROUP IDs> \ --private-dns-enabled

7. Nesse ponto, você pode inserir seu código na função de rotação do Lambda.

Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.8. Personalize o código para implementar seu cenário de rotação selecionado. Para obter mais detalhes,

consulte Compreender e personalizar o seu Lambda função de rotação (p. 118).9. Finalmente, você pode aplicar a configuração da rotação ao segredo e executar a rotação inicial.

Especifique o número de dias entre rotações sucessivas com o parâmetro --rotation-rules edefina AutomaticallyAfterDays com o número de dias desejado.

115

Page 122: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um segredopara outra base de dados ou serviço

$ aws secretsmanager rotate-secret \ --secret-id production/MyAwesomeAppSecret \ --rotation-lambda-arn arn:aws:lambda:us-west-2:123456789012:function:MySecretsManagerRotationFunction \ --rotation-rules AutomaticallyAfterDays=7

O segredo é alternado uma vez imediatamente e, em seguida, começa a ser alternado com a frequênciaespecificada.

Permitir a rotação para um segredo para outra basede dados ou serviçoPara configurar a rotação de um segredo de um banco de dados que não seja um banco de dados doRDS ou algum outro serviço compatível, você deve executar manualmente algumas etapas adicionais.Basicamente, você deve criar e fornecer o código para a função de rotação Lambda.

Warning

A configuração da rotação faz com que o segredo rotacione uma vez assim que armazenaro segredo. Antes de fazer isso, verifique se todos os aplicativos que usam as credenciaisarmazenadas no segredo estão atualizados para recuperar o segredo do AWS Secrets Manager.As credenciais antigas podem não ser utilizáveis após a rotação inicial. Qualquer aplicativo quevocê não conseguir atualizar será interrompido assim que as credenciais antigas não forem maisválidas.

Você já deve ter criado a função de rotação Lambda. Se você ainda não tiver criado a função, executeas etapas indicadas em Rotação AWS Secrets Manager segredos para outras bases de dados ouserviços (p. 113). Volte para este procedimento quando a função estiver criada e pronta para associar aosegredo.

Pré-requisitos: Requisitos de rede para ativar a rotação

Para habilitar a rotação, seu ambiente de rede deve estar configurado corretamente.

• lá estão Lambda função deve ser capaz de comunicar com a sua base de dados ou serviço. Se oseu banco de dados ou serviço estiver em execução em uma instância do Amazon EC2 em umaVPC, é recomendável que você configure a função Lambda para ser executada na mesma VPC. Issopermite conectividade direta entre a função de rotação e seu serviço. Para configurar isso, na páginade detalhes da função Lambda, role para baixo até a seção Rede e escolha a VPC na lista suspensapara corresponder àquela em que a instância com o serviço está em execução. Você também devegarantir que os grupos de segurança do EC2 anexados a sua instância habilitem a comunicação entre ainstância e o Lambda.

• lá estão Lambda função deve ser capaz de comunicar com o Secrets Manager ponto final do serviço. Sea sua função de rotação do Lambda conseguir acessar a Internet porque a função não está configuradapara executar em uma VPC ou porque a VPC tem um gateway NAT anexado, você poderá usarqualquer endpoint disponível publicamente para Secrets Manager. Como alternativa, se a sua funçãoLambda estiver configurada para ser executada em uma VPC que não tem acesso à Internet, vocêpoderá configurar a VPC com um endpoint de serviço do Secrets Manager privado (p. 88).

Para habilitar e configurar a rotação de um segredo para outro banco de dados ou serviço

Siga as etapas em uma das seguintes guias:

Como usar o Console de Gerenciamento da AWS

116

Page 123: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPermitir a rotação para um segredopara outra base de dados ou serviço

Permissões mínimas

Para habilitar e configurar a rotação no console, é necessário ter estas permissões:

• secretsmanager:ListSecrets – para ver a lista de segredos no console.• secretsmanager:DescribeSecrets – para acessar a página de detalhes do segredo

selecionado.• secretsmanager:RotateSecret – para configurar ou acionar a rotação.

1. Faça login no console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.2. Selecione o nome do segredo para o qual você deseja habilitar a rotação.3. Na seção Configure automatic rotation (Configurar rotação automática), selecione Enable automatic

rotation (Habilitar rotação automática). Isso habilita os outros controles nesse seção.4. Em Select rotation interval (Selecionar intervalo de rotação), selecione um dos valores pré-definidos

— ou selecione Custom (Personalizar) e, em seguida, digite o número de dias desejado entre asrotações.

Secrets Manager agenda a próxima rotação quando a anterior é concluída. Secrets Manageragenda a data adicionando o intervalo de rotação (número de dias) para a data real da últimarotação. O serviço escolhe a hora dentro da janela de data de 24 horas disponível de formaaleatório. O minuto também é escolhido aleatoriamente, mas é pesado com relação ao topo da horae influenciada pela variedade dos fatores que ajudam a distribuir carga.

5. Em Choose an AWS Lambda function, escolha a função de rotação na lista suspensa. Se vocêainda não tiver criado a função, execute as etapas indicadas em Rotação AWS Secrets Managersegredos para outras bases de dados ou serviços (p. 113). Retorne e execute esta etapa quandoa função estiver criada e pronta para associar ao segredo.

Using the AWS CLI or AWS SDKs

Permissões mínimas

Para criar uma função Lambda usando o console, é necessário ter estas permissões:

• lambda:CreateFunction – para criar a função em AWS Lambda.• lambda:InvokeFunction – para anexar a função de rotação ao segredo.• secretsmanager:DescribeSecrets – para acessar a página de detalhes do segredo.• secretsmanager:RotateSecret – para anexar a função de rotação ao segredo ou para

acionar a rotação.

Use os seguintes comandos para habilitar e configurar a rotação no Secrets Manager:

• API/SDK: RotateSecret• AWS CLI: rotate-secret

Example

Veja a seguir um comando da CLI de exemplo que realiza o equivalente à criação de segredopelo console na guia Como usar o Console de Gerenciamento da AWS. Ele define o intervalo derotação para 30 dias e especifica o nome de recurso da Amazon (ARN) de um segundo segredo compermissões para alterar as credenciais desse segredo no banco de dados.

117

Page 124: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCompreender e personalizar oseu Lambda função de rotação

$ aws secretsmanager rotate-secret --secret-id production/MyAwesomeAppSecret --automatically-rotate-after-days 30 --rotation-lambda-arn arn:aws:secretsmanager:region:accountid:secret:production/MasterSecret-AbCdEf{ "ARN": "arn:aws:secretsmanager:region:accountid:secret:production/MyAwesomeAppSecret-AbCdEf", "Name": "production/MyAwesomeAppSecret", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"}

O parâmetro ClientRequestToken não é necessário, pois estamos usando a AWS CLI, que gera efornece automaticamente um para nós. O resultado inclui o ID da versão de segredo da nova versãocriada durante a rotação inicial. Depois que a rotação for concluída, essa nova versão terá o rótulo depreparação AWSCURRENT anexado, e a versão anterior terá o rótulo de preparação AWSPREVIOUS.

Compreender e personalizar o seu Lambda funçãode rotação

Para obter detalhes sobre funções de rotação do Lambda, consulte Descrição geral do Lambda função derotação (p. 119).

Se você escolher um dos bancos de dados (p. 4) compatíveis para o seu tipo de segredo, o AWS SecretsManager criará e configurará a função de rotação Lambda para você. Você pode habilitar a rotação paraesses bancos de dados seguindo as etapas em Permitir a rotação para um Amazon RDS secreta da basede dados (p. 91). No entanto, se você quiser criar uma função de rotação Lambda personalizada paraoutro serviço, siga as etapas descritas em Permitir a rotação para um segredo para outra base de dadosou serviço (p. 116).

Esta seção descreve em detalhes como a função do Lambda funciona e como você a configura pararotacionar segredos com êxito.

Important

A função do Lambda e o segredo do Secrets Manager que a invoca precisam estar na mesmaregião da AWS. Se estiverem em regiões diferentes, você receberá uma mensagem de erro"Lambda does not exist (O Lambda não existe)" ao tentar adicionar o nome de recurso daAmazon (ARN) da função aos metadados do segredo.

Considere os seguintes cenários ao criar sua própria função de rotação do Lambda. Você aplica umcenário com base nos recursos compatíveis com o sistema de autenticação que protege o recurso e deacordo com suas preocupações de segurança.

• Você pode alterar apenas a senha de um único usuário. Um cenário comum de serviços de propriedadede pessoas que não são os usuários que acessam o serviço. O proprietário do serviço permite que ocliente crie uma conta de usuário, geralmente com um endereço de e-mail de usuário como o nome deusuário ou, pelo menos, como uma chave de exclusividade. Nesse cenário, o serviço geralmente permiteque o usuário altere a senha com a frequência necessária. No entanto, o cenário não permite que ousuário crie usuários adicionais e, com frequência, não permite alterar o nome de usuário.

Os usuários geralmente podem alterar a própria senha sem necessidade de outro usuário compermissões de administrador realizar a mudança de senha. No entanto, como você altera a senha dousuário único e ativo, os clientes que acessam o serviço com esse usuário poderão encontrar falhastemporárias para fazer login enquanto a alteração da senha estiver em andamento.

Há possibilidade de ocorrer tempo de inatividade entre o momento em que você altera a senha e omomento em que os clientes são notificados para usar a versão mais nova da senha. Normalmente,

118

Page 125: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioDescrição geral do Lambda função de rotação

esse tempo deve ser de alguns segundos, e você deve provisionar o tempo em seu código de aplicativoque usa o segredo. Habilite novas tentativas com um atraso no meio para ser tolerante a essainterrupção de curto prazo durante uma rotação.

• Você pode criar dois usuários entre os quais pode alternar. Nesse cenário, você pode criar um usuárioque o processo de rotação clona para criar dois usuários com o mesmo acesso aos recursos protegidos.O processo de rotação alterna entre os dois usuários. O Secrets Manager altera a senha e testaa "inativa" enquanto seus usuários continuam a acessar o banco de dados ou serviço usando ascredenciais no segredo "ativo"

Enquanto os clientes acessam o recurso protegido com um nome do usuário consultando a versão como rótulo de preparação padrão AWSCURRENT anexado, a função de rotação altera a senha no segundousuário inativo. A função de rotação armazena a senha atualizada em uma nova versão do segredo como rótulo de preparação AWSCURRENT. Após o teste, você move o rótulo de preparação AWSCURRENTpara a nova versão que aponta para o usuário alternativo e a nova senha. Todos os clientes começam aacessar o recurso protegido imediatamente com o usuário alternativo e a senha atualizada.

Na hora da próxima rotação, você altera a senha na conta de usuário original que agora está ociosa.Isso cria outra versão do segredo e repete o ciclo.

Esse cenário exige um segundo segredo que aponte para um administrador ou um superusuário compermissões para alterar a senha nos dois usuários.

• Você pode criar novas credenciais para um único usuário. Alguns sistemas permitem que você crie umúnico usuário com vários conjuntos de credenciais de acesso. Cada credencial de acesso fornece umconjunto completo de credenciais e funciona independentemente da outra. Você pode excluir e recriara primeira credencial de acesso enquanto o Secrets Manager usa a segunda credencial de acesso.É possível alternar todos os clientes para usarem a nova credencial de primeiro acesso. Na próximavez que você executar a rotação, exclua a recrie a segunda credencial de acesso enquanto os clientescontinuam usando a segunda.

Para obter mais detalhes e instruções sobre como configurar cada cenário, consulte os seguintes tópicos:

• Descrição geral do Lambda função de rotação (p. 119)• Rotacionar segredos do AWS Secrets Manager para um usuário com uma senha (p. 122)• Executar a rotação de segredos do AWS Secrets Manager alternando entre dois usuários

existentes (p. 126)• Rotacionar segredos do AWS Secrets Manager para um usuário compatível com várias

credenciais (p. 129)

Descrição geral do Lambda função de rotaçãoO AWS Secrets Manager usa uma função AWS Lambda para executar a rotação de um segredo. Se vocêusar o segredo para um dos bancos de dados do Amazon RDS compatíveis (p. 4), o Secrets Managerfornecerá a função do Lambda para você. E o Secrets Manager personaliza automaticamente a funçãopara atender aos requisitos do banco de dados especificado. Se você usar o segredo para algum outroserviço, deverá fornecer o código para a função do Lambda.

Quando uma programação de rotação configurada ou um processo manual aciona a rotação, o SecretsManager chama a função do Lambda várias vezes, cada vez com parâmetros diferentes. A função doLambda executa várias tarefas ao longo do processo de rotação de um segredo. O parâmetro Step nasolicitação especifica a tarefa a ser executada em cada solicitação.

O Secrets Manager invoca a função Lambda com a seguinte estrutura de parâmetros de solicitação JSON:

{

119

Page 126: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioDescrição geral do Lambda função de rotação

"Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string"}

Veja a seguir a descrição dos parâmetros da solicitação:

• Step – especifica a parte do comportamento da função de rotação a ser invocada. Cada um dosdiferentes valores identifica uma etapa do processo de rotação. A seção a seguir As etapas da funçãode rotação Lambda (p. 120) explica cada etapa detalhadamente. A separação em etapas invocadas demaneira independente permite que a equipe do AWS Secrets Manager adicione funcionalidade adicionalque ocorra entre as etapas.

• secretId – A ID ou o Nome de recurso Amazon (ARN) para o segredo a rodar. Secrets Manager atribuium ARN a todos os segredos quando cria inicialmente o segredo. A versão em rotação se tornaautomaticamente a versão padrão rotulada AWSCURRENT.

• clientRequestToken – Uma cadeia Secrets Manager fornece aos Lambda função. Tem de passar acadeia para qualquer Secrets Manager APIs você liga de dentro do Lambda função. Secrets Managerusa este token para garantir a idempotência de pedidos durante quaisquer novas tentativas necessáriascausadas por falhas de chamadas individuais. Esse é um valor UUID-type para garantir exclusividadedentro do segredo especificado. Este valor se torna o SecretVersionId da nova versão do segredo.

O mesmo secretId e clientTokenRequest invocam cada etapa. Somente o parâmetro Step mudacom cada chamada. Isso impede que você armazene qualquer estado entre as etapas. Os parâmetrosfornecem todas as informações necessárias — ou como parte das informações nas versões acessadascom os rótulos AWSCURRENT ou AWSPENDING.

Para obter as descrições das tarefas específicas a serem executadas em cada etapa das diferentesestratégias de rotação, consulte os tópicos a seguir:

• Rotacionar segredos do AWS Secrets Manager para um usuário com uma senha (p. 122)• Executar a rotação de segredos do AWS Secrets Manager alternando entre dois usuários

existentes (p. 126)• Rotacionar segredos do AWS Secrets Manager para um usuário compatível com várias

credenciais (p. 129)

As etapas da função de rotação LambdaA funcionalidade incorporada na função de rotação do Lambda se divide em etapas distintas. O parâmetroStep invoca cada etapa chamando a função com um dos valores do parâmetro.

Nesta versão do Secrets Manager, o Secrets Manager chama as etapas em sequência automaticamente.Assim que uma etapa é concluída, o Secrets Manager chama imediatamente a função do Lambda parainvocar a próxima etapa.

Quando especificar um segredo para um dos Amazon RDS bases de dados, Secrets Manager usa umpadrão Lambda para rodar o segredo. Secrets Manager fornece o Lambda , mas pode modificar a funçãoLambda para cumprir os seus requisitos de rotação específicos da organização.

lá estão CreateSecret Passo

Nesta etapa, a função Lambda gera uma nova versão do segredo. Dependendo do seu cenário, isso podeser tão simples quanto a geração de uma nova senha. Ou você pode gerar valores para um conjuntocompletamente novo de credenciais, incluindo um nome de usuário e senha apropriados para o recursoprotegido. O Secrets Manager armazena esses valores como uma nova versão do segredo. O SecretsManager clona os outros valores no segredo que não precisam ser alterados, como os detalhes da

120

Page 127: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioDescrição geral do Lambda função de rotação

conexão, da versão existente do segredo. O Secrets Manager rotula a nova versão do segredo com orótulo de preparação AWSPENDING para marcá-la como a versão em andamento do segredo.

lá estão SetSecret Passo

Nesta etapa, a função de rotação recupera a versão do segredo rotulado como AWSPENDING do SecretsManager, a versão que você acabou de criar na etapa anterior. A função de rotação invoca o serviço deidentidade do banco de dados ou do serviço para alterar a senha existente ou para criar novas credenciaisque correspondam às novas no segredo. Se você criar um novo usuário, a função deverá clonar aspermissões do usuário anterior. E o novo usuário poderá continuar a usar seu aplicativo personalizadoconforme necessário.

Para alterar uma senha ou criar novas credenciais no sistema de autenticação do banco de dados oudo serviço, você deve permitir que a função do Lambda execute essas tarefas. Consideradas tarefasadministrativas, as tarefas exigem permissões que você normalmente não fornece aos usuários. Érecomendável usar um segundo conjunto de credenciais com permissões para alterar a senha ou criarnovos usuários para o segredo principal, de acordo com sua estratégia de rotação. Nós nos referimos aessas credenciais como segredo mestre, e elas são armazenadas no Secrets Manager como um segredoseparado do segredo principal. A função de rotação armazena o ARN deste segredo mestre no segredoprincipal para uso pela função de rotação. O segredo mestre nunca deve ser acessado por seu aplicativopersonalizado de usuário final. Apenas a função de rotação do Lambda pode acessar o segredo principalpara atualizar ou criar novas credenciais no banco de dados quando a rotação ocorre.

lá estão TestSecret Passo

Esta etapa da função do Lambda verifica a versão AWSPENDING do segredo usando-o para acessar orecurso protegido da mesma forma que seu aplicativo personalizado acessa o recurso protegido. Se oaplicativo precisar de acesso somente leitura ao banco de dados, a função deverá verificar se as leiturasdo teste foram feitas com êxito. Se o aplicativo precisar gravar no banco de dados, a função deveráexecutar algumas gravações de teste para verificar esse nível de acesso.

121

Page 128: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Um usuário, uma senha

lá estão FinishSecret Passo

Esta etapa realiza qualquer finalização específica do recurso nessa versão do segredo. Quando concluída,a última etapa requer que a função do Lambda mova o rótulo AWSCURRENT da versão atual para essanova versão do segredo para que seus clientes comecem a usá-la. Também é possível remover o rótuloAWSPENDING, mas isso não é tecnicamente necessário. Nesse ponto, a rotação básica é concluída.Todos os seus clientes usam a nova versão do segredo. A versão antiga recebe o rótulo de preparaçãoAWSPREVIOUS e está disponível para recuperação como a "última versão em boas condições" do segredo,se necessário. A versão antiga com o rótulo de preparação AWSPREVIOUS não tem mais rótulos depreparação anexados, portanto, o Secrets Manager considera a versão antiga como defasada e sujeita aexclusão.

Rotacionar segredos do AWS Secrets Manager paraum usuário com uma senhaVocê pode configurar o AWS Secrets Manager para rotacionar automaticamente o segredo de um recursoprotegido. Neste tópico, descrevemos a configuração da rotação de um sistema que permite a criação deum único usuário com uma única senha. Você pode alterar a senha do usuário quando necessário. Essecenário fornece simplicidade, mas não fornece a solução mais altamente disponível. Os clientes podemcontinuar a acessar o recurso protegido enquanto a senha é alterada. Isso pode causar algumas situaçõesde "acesso negado".

O lapso de tempo que pode ocorrer entre a alteração da senha real e a alteração no segredocorrespondente, que informa ao cliente qual senha usar, representa um risco. Esse risco poderá aumentarse você hospedar o recurso protegido em uma "server farm", em que a alteração da senha demorapara ser propagada para todos os servidores membros. No entanto, com uma estratégia de repetiçãoapropriada, esse risco pode ser atenuado de maneira significativa.

122

Page 129: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Um usuário, uma senha

Um cenário comum de serviços de propriedade de pessoas que não são os usuários que acessam oserviço. O proprietário do serviço permite que o cliente crie uma conta de usuário — normalmente cominformações como o endereço de e-mail do usuário como o nome do usuário ou, pelo menos, como umachave de exclusividade. O serviço geralmente permite que o usuário altere a senha com a frequêncianecessária. Mas não permite que o usuário crie usuários adicionais nem altere o nome do usuário.

Como a rotação usa rótulos para gerenciar um único usuário comrotação de senha em andamentoO exemplo a seguir explica esse cenário em mais detalhes:

a. O cenário começa com um aplicativo que acessa o recurso protegido, o banco de dados, usando ascredenciais armazenadas em um segredo com uma única versão "A". Essa versão A do segredo temo rótulo de preparação AWSCURRENT anexado. O aplicativo recupera o segredo solicitando a versãocom o rótulo de preparação AWSCURRENT, Etapas 1 e 2 no gráfico a seguir. O aplicativo então usa ascredenciais nessa versão do segredo para acessar o banco de dados, Etapa 3, para recuperar os dadosde que precisa, Etapa 4.

b. O processo de rotação do segredo cria uma nova versão "B" do segredo, não um novo segredo, masuma nova versão do mesmo segredo. Inicialmente, esse segredo versão "B" tem o rótulo de preparaçãoAWSPENDING anexado pelo processo de rotação. A versão B do segredo recebe uma nova senhagerada. Assim que o Secrets Manager armazena o segredo com êxito, o processo de rotação altera asenha do usuário no sistema de autenticação do banco de dados. Nesse ponto, entre a alteração dasenha no banco de dados e a mudança do rótulo para a nova versão do segredo, podem ocorrer falhasde login do cliente na Etapa 4. Devido a esse risco, é essencial que o processo de rotação avanceimediatamente para a próxima etapa.

c. A versão B do segredo torna-se a senha ativa, e o processo de rotação move o rótulo de preparaçãoAWSCURRENT da versão A para a nova versão B do segredo. Isso também move automaticamente orótulo de preparação AWSPREVIOUS para a versão rotulada anteriormente com o rótulo de preparaçãoAWSCURRENT. Isso permite que o segredo atue como o "último em boas condições" caso hajanecessidade de recuperação.

123

Page 130: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Um usuário, uma senha

d. A próxima solicitação do aplicativo do cliente agora recebe a versão "B" do segredo porque a "B" agoratem o rótulo AWSCURRENT. Neste ponto, o aplicativo do cliente depende da nova versão do segredo.

Configurar a rotação para alterar apenas as senhasPara configurar um mecanismo de rotação para um sistema de autenticação que permite que você tenhaapenas um usuário, siga as etapas deste procedimento:

Configurar a rotação para rotação somente senha

1. Crie o usuário único no sistema de autenticação que protege o recurso protegido. Anote a senha.2. Crie um segredo do Secrets Manager para armazenar os detalhes das credenciais que você criou na

etapa anterior:

a. Faça login no console Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Selecione New secret.c. Em Select secret type (Selecionar tipo de segredo), escolha a opção que melhor se adapta ao seu

serviço. Em seguida, configure os detalhes do seu banco de dados ou serviço, incluindo o nomedo usuário e a senha inicial.

d. Em AWS KMS Encryption Key (Chave de criptografia do AWS KMS), escolha a chave mestrado cliente (CMK) a ser usada para criptografar esse segredo ou mantenha-a definida comoDefaultMasterKey para a conta. Para usar a chave padrão, as credenciais que acessam osegredo precisam ser da mesma conta que possui o segredo. Se as credenciais do usuárioresidirem em uma conta diferente, você deverá criar e especificar o nome de recurso da Amazon(ARN) de uma CMK personalizada.

e. Em Select rotation period, escolha ou digite o número de dias entre as rotações.

Note

Por padrão, quando você usa o console do Secrets Manager para configurar a rotação, oSecrets Manager automaticamente ativa e define a expiração como o número de dias emum ciclo de rotação + 7.

f. Em What credentials can rotate this secret? (Quais credenciais podem fazer a rotação destesegredo), escolha Use the same credentials (Usar as mesmas credenciais).

124

Page 131: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Um usuário, uma senha

Note

Este cenário de exemplo pressupõe que o usuário pode alterar a própria senha e quevocê não pode usar um segundo usuário com permissões para alterar a senha doprimeiro usuário.

g. Escolha Próxima etapa.h. Digite um Secret name e Description opcional. Você também pode optar por adicionar tags.i. Selecione Store secret.

3. Examine seu novo segredo para obter o ARN da função de rotação Lambda.

a. Na página de listagem Secrets (Segredos), escolha o nome do segredo criado na Etapa 2.b. Na seção Secret details / Secret rotation (Detalhes do segredo / rotação do segredo), escolha o

ARN da função de rotação para abri-la no Lambda.c. Personalize a função de rotação para atender aos seus requisitos específicos. Você pode usar os

seguintes requisitos em cada etapa como base para escrever a função.

• Etapa createSecret:• Recupere a versão AWSCURRENT do segredo usando a operação GetSecretValue.• Extraia o texto do segredo protegido do campo SecretString e armazene-o em uma

estrutura que você possa modificar.• Gere uma nova senha usando um algoritmo para geração de senhas com os requisitos de

comprimento e complexidade máximos compatíveis com o recurso protegido.• Substitua o campo password na estrutura pelo novo gerado na etapa anterior. Mantenha

todos os outros detalhes iguais, como o username e os detalhes de conexão.• Armazene a cópia modificada da estrutura do segredo, passando-a como o parâmetroSecretString em uma chamada para PutSecretValue. O Secrets Manager rotula anova versão do segredo com AWSPENDING.

• Etapa setSecret:• Recupere a versão AWSPENDING do segredo usando a operação GetSecretValue.• Emita comandos para o sistema de autenticação do recurso protegido para alterar a senha

existente do usuário para aquela armazenada na nova versão AWSPENDING do segredo.• Etapa testSecret:

• Recupere a versão AWSPENDING do segredo usando a operação GetSecretValue.• Emita comandos para o recurso protegido para tentar acessá-lo usando as credenciais no

segredo.• Etapa finishSecret:

• Mova o rótulo AWSCURRENT para a versão rotulada como AWSPENDING. Isso também moveautomaticamente o rótulo de preparação AWSPREVIOUS para o segredo do qual você acaboude remover o AWSCURRENT.

• (Opcional) Remova o rótulo AWSPENDING da versão do segredo.

Important

Lembre-se de que, nesse cenário, os usuários não podem continuar operando com a versãoantiga enquanto você cria e verifica a nova versão. Portanto, entre o tempo na fase setSecret,em que você altera a senha, e o tempo na fase finishSecret, em que você move o rótuloAWSCURRENT para a nova versão, seus clientes talvez usem as credenciais incorretas e recebamerros de acesso negado. Inclua funcionalidade de repetição razoável a seu aplicativo cliente paraessa situação para ajudar a atenuar o risco.

125

Page 132: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExecutar rotação de segredos –

Alternar entre dois usuários existentes

Executar a rotação de segredos do AWS SecretsManager alternando entre dois usuários existentesVocê pode configurar o AWS Secrets Manager para rotacionar automaticamente o segredo de um recursoprotegido.

Este tópico descreve como configurar a rotação para um sistema que permite criar e alternar entredois usuários dos quais você pode alterar a senha quando necessário. Isso permite eliminar o possívelde tempo de inatividade que ocorre no cenário no qual você está limitado a apenas uma conta deusuário (p. 122). Nesse caso, você altera mais do que apenas a senha em uma versão do segredo. Cadaversão também deve capturar a mudança no usuário e alternar entre cada usuário a cada ciclo de rotação.

Caso o administrador permita que você crie um terceiro usuário "mestre" com permissões elevadaspara alterar a senha dos dois primeiros usuários, recomendamos que você faça isso. Isso fornece maissegurança do que permitir que os usuários tenham permissões para alterar as próprias senhas. Seconfigurar o cenário dessa forma, será necessário criar um segundo segredo que será usado para alterara senha dos usuários alternados no primeiro segredo. Crie esse segredo "mestre" primeiro para que possausá-lo como referência ao configurar o segredo do "usuário".

O Secrets Manager fornece modelos para implementar o cenário a seguir que desativa as credenciaisatuais, mas não as exclui imediatamente. Em vez disso, o Secrets Manager marca a versão do segredocom credenciais atuais com o rótulo de teste AWSPREVIOUS. Isso preserva as credenciais para um ciclode rotação adicional como as "últimas credenciais em boas condições". O Secrets Manager manterá ascredenciais disponíveis para recuperação se algo acontecer com as credenciais atuais.

O Secrets Manager somente removerá as credenciais após o segundo ciclo de rotação quando a funçãode rotação trouxer o usuário de volta ao serviço ativo, conforme descrito mais adiante neste tópico. Issosignifica que, se você quiser que um determinado conjunto de credenciais seja válido somente por umdeterminado número de dias, recomendamos definir o período de rotação para metade desse númeromenos um. Isso permite que os dois ciclos de rotação sejam concluídos e que as credenciais se tornemtotalmente obsoletas no prazo especificado.

Por exemplo, caso você tenha uma vida útil para credenciais exigida por conformidade de no máximo90 dias, recomendamos definir o intervalo de rotação para 44 dias (90/2 - 1 = 44). No dia 0, o SecretsManager cria as novas credenciais em uma rotação e as rotula como AWSCURRENT. No dia 44, a próximarotação rebaixa o segredo com essas credenciais para AWSPREVIOUS, e os clientes interrompemativamente o seu uso. No dia 88, a próxima rotação remove todos os rótulos de preparação da versão. OSecrets Manager torna a versão totalmente defasada nesse ponto e recicla o usuário no banco de dadoscom uma nova senha, que inicia o ciclo novamente.

Como a rotação usa rótulos para alternar entre dois usuáriosUsar rótulos de preparação permite que o Secrets Manager alterne entre dois usuários. Um, chamadoAWSCURRENT, usado ativamente pelos clientes. Quando a rotação da função do Lambda é acionada, oprocesso de rotação atribui uma nova senha ao segundo usuário inativo. O Secrets Manager armazenaessas credenciais em uma nova versão do segredo. Depois de verificar se o acesso com as credenciaisfunciona com a nova versão do segredo, o processo de rotação move o rótulo AWSCURRENT para a novaversão, o que tornará a versão ativa. Na próxima vez que for acionada, as funções de Secrets Managerrevertem as duas contas de usuário.

Cenário básico de exemplo

O exemplo a seguir explica esse cenário em mais detalhes:

a. O cenário começa com um aplicativo acessando o banco de dados usando um segredo que tem umaúnica versão "A". Esta versão A do segredo tem o rótulo AWSCURRENT anexado e contém credenciais

126

Page 133: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExecutar rotação de segredos –

Alternar entre dois usuários existentes

para o primeiro dos dois usuários. O aplicativo recupera o segredo solicitando a versão rotulada comoAWSCURRENT (etapas 1 e 2 no gráfico a seguir). O aplicativo usa as credenciais nessa versão dosegredo para acessar o banco de dados (etapa 3) para recuperar os dados de que precisa (etapa 4).

b. Durante a primeira rotação, o processo cria uma nova versão "B" do segredo, não um novo segredo,mas uma nova versão do mesmo segredo. O processo clona todos os detalhes da versão A, excetopelo fato de que muda o nome de usuário para o segundo usuário e gera uma nova senha. Em seguida,o processo de rotação atualiza o segundo usuário com essa nova senha. Inicialmente, essa versão Bdo segredo tem o rótulo AWSPENDING, que é anexado pelo processo de rotação. Como o aplicativopersonalizado está programado para sempre solicitar o rótulo AWSCURRENT e ele ainda não foi movido,o aplicativo continuará recuperando e usando a versão A original do segredo das credenciais paraacessar o banco de dados.

c. Depois de testar o segredo da versão B para garantir que ele funcione, o processo de rotação move orótulo AWSCURRENT da versão A e o anexa à nova versão B do segredo. Isso move automaticamente orótulo de preparação AWSPREVIOUS para a versão anterior com o rótulo de preparação AWSCURRENT.Isso permite que ela atue como "última em boas condições" caso precise de recuperação. A versãoAWSPREVIOUS do segredo continua disponível para recuperação por um ciclo de rotação adicional. OSecrets Manager defasará o segredo no próximo ciclo.

d. A próxima solicitação do aplicativo do cliente agora recebe a versão "B" do segredo porque a "B" agoratem o rótulo AWSCURRENT. O aplicativo personalizado usa o segundo usuário com a nova senha paraacessar o banco de dados.

127

Page 134: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExecutar rotação de segredos –

Alternar entre dois usuários existentes

Configurar a rotação entre dois usuáriosSe você usar o segredo para um dos bancos de dados do Amazon RDS compatíveis (p. 4), siga osprocedimentos em Permitir a rotação para um Amazon RDS secreta da base de dados (p. 91).

Do contrário, se você desejar configurar a rotação para outro serviço ou banco de dados, crie a função derotação do Lambda e personalize-a usando estas instruções:

1. Crie dois usuários em seu banco de dados ou serviço. Anote as senhas e nomes de usuário que vocêusa. Certifique-se de que cada usuário possa alterar a própria senha.

2. Crie um segredo com as credenciais do primeiro usuário.

Siga as etapas em Rotação AWS Secrets Manager segredos para outras bases de dados ouserviços (p. 113) para criar um modelo genérico de função de rotação Lambda que você possapersonalizar. Ao chegar na etapa 7, personalize a função usando as seguintes informações.

Use a seguinte lógica como base para escrever sua função de rotação:

• Fase createSecret:• Recupere a versão AWSCURRENT do segredo usando a operação GetSecretValue.• Extraia o texto do segredo protegido do campo SecretString e coloque-o em uma estrutura de

arquivos que você possa usar.• Examine o campo username e determine qual é o nome de usuário alternativo.• Determine se há um usuário com o nome de usuário alternativo no banco de dados. Se não

houver, esta deverá ser a primeira vez por meio do processo de rotação. Clone o usuário atual e aspermissões.

• Defina a entrada username na cópia da estrutura do segredo como o nome de usuário alternativo.• Gere uma nova senha com os requisitos de comprimento e complexidade máximos compatíveis com o

recurso protegido.• Defina a entrada password na cópia da estrutura do segredo como a nova senha.• Armazene a cópia modificada da estrutura do segredo, passando-a como o parâmetroSecretString em uma chamada para PutSecretValue. O Secrets Manager rotulará a novaversão do segredo como AWSPENDING.

• Fase setSecret:• Recupere a versão AWSPENDING do segredo usando a operação GetSecretValue.• Extraia o nome do usuário e a senha do campo SecretString.• Emita comandos para o sistema de autenticação do recurso protegido para alterar a senha do usuário

especificado para esse valor.• Fase testSecret:

• Recupere a versão AWSPENDING do segredo usando a operação GetSecretValue.

128

Page 135: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Somente senhas

• Tente acessar o recurso protegido para tentar acessá-lo usando as credenciais no segredo.• Fase finishSecret:

• Mova o rótulo AWSCURRENT para a versão com o rótulo AWSPENDING.• (Opcional) Remova o rótulo AWSPENDING da versão do segredo.

Note

Nesse cenário, há menos chances de os usuários receberem um erro durante a rotação dosegredo. Os usuários continuam usando a versão antiga enquanto você configura a nova versão.Somente depois que o Secrets Manager testar a nova versão, você alternará o rótulo para apontarpara a nova versão e os clientes começarão a usá-la. No entanto, como alguns servidoresresidem em farms de servidores com atrasos de propagação ao alterar senhas, inclua um atrasorazoável, provavelmente na etapa setSecret antes de testar, para garantir que a senha tenhatido tempo de ser propagada para todos os servidores. Inclua também a funcionalidade derepetição razoável em seu aplicativo cliente para essa situação, a fim de ajudar a atenuar o risco.

Rotacionar segredos do AWS Secrets Manager paraum usuário compatível com várias credenciaisVocê pode configurar o AWS Secrets Manager para rotacionar automaticamente o segredo de um recursoprotegido. Este tópico aborda a configuração da rotação de um sistema de autenticação que permite acriação de um único usuário com pelo menos dois conjuntos de credenciais.

Como uma melhor prática, configure um segundo segredo "mestre" para armazenar as credenciais de umusuário diferente com permissões para excluir e criar credenciais para o usuário principal. Isso permitelimitar as permissões concedidas ao usuário principal somente àquelas exigidas pelo aplicativo. Ao fazê-lo, você pode descarregar as tarefas administrativas, que os usuários finais não podem acessar, para osegundo usuário. A função de rotação do segredo principal acessa o segundo usuário para excluir a chavede acesso antiga e criar uma nova.

Como a rotação usa rótulos para gerenciar um único usuário comvárias credenciaisO exemplo a seguir explica esse cenário em mais detalhes. Ele usa o exemplo de um serviço que permiteque um usuário tenha duas "chaves de API" separadas geradas pelo serviço e não pela sua função derotação:

a. O cenário começa com um aplicativo que acessa o recurso protegido, o banco de dados, usando umadas chaves de API armazenadas em um segredo com uma única versão "A". Esta versão A do segredotem o rótulo de preparação AWSCURRENT anexado. O aplicativo recupera o segredo solicitando a versãocom o rótulo de preparação AWSCURRENT, etapas 1 e 2. O aplicativo usa a chave de API nessa versãodo segredo para acessar o banco de dados (etapa 3) para recuperar os dados necessários do aplicativo(etapa 4).

129

Page 136: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Somente senhas

b. A função de rotação do segredo exclui a chave de API que não é referenciada atualmente pela versão“A” do segredo e cria uma nova chave de API para o mesmo usuário. Então, a função de rotação criauma nova versão "B" do segredo, não um novo segredo, mas uma nova versão do mesmo segredo. Afunção de rotação clona os detalhes da versão "A", mas substitui os detalhes da chave de API pelosda chave de API recém-criada. Inicialmente, essa versão "B" do segredo tem o rótulo de preparaçãoAWSPENDING anexado pelo processo de rotação. Como o aplicativo personalizado sempre solicita orótulo AWSCURRENT e o rótulo não foi movido, o aplicativo continuará a recuperar e usar a versão Aoriginal do segredo, para que a chave de API acesse o recurso protegido.

c. Depois de testar a versão "B" do segredo para garantir que ela funciona, o processo de rotação moveo rótulo AWSCURRENT da versão "A" e anexa-o à nova versão "B" do segredo. Isso também moveautomaticamente o rótulo de preparação AWSPENDING para a versão com o rótulo de preparaçãoAWSCURRENT. Isso permite que o segredo atue como o "último em boas condições" caso hajanecessidade de recuperação.

d. A próxima solicitação do aplicativo do cliente agora recebe a versão "B" do segredo porque a "B" agoratem o rótulo AWSCURRENT. Neste ponto, o aplicativo do cliente usa a chave da API na nova versão dosegredo. Quando o próximo ciclo de rotação ocorre, a versão "B" do segredo se torna a versão "A" evocê inicia novamente na Etapa A.

Configurar a rotação para rotacionar credenciais de um usuárioPara configurar um mecanismo de rotação para um sistema de autenticação que permite que você tenhaapenas um usuário, siga as etapas deste procedimento:

130

Page 137: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRotacionar segredos – Somente senhas

Para configurar a rotação de um usuário que tenha dois conjuntos de credenciais

1. Crie seu usuário no sistema de autenticação que protege o recurso protegido. Anote o nome dousuário e as credenciais que você definiu. Para esta discussão, elas são referenciadas como Creds1 eCreds2.

2. Crie um segredo do Secrets Manager para armazenar os detalhes das credenciais que você criou naetapa anterior. Inicialmente, esse segredo tem Creds1 para o usuário:

a. Faça login no console do Secrets Manager em https://console.aws.amazon.com/secretsmanager/.b. Selecione New secret.c. Para Select secret type, escolha Other type of secret, incluindo o nome do usuário e o primeiro

conjunto de credenciais. Por exemplo, insira dois pares de chave/valor para o texto de segredoprotegido. Os pares podem ser semelhantes aos exemplos:

Chave Valor

UserName <your user name>

APIKey <your API key>

APIKeyId <identifies which of the two API keys isstored in this version>

d. Em Chave de criptografia do AWS KMS, escolha a chave a ser usada para criptografar essesegredo ou deixe DefaultMasterKey definido como padrão para a conta. Para usar a chavepadrão, as credenciais que acessam o segredo precisam ser da mesma conta que possui osegredo. Se as credenciais do usuário residirem em outra conta, você deverá criar e especificaruma chave mestra do cliente (CMK) personalizada.

e. Em Select rotation period, escolha ou digite o número de dias entre as rotações.

Note

Quando você usa o console do Secrets Manager para configurar a rotação, por padrão, oSecrets Manager automaticamente habilita a expiração e define o número de dias entreas rotações + 7.

f. Em Select the Lambda rotation function, escolha Create function.g. Escolha Next step (Próxima etapa).h. Digite um Secret name e Description opcional. Opcionalmente, você pode adicionar tags.i. Selecione Store secret.

3. Examine seu novo segredo para localizar o nome de recurso da Amazon (ARN) da função de rotaçãodo Lambda.

a. Na página de listagem Secrets (Segredos), escolha o nome do segredo criado na Etapa 2.b. Na seção Secret details / Secret rotation (Detalhes do segredo / rotação do segredo), escolha o

ARN da função de rotação para abri-la no Lambda.c. Use a seguinte lógica como base para escrever sua função de rotação:

• Etapa createSecret:• Recupere a versão AWSCURRENT do segredo usando a operação GetSecretValue.• Extraia o valor de SecretString do segredo e armazene-o em uma estrutura que possa

ser modificada.• Determine a chave de API inativa - a que não é referenciada na versão AWSCURRENT do

segredo.• Emita comandos para o serviço excluir a chave da API inativa que você determinou na etapa

anterior.

131

Page 138: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExclusão de funções de rotação

• Emita comandos para o serviço para criar uma nova chave de acesso para o mesmo usuário.• Substitua a chave de API e o identificador na cópia da estrutura do segredo pelos da nova

chave de API recém-criada. Mantenha todos os outros detalhes iguais.• Armazene a cópia modificada do texto do segredo protegido passando-o como o parâmetroSecretString em uma chamada para PutSecretValue. O Secrets Manager rotula anova versão do segredo com AWSPENDING.

• Etapa setSecret:• A etapa setSecret neste cenário não faz nada. Você criou a chave de API na etapacreateSecret porque precisa ter a chave de API e o identificador para armazenar nosegredo. Você não gera sua própria chave como na maioria dos outros cenários.

• Etapa testSecret:• Recupere a versão AWSPENDING do segredo usando a operação GetSecretValue.• Emita comandos para o recurso protegido para tentar acessá-lo usando a chave de API

encontrada nessa versão do segredo.• Etapa finishSecret:

• Mova o rótulo AWSCURRENT para a versão rotulada como AWSPENDING. Isso também moveautomaticamente o rótulo de preparação AWSPREVIOUS para o segredo do qual você acaboude remover o AWSCURRENT.

• (Opcional) Remova o rótulo AWSPENDING da versão do segredo.

Eliminação de itens não utilizados Lambda funçõesde rotação

Depois de criar uma função de rotação para um segredo, em algum momento, você pode decidir que nãoprecisa mais da rotação de segredo. A exclusão do segredo (p. 74) pode ser uma etapa óbvia. Mas vocêtambém pode remover a função de rotação do Lambda que alterna o segredo. Se compartilhar a função derotação entre vários segredos, você não vai querer excluir a função até excluir o último segredo alternadopor ela.

Se você criar a função de rotação conforme descrito neste guia, usando o modelo do AWS ServerlessApplication Repository, você não excluirá a função simplesmente. O Secrets Manager criou a função comoparte de uma pilha do AWS CloudFormation. A exclusão da pilha exclui tudo o que a pilha criou. Nessecaso, o Secrets Manager exclui a função do Lambda e a função do IAM que concedem permissões àfunção. Realize as seguintes etapas para excluir tudo de forma limpa.

Excluir uma função de rotação criada com um modelo do AWS Serverless Application Repository

Siga as etapas em uma das seguintes guias:

Como usar o Console de Gerenciamento da AWS

Permissões mínimas

Para excluir uma função de rotação do Lambda criada usando um dos modelos do AWSServerless Application Repository, você deverá ter as permissões necessárias para acessar apilha e excluir todos os componentes criados:

• cloudformation:ListStacks• cloudformation:DescribeStack• cloudformation:ListStackResources• cloudformation:DeleteStack

132

Page 139: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExclusão de funções de rotação

• lambda:ListFunctions• lambda:GetFunction• lambda:DeleteFunction• iam:ListRoles• iam:DetachRolePolicy• iam:DeleteRolePolicy• iam:DeleteRole• cloudformation:DeleteStack

Você pode conceder todas essas anexando as seguintes políticas gerenciadas da AWS:

• SecretsManagerReadWrite• IAMFullAccess

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Acesse a lista de funções e escolha o nome da função a ser excluída.3. Na página de detalhes da função, aparece uma faixa na parte superior Esta

função pertence à CloudFormation empilhamento e-repositório sem-servidor-SecretsManager<rotation_template_name><unique_guid>. Visite o CloudFormation paragerir esta pilha..

Escolha o CloudFormation consola para abrir a AWS CloudFormation na consola no Detalhes daPilha página.

4. Se você adicionou qualquer política de permissão em linha à função do IAM, em vez de editar aspolíticas em linha existentes, ou se anexou qualquer política gerenciada adicional, deverá excluir oudesanexar essas políticas antes de o AWS CloudFormation excluir a pilha:a. Expanda a seção Resources (Recursos) da pilha e escolha o valor Physical ID (ID físico) para a

linha, com o Type (Tipo) definido para AWS::IAM::Role. Isso abre o console do IAM em uma guiaseparada.

b. Examine as linhas com política em linha como o tipo de política. Deverá ver oAWSLambdaBasicExecutionRole AWS função gerida anexada. Deverá também ver umaou duas políticas em linha designadas SecretsManager<template name>Política0 eSecretsManager<template name>1 Apólice. Se você vir outras políticas além dessas, oSecrets Manager não as criou como parte da pilha. As políticas foram adicionadas manualmenteapós a criação da pilha. Você deve excluí-las ou desanexá-las manualmente. Se não fizer isso, asolicitação para excluir a pilha nas etapas a seguir falhará.

c. Volte para a página Stack Details (Detalhes da pilha) do console do AWS CloudFormation.5. Escolha Other Actions (Outras ações) e Delete Stack (Excluir pilha).6. Na caixa de diálogo de confirmação de Delete Stack (Excluir pilha), selecione Yes, Delete (Sim,

excluir).

O status muda para DELETE_IN_PROGRESS. Se a exclusão for concluída com êxito, o Status seráalterado eventualmente para DELETE_COMPLETE.

7. Quando você retornar à lista de pilhas, você não verá mais a pilha excluída.

Uso de operações AWS CLI ou SDK

Permissões mínimas

Para excluir uma função de rotação do Lambda que criou usando um dos modelos do AWSServerless Application Repository, você deve ter as permissões necessárias para executarcada uma das operações da API ou as operações equivalentes da AWS CLI indicadas nas

133

Page 140: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExclusão de funções de rotação

etapas a seguir. Você pode conceder todas essas anexando as duas políticas gerenciadas daAWS a seguir:

• SecretsManagerReadWrite• IAMFullAccess

1. Abra um prompt de comando para executar os comandos da AWS CLI.2. Para determinar qual pilha do AWS CloudFormation contém uma função específica, execute o

seguinte comando com o nome da função transmitido como o parâmetro --physical-resource-id. Isso retorna uma lista de recursos associados à pilha que possui a função especificada.

$ aws cloudformation describe-stack-resources --physical-resource-id MyLambdaRotationFunction{{ "StackResources": [ { "StackName": "aws-serverless-repository-MyLambdaCreationStack", "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "LogicalResourceId": "SecretsManagerRotationTemplate", "PhysicalResourceId": "MySecretsManagerRotationFunction", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2018-04-27T18:03:05.490Z", "ResourceStatus": "CREATE_COMPLETE" }, { "StackName": "aws-serverless-repository-MyLambdaCreationStack", "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/aws-serverless-repository-MyLambdaCreationStack/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "LogicalResourceId": "SecretsManagerRotationTemplateRole", "PhysicalResourceId": "aws-serverless-repository-SecretsManagerRotationTe-<random-chars>", "ResourceType": "AWS::IAM::Role", "Timestamp": "2018-04-27T18:03:00.623Z", "ResourceStatus": "CREATE_COMPLETE" } ]}

3. Procure os valores de resposta de StackId e PhysicalResourceId associados ao"ResourceType" :"AWS::IAM::Role", o nome da função do IAM com permissões parainvocar a função. Se você adicionou qualquer política de permissão em linha à função do IAM, emvez de editar as políticas em linha existentes, ou se anexou qualquer política gerenciada adicional,deverá excluir ou desanexar essas políticas antes de o AWS CloudFormation excluir a pilha.

Para determinar se você tem políticas em linha incorporadas, execute o seguinte comando.

$ aws iam list-role-policies --role-name <role-name-from-PhysicalResourceId-on-previous-command>{ "PolicyNames": [ "SecretsManagerRotationTemplateRolePolicy0", "SecretsManagerRotationTemplateRolePolicy1" ]}

As políticas em linha nomeadas conforme mostrado aqui são esperadas, e você não precisa fazernada com elas.

134

Page 141: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExclusão de funções de rotação

4. Se você vir políticas listadas diferentes dessas duas, deverá excluí-las da função para poderprosseguir.

$ aws iam delete-role-policy --role-name <role-name-from-PhysicalResourceId-on-previous-command> / --policy-name <policy-name-from-previous-command>

5. Agora verifique se você tem uma política gerenciada anexada à função:

$ aws iam list-attached-role-policies --role-name <role-name-from-PhysicalResourceId-on-previous-command>

6. Se você vir qualquer política listada na saída do comando anterior, execute este comandopreparatório final para desanexá-la da função:

$ aws iam detach-role-policy --role-name <role-name-from-PhysicalResourceId-on-previous-command> / --policy-arn <ARN-of-policy-discovered-in-previous-command>

7. Agora você pode excluir a pilha, o que exclui todos os recursos associados. Passe o nome da pilhaque você recuperou na etapa 2 como --stack-name:

$ aws cloudformation delete-stack --stack-name aws-serverless-repository-MyLambdaCreationStack

O AWS CloudFormation excluirá a função do IAM e a função de rotação do Lambda logo apósexecutar este comando.

135

Page 142: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConectar-se ao Secrets Manager

por meio de um VPC endpoint

Usar o Secrets Manager com VPCendpoints

As seções a seguir explicam estas tarefas:

• Conectar o Secrets Manager e um VPC endpoint.• Criar um VPC endpoint do Secrets Manager.• Criar uma política de endpoint para o endpoint do Secrets Manager.

Para obter informações sobre VPC endpoints, consulte o artigo na documentação do serviço da VPC, VPCEndpoints.

Tópicos• Conectar-se ao Secrets Manager por meio de um VPC endpoint (p. 136)• Criar um VPC endpoint privado do Secrets Manager (p. 137)• Conexão a um VPC endpoint privado do Secrets Manager (p. 139)• Utilização de um VPC endpoint privado em uma declaração de política (p. 140)• Criar uma política de endpoint para o VPC endpoint do Secrets Manager (p. 142)• Auditoria do uso do VPC endpoint do Secrets Manager (p. 143)

Conectar-se ao Secrets Manager por meio de umVPC endpoint

Em vez de conectar sua VPC à Internet, você pode conectá-la diretamente ao Secrets Manager por meiode um endpoint privado que você configura em sua VPC. Quando você usa um endpoint do serviço VPC,a comunicação entre sua VPC e o Secrets Manager ocorre inteiramente dentro da rede da AWS e nãorequer acesso público à Internet.

Secrets Manager suporta Amazon VPC parâmetros de interface fornecido pela AWS PrivateLink. Umou mais parâmetros de avaliação de cada VPC são representados por um ou mais interfaces de redeelásticas com endereços IP privados nas suas sub-redes VPC.

O endpoint da interface da VPC conecta a VPC diretamente ao Secrets Manager sem um dispositivo NAT,conexão VPN ou conexão ao AWS Direct Connect. As instâncias em sua VPC não exigem endereços IPpúblicos para se comunicarem com o Secrets Manager.

Para que a sua função de rotação do Lambda encontre o endpoint privado, execute uma das seguintesetapas:

• Você pode especificar o VPC endpoint manualmente nas operações de API doSecrets Manager enos comandos da CLI da AWS. Por exemplo, o comando a seguir usa o parâmetro endpoint-url paraespecificar um VPC endpoint em um comando para de AWS CLI para o Secrets Manager.

136

Page 143: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um VPC endpoint privado do Secrets Manager

$ aws secretsmanager list-secrets --endpoint-url https://vpce-1234a5678b9012c-12345678.secretsmanager.us-west-2.vpce.amazonaws.com

• Se você habilitar nomes de hosts DNS privados para o endpoint privado da VPC, não precisaráespecificar o URL do endpoint. A norma Secrets Manager DNS nome de anfitrião Secrets Manager mmCLI e SDKs usar por predefinição (https://secretsmanager.<region>.amazonaws.com) resolveautomaticamente o seu ponto final do VPC.

Você também pode usar os logs do AWS CloudTrail para auditar o uso de segredos por meio do VPCendpoint. Além disso, você pode usar as condições no IAM e as políticas baseadas em recursos desegredos para negar acesso a qualquer solicitação que não seja proveniente de uma VPC ou VPCendpoint especificado.

Note

Tome cuidado ao criar políticas de chaves do IAM com base em seu VPC endpoint. Se umadeclaração de política exigir que as solicitações se originem em uma VPC ou VPC endpointespecífico, poderá haver falha nas solicitações de outros serviços da AWS que interagem com osegredo em seu nome. Para obter ajuda, consulte Utilização das condições do VPC endpoint empolíticas com permissões do Secrets Manager (p. 182).

Regiões

O Secrets Manager oferece suporte a VPC endpoints em todas as regiões da AWS onde a Amazon VPC eo Secrets Manager estejam disponíveis.

Criar um VPC endpoint privado do Secrets ManagerPara criar um VPC endpoint privado do Secrets Manager

Siga as etapas em uma das seguintes guias:

Como usar o Console de Gerenciamento da AWS

1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.2. Na barra de navegação, use o seletor de região para escolher a região.3. No painel de navegação, escolha Endpoints. No painel principal, escolha Create Endpoint (Criar

endpoint).4. Para Service category (Categoria de serviço), escolha AWS Services (Serviços da AWS).5. Na lista Service Name (Nome do serviço), escolha a entrada do endpoint da interface do Secrets

Manager na região. Por exemplo, na região Leste dos EUA (Virgínia), o nome da entrada écom.amazonaws.us-east-1.secretsmanager.

6. Em VPC, escolha sua VPC.7. Em Subnets (Sub-redes), escolha uma sub-rede de cada zona de disponibilidade a ser incluída.

O VPC endpoint pode abranger várias zonas de disponibilidade. A AWS cria uma interface derede elástica para o VPC endpoint em cada sub-rede que você escolhe. Cada interface de redetem um nome de host DNS e um endereço IP privado.

8. Por padrão, a AWS habilita a opção Enable Private DNS Name (Habilitarnome DNS privado), o nome do host padrão da Secrets Manager (https://secretsmanager.<region>.amazonaws.com) resolve automaticamente para seu VPCendpoint. Essa opção facilita usar o VPC endpoint. lá estão Secrets Manager mm CLI e SDKs use

137

Page 144: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar um VPC endpoint privado do Secrets Manager

o nome de anfitrião DNS padrão por predefinição, para que não necessite de especificar o URLdo ponto final do VPC em aplicações e comandos.

Esse recurso funciona somente quando você define os atributos enableDnsSupport eenableDnsHostnames da VPC como true, os valores padrão. Para definir esses atributos,atualize o suporte do DNS para sua VPC.

9. Para Security group (Grupo de segurança), selecione ou crie um grupo de segurança.

Você pode usar security groups para controlar o acesso ao seu endpoint, da mesma forma quevocê usaria um firewall.

10. Escolha Create endpoint.

Os resultados mostram o VPC endpoint, incluindo o ID do VPC endpoint e os nomes de DNS que vocêusa para Conectar-se a seu VPC endpoint.

Também é possível usar as ferramentas da Amazon VPC para visualizar e gerenciar seu endpoint.Isso inclui criar uma notificação para um endpoint, alterar propriedades do endpoint e excluir oendpoint. Para obter instruções, consulte Interface de VPC Endpoints.

Uso de operações AWS CLI ou SDK

Você pode usar o comando create-vpc-endpoint na AWS CLI para criar um VPC endpoint que seconecta ao Secrets Manager.

Use interface como o tipo de VPC endpoint. Além disso, use um valor de nome de serviço queinclua secretsmanager e a região em que sua VPC está localizada.

O comando não inclui o PrivateDnsNames porque o VPC assume o valor por defeito true. Paradesativar a opção, pode incluir o parâmetro com um valor de false. Os nomes DNS privados estãodisponíveis apenas quando o enableDnsHostnames e enableDnsSupport atributos do seu VPCestão definidos para true. Para definir estes atributos, utilize o botão ModifyVpcAttribute API.

O diagrama a seguir mostra a sintaxe geral do comando.

aws ec2 create-vpc-endpoint --vpc-id <vpc id> \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.<region>.secretsmanager \ --subnet-ids <subnet id> \ --security-group-id <security group id>

Por exemplo, o seguinte comando cria um VPC endpoint na VPC com o ID de VPC vpc-1a2b3c4d,que está na região us-west-2. Ele especifica apenas uma ID de sub-rede para representar as zonasde disponibilidade, mas você pode especificar muitas. Os VPC endpoints exigem o ID do grupo desegurança.

A saída inclui o ID do VPC endpoint e nomes DNS que você pode usar para se conectar ao seu novoVPC endpoint.

$ aws ec2 create-vpc-endpoint --vpc-id vpc-1a2b3c4d \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-west-2.secretsmanager \ --subnet-ids subnet-e5f6a7b8c9 \ --security-group-id sg-1a2b3c4d{ "VpcEndpoint": { "PolicyDocument": "{\n \"Statement\": [\n {\n \"Action\": \"*\", \n \"Effect\": \"Allow\", \n \"Principal\": \"*\", \n \"Resource\": \"*\"\n }\n ]\n}",

138

Page 145: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConexão a um VPC endpoint privado do Secrets Manager

"VpcId": "vpc-1a2b3c4d", "NetworkInterfaceIds": [ "eni-abcdef12" ], "SubnetIds": [ "subnet-e5f6a7b8c9" ], "PrivateDnsEnabled": true, "State": "pending", "ServiceName": "com.amazonaws.us-west-2.secretsmanager", "RouteTableIds": [], "Groups": [ { "GroupName": "default", "GroupId": "sg-1a2b3c4d" } ], "VpcEndpointId": "vpce-1234a5678b9012c", "VpcEndpointType": "Interface", "CreationTimestamp": "2018-06-12T20:14:41.240Z", "DnsEntries": [ { "HostedZoneId": "Z7HUB22UULQXV", "DnsName": "vpce-1234a5678b9012c-12345678.secretsmanager.us-west-2.vpce.amazonaws.com" }, { "HostedZoneId": "Z7HUB22UULQXV", "DnsName": "vpce-1234a5678b9012c-12345678-us-west-2a.secretsmanager.us-west-2.vpce.amazonaws.com" }, { "HostedZoneId": "Z1K56Z6FNPJRR", "DnsName": "secretsmanager.us-west-2.amazonaws.com" } ] }}

Conexão a um VPC endpoint privado do SecretsManager

Como, por padrão, a VPC habilita automaticamente nomes DNS privados quando você cria um VPCendpoint privado, normalmente você não precisa fazer nada além de usar o nome DNS do endpoint padrãopara sua região. O nome DNS do endpoint é resolvido automaticamente para o endpoint correto dentro daVPC:

https://secretsmanager.<region>.amazonaws.com

A AWS CLI e SDKs use este nome de anfitrião por predefinição, para que possa começar a utilizar o pontofinal do VPC sem alterar nada nos seus scripts e aplicação.

Se você não habilitar nomes DNS privados, ainda poderá se conectar ao endpoint usando o nome DNScompleto.

Por exemplo, este comando list-secrets usa o parâmetro endpoint-url para especificar o VPC endpointprivado. Para usar um comando como esse, substitua o ID do VPC endpoint privado do exemplo na suaconta.

139

Page 146: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUtilização de um VPC endpoint

privado em uma declaração de política

aws secretsmanager list-secrets --endpoint-url https://vpce-1234a5678b9012c-12345678.secretsmanager.us-west-2.vpce.amazonaws.com

Utilização de um VPC endpoint privado em umadeclaração de política

Você pode usar políticas do IAM e políticas de segredos do Secrets Manager para controlar o acesso aosseus segredos. Você também pode usar chaves de condições globais para restringir essas políticas combase no VPC endpoint ou VPC na solicitação.

• Use a chave de condição aws:sourceVpce para conceder ou restringir o acesso a um segredo combase no VPC endpoint.

• Use a chave de condição aws:sourceVpc para conceder ou restringir o acesso a um segredo combase na VPC que hospeda o endpoint privado.

Note

Tenha cuidado ao criar políticas de segredo e do IAM com base em seu VPC endpoint. Se umadeclaração de política exigir que as solicitações se originem em uma VPC ou VPC endpointespecífico, poderá haver falha nas solicitações de outros serviços da AWS que acessam osegredo em seu nome. Para obter mais informações, consulte Utilização das condições do VPCendpoint em políticas com permissões do Secrets Manager (p. 182).Além disso, a chave de condição aws:sourceIP não funcionará se a solicitação vier de umAmazon VPC endpoint. Para restringir solicitações a um VPC endpoint, use as chaves decondições aws:sourceVpce ou aws:sourceVpc. Para obter mais informações, consulte VPCendpoints – controle do uso de endpoints no Guia do usuário do Amazon VPC.

Por exemplo, o exemplo a seguir de política de segredo permite que um usuário execute operações doSecrets Manager somente quando a solicitação é fornecida por meio do VPC endpoint especificado.

Quando um usuário envia uma solicitação ao Secrets Manager, o Secrets Manager compara o ID doVPC endpoint na solicitação com o valor da chave de condição aws:sourceVpce na política. Se nãocorresponderem, o Secrets Manager negará a solicitação.

Para utilizar uma apólice como esta, substitua o marcador de posição AWS account ID e o parâmetro VPCIDs com valores válidos para a sua conta.

{ "Id": "example-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableSecretsManagerpermissions", "Effect": "Allow", "Principal": {"AWS":["123456789012"]}, "Action": ["secretsmanager:*"], "Resource": "*" }, { "Sid": "RestrictGetSecretValueoperation", "Effect": "Deny", "Principal": "*", "Action": ["secretsmanager:GetSecretValue"], "Resource": "*", "Condition": {

140

Page 147: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioUtilização de um VPC endpoint

privado em uma declaração de política

"StringNotEquals": { "aws:sourceVpce": "vpce-1234a5678b9012c" } } }

]}

Você também pode usar a chave de condição aws:sourceVpc para restringir o acesso a seus segredoscom base na VPC na qual o VPC endpoint reside.

A seguinte política de segredos de amostra permite que os comandos criem e giram segredos apenasquando são enviados vpc-12345678. Além disso, a política permite operações que utilizam o acesso aovalor secreto encriptado apenas quando os pedidos vêm de vpc-2b2b2b2b. Pode utilizar uma políticacomo esta se executar uma aplicação num VPC, mas utilizar um segundo VPC isolado para funções degestão.

Para utilizar uma apólice como esta, substitua o marcador de posição AWS account ID e o parâmetro VPCIDs com valores válidos para a sua conta.

{ "Id": "example-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdministrativeActionsfromONLYvpc-12345678", "Effect": "Allow", "Principal": {"AWS": "123456789012"}, "Action": [ "secretsmanager:Create*", "secretsmanager:Put*", "secretsmanager:Update*", "secretsmanager:Delete*","secretsmanager:Restore*", "secretsmanager:RotateSecret","secretsmanager:CancelRotate*", "secretsmanager:TagResource","secretsmanager:UntagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "AllowSecretValueAccessfromONLYvpc-2b2b2b2b", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": ["secretsmanager:GetSecretValue"], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } }, { "Sid": "AllowReadActionsEverywhere", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "secretsmanager:Describe*","secretsmanager:List*","kms:GetRandomPassword" ], "Resource": "*",

141

Page 148: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriar uma política de endpoint para

o VPC endpoint do Secrets Manager

} ]}

Criar uma política de endpoint para o VPC endpointdo Secrets Manager

Depois de criar um VPC endpoint do Secrets Manager, você pode anexar uma política de endpoint paracontrolar as atividades relacionadas a segredos no endpoint. Por exemplo, você pode anexar uma políticade endpoint para definir as ações do Secrets Manager executadas, as ações executadas nos segredos, osusuários ou funções do IAM que executam essas ações e as contas acessadas por meio do VPC endpoint.Para obter informações adicionais sobre políticas de endpoint, incluindo uma lista dos serviços da AWScompatíveis com políticas de endpoint, consulte Usar políticas de VPC endpoint.

Note

A AWS não compartilha VPC endpoints entre serviços da AWS. Se você usar VPC endpoints paravários serviços da AWS, como o Secrets Manager e o S3, será necessário anexar uma políticadistinta a cada endpoint.

Exemplo: Permitir acesso ao Secrets Manager para uma conta específica

O exemplo a seguir concede acesso a todos os usuários e as funções na conta 123456789012.

{ "Statement": [ { "Sid": "AccessSpecificAccount", "Principal": {"AWS": "123456789012"}, "Action": "secretsmanager:*", "Effect": "Allow", "Resource": "*" } ] }

Exemplo: Permitir o acesso a um único segredo no Secrets Manager parâmetro de avaliação

O exemplo a seguir restringe o acesso somente ao segredo especificado.

{ "Statement": [ { "Principal": "*", "Action": "secretsmanager:*", "Effect": "Allow", "Resource": [ "arn:aws:secretsmanager:us-west:123456789012:secret:a_specific_secret_name-a1b2c3" ] } ] }

142

Page 149: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAuditoria do uso do VPC endpoint do Secrets Manager

Auditoria do uso do VPC endpoint do SecretsManager

Quando uma solicitação para o Secrets Manager usa um VPC endpoint, o ID do VPC endpoint aparece naentrada de log do AWS CloudTrail (p. 144) que registra a solicitação. Você pode usar o ID de endpointpara auditar o uso do seu VPC endpoint do Secrets Manager.

Por exemplo, este exemplo de entrada de log registra uma solicitação de GenerateDataKey que usou oVPC endpoint. Nesse exemplo, o campo vpcEndpointId aparece no final da entrada de log. Para nãoestender a explicação, muitas partes irrelevantes do exemplo foram omitidas.

{ "eventVersion":"1.05", "userIdentity": { "type": "IAMUser", "arn": "arn:aws:iam::123456789012:user/Anika", "accountId": "123456789012", "userName": "Anika" }, "eventTime":"2018-01-16T05:46:57Z", "eventSource":"secretsmanager.amazonaws.com", "eventName":"GetSecretValue", "awsRegion":"us-west-2", "sourceIPAddress":"172.01.01.001", "userAgent":"aws-cli/1.14.23 Python/2.7.12 Linux/4.9.75-25.55.amzn1.x86_64 botocore/1.8.27", "requestID":"EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "eventID":"EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "readOnly":true, "eventType":"AwsApiCall", "recipientAccountId":"123456789012", "vpcEndpointId": "vpce-1234a5678b9012c" }

143

Page 150: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRegistro em log de chamadas de API do AWS

Secrets Manager com o AWS CloudTrail

Monitorização da utilização do seuAWS Secrets Manager segredos

Como melhor prática, você deve monitorar seus segredos para garantir que eles sejam usados e registrarquaisquer alterações neles. Isso ajuda a garantir que qualquer alteração ou uso inesperados possam serinvestigados e que as alterações indesejadas possam ser revertidas. O AWS Secrets Manager atualmenteoferece suporte a dois serviços da AWS que permitem que você monitore sua organização e a atividade.

Tópicos• Registro em log de chamadas de API do AWS Secrets Manager com o AWS CloudTrail (p. 144)• Eventos do Amazon CloudWatch (p. 148)

Registro em log de chamadas de API do AWSSecrets Manager com o AWS CloudTrail

AWS Secrets Manager integra-se com AWS CloudTrail, um serviço que fornece um registo das açõesrealizadas por um utilizador, função ou AWS serviço em Secrets Manager. CloudTrail capta todas aschamadas API para Secrets Manager como eventos, incluindo chamadas do Secrets Manager e dechamadas de código para o Secrets Manager APIs. Se criar um trilho, pode ativar a entrega contínua deCloudTrail eventos para um Amazon S3 de produtos, incluindo eventos para Secrets Manager. Se nãoconfigurar uma trilha, você ainda poderá visualizar os eventos mais recentes no console do CloudTrailem Event history. Usando as informações coletadas pelo CloudTrail, é possível determinar a solicitaçãoenviada ao Secrets Manager, o endereço IP da solicitação, quem enviou a solicitação, o horário dasolicitação e detalhes adicionais.

Para saber mais sobre CloudTrail, consulte AWS CloudTrail User Guide.

Registro em log de eventos não relacionados a API doAWS Secrets ManagerAlém de registrar em log as chamadas de API da AWS, o CloudTrail captura outros eventos relacionadosque possam causar impacto na segurança ou na conformidade da sua conta da AWS ou ajudá-lo asolucionar problemas operacionais. O CloudTrail registra esses eventos como eventos de serviços nãorelacionados a API.

O Secrets Manager tem três eventos de serviços não relacionados a API:

• RotationAbandoned (Multímodo) - um mecanismo para o informar que o serviço Secrets Managerremoveu a etiqueta de EXPEDIÇÃO de uma versão existente de um segredo. Quando cria manualmenteuma nova versão de um segredo, envia uma mensagem a assinalar o abandono da rotação atualem curso a favor da nova versão secreta. Como resultado, Secrets Manager remove a etiquetaAWSPENDING (Aspender) para permitir que futuras rotações sejam bem sucedidas e publiquem umCloudTrail para consciencializar sobre a mudança.

• Evento RotationStarted – um mecanismo que notifica você de uma rotação de início secreto.• Evento RotationSucceeded – um mecanismo que notifica você de um evento de rotação bem-

sucedido.• Evento RotationFailed – um mecanismo para informar que a rotação secreta falhou para um

aplicativo.

144

Page 151: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSecrets Manager Informações em CloudTrail

Secrets Manager Informações em CloudTrailQuando você cria sua conta da AWS, o CloudTrail é habilitado. Quando ocorre uma atividade no SecretsManager, ela é registrada em um evento do CloudTrail com outros eventos de serviços da AWS no Eventhistory (Histórico de eventos). Você pode visualizar, pesquisar e fazer download de eventos recentes emsua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventosdo CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o SecretsManager, crie uma trilha. Uma trilha permite CloudTrail para fornecer arquivos de log a um bucket doAmazon S3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões. A trilharegistra eventos de todas as regiões na partição da AWS e fornece os arquivos de log para o bucket doAmazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS para analisarmais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obter maisinformações, consulte:

• Visão geral da criação de uma trilha• CloudTrail Integrações e serviços suportados• Configurar notificações SNS Amazon para CloudTrail• Receber arquivos de log do CloudTrail de várias regiões e receber arquivos de log do CloudTrail de

várias contas

O CloudTrail registra todas as ações do Secrets Manager e documenta as ações no Referência de AWSSecrets Manager API. Por exemplo, as chamadas para as seções CreateSecret, GetSecretValue eRotateSecret geram entradas nos arquivos de log do CloudTrail.

Cada evento ou entrada no log contém informações sobre quem gerou a solicitação. As informações deidentidade ajudam a determinar:

• Se as credenciais raiz ou usuário do IAM geraram a solicitação.• Se as credenciais de segurança temporárias para uma função ou usuário federado geraram a

solicitação.• Se outro serviço do AWS gerou a solicitação.

Para a notificação de entrega do arquivo de log, configure o CloudTrail para publicar notificações doAmazon SNS. Para obter mais informações, consulte Configuração de notificações do Amazon SNS para oCloudTrail.

Você pode agregar arquivos de log do AWS Secrets Manager de várias regiões da AWS e contas da AWSem um único bucket do Amazon S3.

Para obter mais informações, consulte Recebimento de arquivos de log do CloudTrail de várias regiões eRecebimento de arquivos de log do CloudTrail de várias contas.

Recuperar entradas de arquivo de log do SecretsManagerÉ possível recuperar eventos individuais do CloudTrail usando uma das seguintes técnicas:

Para recuperar Secrets Manager eventos de CloudTrail registos

Como usar o Console de Gerenciamento da AWS

O console do CloudTrail permite visualizar os eventos que ocorreram nos últimos 90 dias.

145

Page 152: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioNoções básicas das entradas dos

arquivos de log do Secrets Manager

1. Abra o console do CloudTrail em https://console.aws.amazon.com/cloudtrail/.2. Certifique-se de que o console esteja apontando para a região em que os eventos ocorreram. O

console mostra apenas os eventos que ocorreram na região selecionada. Escolha a região nalista suspensa no canto superior direito do console.

3. No painel de navegação à esquerda, escolha Histórico de eventos.4. Escolha o critério Filtro e/ou um Período para ajudar a encontrar o evento que você está

procurando. Por exemplo, para ver todos os eventos do Secrets Manager, em Selecionaratributo, escolha Origem do evento. Em seguida, em Inserir origem do evento, escolhasecretsmanager.amazonaws.com.

5. Para ver outros detalhes, escolha a seta de expansão ao lado do evento. Para ver todas asinformações disponíveis, escolha Visualizar evento.

Uso de operações AWS CLI ou SDK

1. Abra uma janela de comando para executar comandos da AWS CLI.2. Execute um comando semelhante ao seguinte: Para legibilidade aqui, a saída é exibida como

quebra de texto, mas a saída real não é.

$ aws cloudtrail lookup-events --region us-east-1 --lookup-attributes AttributeKey=EventSource,AttributeValue=secretsmanager.amazonaws.com{ "Events": [ { "EventId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE", "EventName": "CreateSecret", "EventTime": 1525106994.0, "Username": "Administrator", "Resources": [], "CloudTrailEvent": "{\"eventVersion\":\"1.05\",\"userIdentity\":{\"type\":\"IAMUser\",\"principalId\":\"AKIAIOSFODNN7EXAMPLE\", \"arn\":\"arn:aws:iam::123456789012:user/Administrator\",\"accountId\":\"123456789012\",\"accessKeyId\":\"AKIAIOSFODNN7EXAMPLE\", \"userName\":\"Administrator\"},\"eventTime\":\"2018-04-30T16:49:54Z\",\"eventSource\":\"secretsmanager.amazonaws.com\", \"eventName\":\"CreateSecret\",\"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"192.168.100.101\", \"userAgent\":\"<useragent string>\",\"requestParameters\":{\"name\":\"MyTestSecret\", \"clientRequestToken\":\"EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE\"},\"responseElements\":null, \"requestID\":\"EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE\",\"eventID\":\"EXAMPLE4-90ab-cdef-fedc-ba987EXAMPLE\", \"eventType\":\"AwsApiCall\",\"recipientAccountId\":\"123456789012\"}" } ]}

Noções básicas das entradas dos arquivos de log doSecrets ManagerUma trilha permite a entrega de eventos como arquivos de log para um bucket do Amazon S3especificado. Os arquivos de log do CloudTrail contêm uma ou mais entradas de log. Um eventorepresenta uma única solicitação de qualquer origem e inclui informações sobre a ação solicitada, a data ehora da ação, parâmetros da solicitação e assim por diante. Os arquivos de log do CloudTrail não coletam

146

Page 153: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioNoções básicas das entradas dos

arquivos de log do Secrets Manager

um rastreamento de pilha ordenado das chamadas da API pública. Assim, elas não são exibidas emnenhuma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma chamada CreateSecret deamostra:

{ "eventVersion": "1.05", "userIdentity": { "type": "Root", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myusername", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2018-04-03T17:43:50Z" }} }, "eventTime": "2018-04-03T17:50:55Z", "eventSource": "secretsmanager.amazonaws.com", "eventName": "CreateSecret", "awsRegion": "us-west-2", "requestParameters": { "name": "MyDatabaseSecret", "clientRequestToken": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE" }, "responseElements": null, "requestID": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "eventID": "EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

O exemplo a seguir mostra uma entrada de log do CloudTrail para uma chamada DeleteSecret deamostra:

{ "eventVersion": "1.05", "userIdentity": { "type": "Root", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myusername", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2018-04-03T17:43:50Z" }} }, "eventTime": "2018-04-03T17:51:02Z", "eventSource": "secretsmanager.amazonaws.com", "eventName": "DeleteSecret", "awsRegion": "us-west-2", "requestParameters": { "recoveryWindowInDays": 30, "secretId": "MyDatabaseSecret" }, "responseElements": { "name": "MyDatabaseSecret", "deletionDate": "May 3, 2018 5:51:02 PM", "aRN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyDatabaseSecret-a1b2c3"

147

Page 154: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEventos do Amazon CloudWatch

}, "requestID": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "eventID": "EXAMPLE3-90ab-cdef-fedc-ba987EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

Eventos do Amazon CloudWatchO Secrets Manager pode trabalhar com o Eventos do CloudWatch para acionar alertas quando operaçõesespecificadas pelo administrador ocorrerem em uma organização. Por exemplo, devido à sensibilidadede tais operações, os administradores talvez queiram ser avisados sobre segredos excluídos ou sobre arotação de segredos. Talvez você queira receber um alerta se alguém tentar usar uma versão de segredono período de espera para ser excluído. Você pode configurar as regras do Eventos do CloudWatchpara procurar essas operações e, em seguida, enviar os eventos gerados para "destinos" definidos peloadministrador. Um destino pode ser um tópico do Amazon SNS que envia e-mails ou mensagens de textoa seus inscritos. Você também pode criar uma função do AWS Lambda simples acionada pelo evento, queregistra em log os detalhes da operação para análise posterior.

Para saber mais sobre o Eventos do CloudWatch, incluindo como configurá-lo e habilitá-lo, consulte o Guiado usuário do Eventos do Amazon CloudWatch.

A monitorizar versões secretas agendadas paraeliminaçãoÉ possível usar uma combinação de AWS CloudTrail, Amazon CloudWatch Logs, e Amazon SimpleNotification Service (Amazon SNS) para criar um alarme que notifique você sobre qualquer tentativade acessar uma versão de um segredo pendente de exclusão. Se você receber uma notificação de umalarme, talvez queira cancelar a exclusão do segredo para ter mais tempo para decidir se deseja realmenteexcluí-lo. Sua investigação talvez resulte na restauração do segredo porque ainda precisa dele. Comoalternativa, talvez seja necessário atualizar o usuário com detalhes do novo segredo a ser usado.

Os procedimentos a seguir explicam como receber uma notificação sempre que uma solicitação para aoperação GetSecretValue que resulta em uma mensagem de erro específica gravada nos arquivos delog do CloudTrail. Outras operações da API podem ser executadas na versão do segredo sem acionar oalarme. Isto CloudWatch o alarme deteta a utilização que pode indicar uma pessoa ou aplicação utilizandocredenciais desatualizadas.

Antes de iniciar estes procedimentos, tem de ligar CloudTrail na região AWS e conta onde pretendemonitorizar AWS Secrets ManagerPedidos API. Para obter instruções, vá a Criar um trilho pela primeiravez na AWS CloudTrail Guia do Utilizador.

Etapas• Parte 1: Configurar CloudTrail entrega do ficheiro de registo para CloudWatch registos (p. 148)• Parte 2: Criar o alarme do CloudWatch (p. 149)• Parte 3: Monitorização CloudWatch para Segredos Eliminados (p. 150)

Parte 1: Configurar CloudTrail entrega do ficheiro de registo paraCloudWatch registosVocê deve configurar a entrega dos seus arquivos de log do CloudTrail para o CloudWatch Logs. Você fazisso para que o CloudWatch Logs possa monitorá-los em solicitações da API do Secrets Manager pararecuperar uma versão de um segredo com exclusão pendente.

148

Page 155: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioA monitorizar versões secretas agendadas para eliminação

Para configurar a entrega de arquivos de log do CloudTrail para o CloudWatch Logs

1. Abra o console do CloudTrail em https://console.aws.amazon.com/cloudtrail/.2. Na barra de navegação superior, escolha a região da AWS para monitoração de segredos.3. No painel de navegação à esquerda, escolha Trails (Trilhas) e escolha o nome da trilha a ser

configurada para o CloudWatch.4. Em Configuração de trilhos , percorra a página para baixo até CloudWatch Logs e, em seguida,

escolha o ícone de edição ( ).5. Em New or existing log group, digite um nome para o grupo de log, como CloudTrail/

MyCloudWatchLogGroup.6. para IAM função, pode usar a função predefinida denominada

CloudTrailFunção_Registos_Relógio_Cloud. Essa função tem uma política de função padrão com aspermissões necessárias para entregar eventos do CloudTrail para o grupo de logs.

7. Escolha Continue para salvar suas configurações.8. Na página AWS CloudTrail will deliver CloudTrail events associated with API activity in your account to

your CloudWatch Logs log group, selecione Allow.

Parte 2: Criar o alarme do CloudWatchPara receber uma notificação quando uma operação de API GetSecretValue do Secrets Managersolicitar acesso a uma versão de um segredo pendente de exclusão, crie um alarme do CloudWatch econfigure a notificação.

Criar um alarme do CloudWatch para monitorar o uso de uma versão de segredo pendente deexclusão

1. Faça login no console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.2. Na barra de navegação superior, escolha a região da AWS cujos segredos você deseja monitorar.3. No painel de navegação esquerdo, selecione Logs.4. Na lista de Grupos de registo, selecione a caixa de verificação junto ao grupo de registo que criou

no procedimento anterior, tal como CloudTrail/MyCloudWatchLogGroup. Escolha Create Metric Filter(Criar filtro de métrica).

5. Para Filter Pattern, digite ou cole o seguinte:

{ $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

Escolha Assign Metric (Atribuir métrica).6. Na página Create Metric Filter and Assign a Metric (Criar filtro de métrica e atribuir uma métrica), faça

o seguinte:

a. Em Metric Namespace (Namespace da métrica), digite CloudTrailLogMetrics.b. Em Metric Name (Nome da métrica), digite AttemptsToAccessDeletedSecrets.c. Escolha Show advanced metric settings, em seguida, se necessário, para Metric Value, digite 1.d. Selecione Create Filter (Criar filtro).

7. Na caixa de filtro, selecione Create Alarm (Criar alarme).8. Na janela Create Alarm (Criar alarme), faça o seguinte:

a. Para Name (Nome), digite AttemptsToAccessDeletedSecretsAlarm.b. Em Whenever: (Sempre:), em is: (é:), escolha >= e digite 1.c. Ao lado de Send notification to:, siga um destes procedimentos:

149

Page 156: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioA monitorizar versões secretas agendadas para eliminação

• Para criar e usar um novo tópico do Amazon SNS, escolha New list e digite o nome do novotópico. Para Lista de e-mails:, digite pelo menos um endereço de e-mail. É possível digitar maisde um endereço de e-mail, basta separá-los com vírgulas.

• Para usar um tópico existente do Amazon SNS, escolha o nome do tópico a ser usado. Se alista não existir, escolha Select list (Selecionar lista).

d. Escolha Create Alarm.

Parte 3: Monitorização CloudWatch para Segredos EliminadosVocê criou seu alarme. Para testá-lo, crie uma versão de segredo e, em seguida, programe-o paraexclusão. Em seguida, tente recuperar o valor do segredo. Em breve, você recebe um e-mail no endereçoconfigurado no alarme. Ele alerta sobre o uso de uma versão do segredo programada para exclusão.

150

Page 157: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAutomatizar a criação de segredos

com oAWS CloudFormation

AWSServiços integrados aoAWSSecrets Manager

O AWS Secrets Manager funciona com outros serviços da AWS para fornecer soluções adicionais paraos desafios do seu negócio. Este tópico identifica os serviços que usam o Secrets Manager para adicionarfuncionalidades ou serviços que o Secrets Manager usa para executar tarefas.

Topics

• Automatizar a criação de segredos com oAWS CloudFormation (p. 156)• Monitorar segredos do Secrets Manager usando oAWS Config (p. 162)• Como proteger os segredos com o AWS Identity and Access Management (IAM) (p. 152)• Monitorar segredos com o AWS CloudTrail e oAmazon CloudWatch (p. 152)• Criptografar seus segredos com oAWS KMS (p. 152)• Recuperar segredos com o repositório de parâmetros APIs (p. 153)• Integração do Secrets Manager ao Amazon Elastic Container Service (p. 153)• Integrar o Secrets Manager ao AWS Fargate (p. 153)• Integração do Secrets Manager com o AWS IoT Greengrass (p. 154)• Gerenciar credenciais do repositório do SageMaker com oSecrets Manager (p. 154)• Usar o Security Hub para melhores práticas de segurança noSecrets Manager (p. 154)• Armazenar credenciais de registro do AWS CodeBuild com oSecrets Manager (p. 155)• Armazenar credenciais de registro do Amazon EMR com oSecrets Manager (p. 155)• Integrar o Zelkova a políticas de recursos doSecrets Manager (p. 155)

Automatizar a criação de segredos com oAWSCloudFormation

O Secrets Manager oferece suporte ao AWS CloudFormation e permite que você defina e faça referênciaa segredos a partir do seu modelo de pilha. O Secrets Manager define vários tipos de recurso do AWSCloudFormation que permitem que você crie um segredo e o associe ao serviço ou banco de dadosque tenha as credenciais armazenadas nele. É possível fazer referência a elementos no segredode outras partes do modelo, como recuperar o nome do usuário e a senha do segredo ao definir ousuário mestre e a senha em um novo banco de dados. É possível criar e anexar políticas baseadasem recurso a um segredo. Também é possível configurar a rotação definindo uma função do Lambdano modelo e associando a função ao novo segredo como sua função de rotação do Lambda. Para obtermais informações e um exemplo abrangente, consulte Automatizar a criação de segredos em AWSCloudFormation (p. 156).

Monitorar segredos com oAWS ConfigO AWS Secrets Manager integra-se ao AWS Config e fornece um acompanhamento mais fácil dasalterações de segredo no Secrets Manager. É possível usar duas regras gerenciadas adicionais do AWSConfig para definir as diretrizes organizacionais internas sobre as melhores práticas de gerenciamentode segredos. Além disso, é possível identificar rapidamente segredos que não estão em conformidadecom as regras de segurança, bem como receber notificações do Amazon SNS sobre as alterações naconfiguração de segredos. Por exemplo, você pode receber notificações SNS sobre uma lista de segredos

151

Page 158: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioComo proteger os segredos com o AWSIdentity and Access Management (IAM)

não configurados para rotação que permite que você conduza as melhores práticas de segurança pararotatividade de segredos.

Ao utilizar o recurso de agregadores do AWS Config, é possível visualizar uma lista de segredos e verificara conformidade em todas as contas e regiões de toda a organização e, ao fazer isso, criar melhorespráticas de gerenciamento de segredos em toda a organização de um único local.

Para saber mais sobre esse recurso, consulte Monitorar segredos do Secrets Manager usando oAWSConfig (p. 162).

Como proteger os segredos com o AWS Identityand Access Management (IAM)

O Secrets Manager usa o IAM para proteger o acesso aos segredos. O IAM fornece o seguinte:

• Autenticação – verifica a identidade de solicitações individuais. O Secrets Manager usa um processode login com senhas, chaves de acesso e tokens de autenticação multifator (MFA) para comprovar aidentidade dos usuários.

• Autorização – garante que apenas pessoas aprovadas possam executar operações em recursos daAWS, como segredos. Isso permite que você conceda acesso de gravação a segredos específicos paraum usuário e, ao mesmo tempo, conceda permissões de somente leitura em segredos diferentes paraoutro usuário.

Para obter mais informações sobre como proteger o acesso aos segredos usando o IAM, consulteAutenticação e controle de acesso para o AWS Secrets Manager (p. 38) neste guia. Para obterinformações completas sobre a IAM, consulte o Guia do usuário do IAM.

Monitorar segredos com o AWS CloudTrail eoAmazon CloudWatch

Você pode usar o CloudTrail e o CloudWatch para monitorar as atividades relacionadas a seus segredos.O CloudTrail captura as atividades da API em seus recursos da AWS por qualquer serviço da AWS egrava-as em arquivos de log em seus buckets do Amazon S3. O CloudWatch permite que você crie regrasque monitoram esses arquivos de log e acionam ações quando ocorrerem atividades de interesse. Porexemplo, uma mensagem de texto por alertar você sempre que alguém criar um novo segredo ou quandoum segredo for rotacionado com êxito. Você também poderá criar um alerta para quando um clientetentar usar uma versão obsoleta de um segredo em vez da versão atual. Isso pode ajudar a solucionarproblemas.

Para obter mais informações, consulte Monitorização da utilização do seu AWS Secrets Managersegredos (p. 144) neste guia. Para obter informações completas sobre a CloudWatch, consulte o Guiado usuário do Amazon CloudWatch. Para obter informações completas sobre a Eventos do CloudWatch,consulte o Guia do usuário do Eventos do Amazon CloudWatch.

Criptografar seus segredos com oAWS KMSO Secrets Manager usa o Algoritmo de criptografia AES (FIPS 197) padrão do setor para criptografar seussegredos. O Secrets Manager também usa chaves de criptografia fornecidas pelo AWS Key ManagementService (AWS KMS) para executar a criptografia de envelope do valor do segredo. Quando você criauma nova versão de um segredo, o Secrets Manager usa a chave mestra do cliente (CMK) do AWS

152

Page 159: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioRecuperar segredos com o repositório de parâmetros APIs

KMS especificada para gerar uma nova chave de dados. A chave de dados consiste em uma chaveAES simétrica de 256 bits. O Secrets Manager recebe uma cópia em texto simples e uma criptografadada chave de dados. O Secrets Manager usa a chave de dados de texto simples para criptografar ovalor do segredo e armazena a chave de dados criptografada nos metadados da versão do segredo.Quando você envia uma solicitação ao Secrets Manager mais tarde para recuperar o valor do segredo, oSecrets Manager primeiro recupera a chave de dados criptografada dos metadados e solicita que o AWSKMS descriptografe a chave de dados usando a CMK associada. O AWS KMS usa a chave de dadosdescriptografada para descriptografar o valor do segredo e nunca armazena chaves em um estado nãocriptografado, e remove as chaves da memória imediatamente quando não forem mais necessárias.

Para obter mais informações, consulte Como o AWS Secrets Manager usa o AWS KMS no AWS KeyManagement Service Developer Guide.

Recuperar segredos com o repositório deparâmetros APIs

O Parameter Store do da oferece armazenamento hierárquico seguro para gerenciamento de dados deconfiguração e gerenciamento de segredos. Você pode armazenar dados, como senhas, strings de bancode dados e códigos de licença como valores de parâmetro. No entanto, o repositório de parâmetros nãofornece serviços de rotação automática para os segredos armazenados. Em vez disso, o repositório deparâmetros permite que você armazene o segredo no Secrets Manager e faça referência a esse segredocomo um parâmetro repositório de parâmetros.

Quando você configura o repositório de parâmetros com o Secrets Manager, o secret-id do repositóriode parâmetros requer uma barra (/) antes da string do nome.

Para obter mais informações, consulte Fazer referência aos segredos do AWS Secrets Manager dosparâmetros do Parameter Store no Guia do usuário do AWS Systems Manager.

Integração do Secrets Manager ao Amazon ElasticContainer Service

O Amazon ECS permite injetar dados confidenciais em seus contêineres armazenando os dadosconfidenciais nos segredos do Secrets Manager e fazendo referência a eles na definição do contêiner. Osdados confidenciais armazenados em segredos do Secrets Manager podem ser expostos a um contêinercomo variáveis de ambiente ou como parte da configuração de log.

Para obter uma descrição completa da integração, consulte Especificar segredos de dados confidenciais.

Tutorial: Especificar dados confidenciais usando segredos do Secrets Manager

Integrar o Secrets Manager ao AWS FargateO AWS Fargate é uma tecnologia que pode ser usada com o Amazon ECS para executar contêineressem a necessidade de gerenciar servidores ou clusters de instâncias do Amazon ECS. Com o AWSFargate, não é mais necessário provisionar, configurar nem dimensionar os clusters de máquinas virtuaispara executar contêineres. Isso elimina a necessidade de escolher tipos de servidor, decidir quandodimensionar clusters ou otimizar o agrupamento de clusters.

Ao executar suas tarefas e serviços do Amazon ECS com o tipo de inicialização do Fargate ou umprovedor de capacidade do Fargate, empacote o aplicativo em contêineres, especifique os requisitos deCPU e memória, defina as políticas de rede e do IAM e inicie o aplicativo. Cada tarefa do Fargate tem seu

153

Page 160: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioIntegração do Secrets Manager com o AWS IoT Greengrass

próprio limite de isolamento e não compartilha o kernel subjacente, os recursos de CPU, os recursos dememória nem a interface de rede elástica com outra tarefa.

É possível configurar as interfaces do Fargate para permitir a recuperação de segredos do SecretsManager. Para obter mais informações, consulte Redes de tarefas do Fargate.

Integração do Secrets Manager com o AWS IoTGreengrass

O AWS IoT Greengrass permite que você se autentique com serviços e aplicativos de dispositivos doGreengrass sem codificar senhas, tokens ou outros segredos.

É possível usar o AWS Secrets Manager para armazenar e gerenciar seus segredos com segurança nanuvem. O AWS IoT Greengrass estende o Secrets Manager para os dispositivos de núcleo do Greengrass,para que seus conectores e funções Lambda possam usar segredos locais para interagir com serviçose aplicativos. Por exemplo, o conector Twilio Notifications usa um token de autenticação armazenadolocalmente.

Para integrar um segredo a um grupo do Greengrass, crie um recurso de grupo que faça referência aosegredo do Secrets Manager. Esse recurso de segredo faz referência ao segredo da nuvem usando oARN associado. Para saber como criar, gerenciar e usar recursos de segredos, consulte Trabalhar comrecursos de segredos no Guia do desenvolvedor do AWS IoT.

Para implantar segredos no núcleo do AWS IoT Greengrass, consulte Implantar segredos no núcleo doAWS IoT Greengrass.

Gerenciar credenciais do repositório do SageMakercom oSecrets Manager

O SageMaker é um serviço totalmente gerenciado de machine learning. Com o SageMaker, cientistas dedados e desenvolvedores podem criar e treinar modelos de machine learning com rapidez e facilidade e,depois, implantá-los diretamente em um ambiente hospedado pronto para produção. O serviço ofereceuma instância de notebook de autoria Jupyter integrado para facilitar o acesso a fontes de dados para finsde exploração e análise, sem necessidade de gerenciar servidores. Além disso, oferece algoritmos comunsde Machine Learning que são otimizados para execução eficiente com volumes de dados extremamentealtos em um ambiente distribuído. Com suporte nativo para algoritmos e estruturas próprios do usuário,o SageMaker oferece opções flexíveis de treinamento distribuído que se ajustam a fluxos de trabalhoespecíficos. Para implantar um modelo em um ambiente seguro e escalável, inicie-o com um único cliqueno console do SageMaker.

É possível gerenciar suas credenciais de repositórios privados usando o Secrets Manager. Você podegerenciar suas credenciais de repositórios privados usando o Secrets Manager.

Para obter mais informações, consulte Associar repositórios Git a instâncias de bloco de anotações doAmazon SageMaker.

Usar o Security Hub para melhores práticas desegurança noSecrets Manager

O AWS Security Hub fornece uma visão abrangente do estado da segurança na AWS e ajuda a verificarseu ambiente em relação aos padrões e às melhores práticas do setor de segurança.

154

Page 161: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioArmazenar credenciais de registro do

AWS CodeBuild com oSecrets Manager

O Security Hub coleta dados de segurança de contas, serviços e produtos de parceiros de terceiroscompatíveis da AWS e ajuda você a analisar suas tendências de segurança e identificar os problemas desegurança de prioridade mais alta.

O padrão de melhores práticas de segurança básica da AWS é um conjunto de controles que detectaquando as contas e os recursos implantados se desviam das melhores práticas de segurança. OSecurity Hub fornece um conjunto de controles para o Secrets Manager que permite avaliar e identificarcontinuamente áreas de desvio das melhores práticas.

Consulte Controles das melhores práticas de segurança básica da AWS.

Armazenar credenciais de registro do AWSCodeBuild com oSecrets Manager

O AWS CodeBuild é um serviço de criação totalmente gerenciado na nuvem do CodeBuild que compilaseu código-fonte, executa testes de unidade e produz artefatos prontos para implantação. O CodeBuildelimina a necessidade de provisionar, gerenciar e escalar seus próprios servidores de compilação. Elefornece ambientes de build com pacotes para as linguagens de programação e ferramentas de buildpopulares, como Apache Maven, Gradle, entre outras. Você também pode personalizar ambientesde build no CodeBuild para usar suas próprias ferramentas de build. O CodeBuild é dimensionadoautomaticamente para atender às solicitações de compilação de pico.

É possível armazenar as credenciais de registro privadas usando o Secrets Manager. Consulte Exemplode registro privado com o AWS Secrets Manager para o CodeBuild.

Armazenar credenciais de registro do Amazon EMRcom oSecrets Manager

O Amazon EMR é uma plataforma de cluster gerenciada que simplifica a execução de estruturas detrabalho de Big Data, como o Apache Hadoop e o Apache Spark, na AWS para processar e analisargrandes volumes de dados. Usando essas estruturas e projetos de código-fonte aberto relacionados, comoo Apache Hive e o Apache Pig, você pode processar dados para fins de análises e cargas de trabalhode business intelligence. Além disso, você pode usar o Amazon EMR para transformar e mover grandesquantidades de dados de e para outros armazenamentos de dados e bancos de dados da AWS, como oAmazon Simple Storage Service (Amazon S3) e o Amazon DynamoDB.

Você pode armazenar suas credenciais de registro privadas baseadas em GIT usando o Secrets Manager.Consulte Adicionar um repositório baseado em GIT ao Amazon EMR.

Integrar o Zelkova a políticas de recursos doSecretsManager

O Zelkova usa raciocínio automatizado para analisar políticas e as consequências futuras das políticas.Isso inclui políticas do AWS Identity and Access Management (IAM), políticas do Amazon Simple StorageService (S3), políticas de recursos do Secrets Manager e outras políticas de recursos. Essas políticasdeterminam quem pode (ou não) executar ações em quais recursos. Como o Zelkova usa raciocínioautomatizado, você não precisa mais pensar sobre quais perguntas precisa fazer sobre suas políticas.Usando a matemática de fancy, como mencionado acima, o Zelkova deriva automaticamente as perguntas

155

Page 162: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAutomatizar a criação de segredos

em AWS CloudFormation

e respostas que você deve fazer sobre suas políticas e melhora sua confiança nas configurações desegurança.

Para obter mais informações sobre o Zelkova, consulte Como a AWS usa o raciocínio automatizado paraajudar você a obter segurança em grande escala no blog de segurança da AWS.

Automatizar a criação de segredos em AWSCloudFormation

Usando um AWS CloudFormation modelo, pode automatizar a criação de segredos para recursos de basede dados ou de serviço na sua AWS na infraestrutura em nuvem.

É possível usar o AWS CloudFormation para automatizar a criação da infraestrutura da nuvem. Vocêcria um modelo em JSON ou YAML para definir os recursos necessários para o projeto. O AWSCloudFormation processa o modelo e cria os recursos definidos. Isso permite que você recrie facilmenteuma cópia de sua infraestrutura sempre que precisar. Por exemplo, é possível duplicar sua infraestruturade teste para criar a versão pública. Você também pode compartilhar facilmente a infraestrutura como umarquivo de texto simples, o que permite que outros repliquem os recursos sem intervenção manual.

Pode usar CloudFormer para captar todos os detalhes de um conjunto de recursos existente num AWSCloudFormation modelo.

O Secrets Manager fornece os tipos de recursos a seguir para permitir que você crie segredos como partede um modelo do AWS CloudFormation. Para obter detalhes sobre como configurar cada um em seumodelo do AWS CloudFormation, escolha o nome do tipo de recurso para obter um link para o Guia dousuário do AWS CloudFormation.

• AWS::SecretsManager::Secret – Cria um segredo e o armazena no Secrets Manager. Você podeespecificar uma senha ou deixar que o Secrets Manager gere uma para você. Você também pode criarum segredo vazio e atualizá-lo mais tarde usando o parâmetro SecretString.

• AWS::SecretsManager::ResourcePolicy – Cria uma política baseada em recurso e a anexa ao segredoespecificado. Uma política baseada em recursos controla quem pode executar ações no segredo.

• AWS::SecretsManager::RotationSchedule – Configura um segredo para executar a rotação automáticae periódica usando a função de rotação especificada do Lambda.

• AWS::SecretsManager::SecretTargetAttachment – depois de criar um segredo e fazer referência a elepara acessar as credenciais ao criar um serviço ou banco de dados, esse tipo de recurso volta e concluia configuração do segredo. O Secrets Manager configura o segredo com os detalhes sobre o serviço oubanco de dados necessários para que a rotação funcione. Por exemplo, para uma instância de bancode dados do Amazon RDS, o Secrets Manager adiciona detalhes da conexão e o tipo de mecanismo debanco de dados como entradas na propriedade SecureString do segredo.

ExamplesOs seguintes modelos de exemplo criam um segredo e um Amazon RDS MySQL Data de nascimentoutilizando as credenciais em segredo como utilizador principal e palavra-passe. O segredo tem umapolítica baseada em recursos anexada que especifica quem pode acessar o segredo. O modelo tambémcria uma função de rotação do Lambda e configura o segredo para rotacionar automaticamente a cada 30dias.

Note

A especificação JSON não oferece suporte a comentários. Consulte a versão YAMLposteriormente nesta página para comentários.

156

Page 163: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExamples

Note

Em caso de implementação de um Aurora PostgreSQL tem de criar um nome de utilizadordiferente de admin. admin é uma palavra-chave reservada e não pode criar a base de dados comesse nome de utilizador.

JSON { "Transform": "AWS::SecretsManager-2020-07-23", "Description": "This is an example template to demonstrate CloudFormation resources for Secrets Manager", "Resources": { "TestVPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.0.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true } }, "TestSubnet01": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.0.96.0/19", "AvailabilityZone": { "Fn::Select": [ "0", { "Fn::GetAZs": { "Ref": "AWS::Region" } } ] }, "VpcId": { "Ref": "TestVPC" } } }, "TestSubnet02": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.0.128.0/19", "AvailabilityZone": { "Fn::Select": [ "1", { "Fn::GetAZs": { "Ref": "AWS::Region" } } ] }, "VpcId": { "Ref": "TestVPC" } } }, "SecretsManagerVPCEndpoint": { "Type": "AWS::EC2::VPCEndpoint", "Properties": { "SubnetIds": [ {

157

Page 164: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExamples

"Ref": "TestSubnet01" }, { "Ref": "TestSubnet02" } ], "SecurityGroupIds": [ { "Fn::GetAtt": [ "TestVPC", "DefaultSecurityGroup" ] } ], "VpcEndpointType": "Interface", "ServiceName": { "Fn::Sub": "com.amazonaws.${AWS::Region}.secretsmanager" }, "PrivateDnsEnabled": true, "VpcId": { "Ref": "TestVPC" } } }, "MyRDSInstanceRotationSecret": { "Type": "AWS::SecretsManager::Secret", "Properties": { "Description": "This is my rds instance secret", "GenerateSecretString": { "SecretStringTemplate": "{\"username\": \"admin\"}", "GenerateStringKey": "password", "PasswordLength": 16, "ExcludeCharacters": "\"@/\\" }, "Tags": [ { "Key": "AppName", "Value": "MyApp" } ] } }, "MyDBInstance": { "Type": "AWS::RDS::DBInstance", "Properties": { "AllocatedStorage": 20, "DBInstanceClass": "db.t2.micro", "Engine": "mysql", "DBSubnetGroupName": { "Ref": "MyDBSubnetGroup" }, "MasterUsername": { "Fn::Sub": "{{resolve:secretsmanager:${MyRDSInstanceRotationSecret}::username}}" }, "MasterUserPassword": { "Fn::Sub": "{{resolve:secretsmanager:${MyRDSInstanceRotationSecret}::password}}" }, "BackupRetentionPeriod": 0, "VPCSecurityGroups": [ { "Fn::GetAtt": [ "TestVPC", "DefaultSecurityGroup" ]

158

Page 165: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExamples

} ] } }, "MyDBSubnetGroup": { "Type": "AWS::RDS::DBSubnetGroup", "Properties": { "DBSubnetGroupDescription": "Test Group", "SubnetIds": [ { "Ref": "TestSubnet01" }, { "Ref": "TestSubnet02" } ] } }, "SecretRDSInstanceAttachment": { "Type": "AWS::SecretsManager::SecretTargetAttachment", "Properties": { "SecretId": { "Ref": "MyRDSInstanceRotationSecret" }, "TargetId": { "Ref": "MyDBInstance" }, "TargetType": "AWS::RDS::DBInstance" } }, "MySecretRotationSchedule": { "Type": "AWS::SecretsManager::RotationSchedule", "DependsOn": "SecretRDSInstanceAttachment", "Properties": { "SecretId": { "Ref": "MyRDSInstanceRotationSecret" }, "HostedRotationLambda": { "RotationType": "MySQLSingleUser", "RotationLambdaName": "SecretsManagerRotation", "VpcSecurityGroupIds": { "Fn::GetAtt": [ "TestVPC", "DefaultSecurityGroup" ] }, "VpcSubnetIds": { "Fn::Join": [ ",", [ { "Ref": "TestSubnet01" }, { "Ref": "TestSubnet02" } ] ] } }, "RotationRules": { "AutomaticallyAfterDays": 30 } } } }

159

Page 166: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExamples

}

YAMLTransform: AWS::SecretsManager-2020-07-23 Description: "This is an example template to demonstrate CloudFormation resources for Secrets Manager" Resources:

#This is the VPC that the rotation Lambda and the RDS instance will be placed in TestVPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsHostnames: true EnableDnsSupport: true

# Subnet that the rotation Lambda and the RDS instance will be placed in TestSubnet01: Type: AWS::EC2::Subnet Properties: CidrBlock: 10.0.96.0/19 AvailabilityZone: Fn::Select: - '0' - Fn::GetAZs: {Ref: 'AWS::Region'} VpcId: Ref: TestVPC

TestSubnet02: Type: AWS::EC2::Subnet Properties: CidrBlock: 10.0.128.0/19 AvailabilityZone: Fn::Select: - '1' - Fn::GetAZs: {Ref: 'AWS::Region'} VpcId: Ref: TestVPC

#VPC endpoint that will enable the rotation Lambda to make api calls to Secrets Manager SecretsManagerVPCEndpoint: Type: AWS::EC2::VPCEndpoint Properties: SubnetIds: - Ref: TestSubnet01 - Ref: TestSubnet02 SecurityGroupIds: - !GetAtt TestVPC.DefaultSecurityGroup VpcEndpointType: 'Interface' ServiceName: !Sub "com.amazonaws.${AWS::Region}.secretsmanager" PrivateDnsEnabled: true VpcId: Ref: TestVPC

#This is a Secret resource with a randomly generated password in its SecretString JSON. MyRDSInstanceRotationSecret: Type: AWS::SecretsManager::Secret Properties: Description: 'This is my rds instance secret' GenerateSecretString: SecretStringTemplate: '{"username": "admin"}'

160

Page 167: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioExamples

GenerateStringKey: 'password' PasswordLength: 16 ExcludeCharacters: '"@/\' Tags: - Key: AppName Value: MyApp

#This is an RDS instance resource. Its master username and password use dynamic references to resolve values from #SecretsManager. The dynamic reference guarantees that CloudFormation will not log or persist the resolved value #We sub the Secret resource's logical id in order to construct the dynamic reference, since the Secret's name is being #generated by CloudFormation MyDBInstance: Type: AWS::RDS::DBInstance Properties: AllocatedStorage: 20 DBInstanceClass: db.t2.micro Engine: mysql DBSubnetGroupName: Ref: MyDBSubnetGroup MasterUsername: !Sub '{{resolve:secretsmanager:${MyRDSInstanceRotationSecret}::username}}' MasterUserPassword: !Sub '{{resolve:secretsmanager:${MyRDSInstanceRotationSecret}::password}}' BackupRetentionPeriod: 0 VPCSecurityGroups: - !GetAtt TestVPC.DefaultSecurityGroup

#Database subnet group for the RDS instance MyDBSubnetGroup: Type: AWS::RDS::DBSubnetGroup Properties: DBSubnetGroupDescription: "Test Group" SubnetIds: - Ref: TestSubnet01 - Ref: TestSubnet02 #This is a SecretTargetAttachment resource which updates the referenced Secret resource with properties about #the referenced RDS instance SecretRDSInstanceAttachment: Type: AWS::SecretsManager::SecretTargetAttachment Properties: SecretId: !Ref MyRDSInstanceRotationSecret TargetId: !Ref MyDBInstance TargetType: AWS::RDS::DBInstance #This is a RotationSchedule resource. It configures rotation of password for the referenced secret using a rotation lambda #The first rotation happens at resource creation time, with subsequent rotations scheduled according to the rotation rules #We explicitly depend on the SecretTargetAttachment resource being created to ensure that the secret contains all the #information necessary for rotation to succeed MySecretRotationSchedule: Type: AWS::SecretsManager::RotationSchedule DependsOn: SecretRDSInstanceAttachment Properties: SecretId: !Ref MyRDSInstanceRotationSecret HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName: SecretsManagerRotation VpcSecurityGroupIds: !GetAtt TestVPC.DefaultSecurityGroup VpcSubnetIds:

161

Page 168: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioMonitorar segredos do SecretsManager usando oAWS Config

Fn::Join: - "," - - Ref: TestSubnet01 - Ref: TestSubnet02 RotationRules: AutomaticallyAfterDays: 30

Monitorar segredos do Secrets Manager usandooAWS Config

O AWS Secrets Manager integra-se ao AWS Config e fornece um acompanhamento mais fácil dasalterações de segredo no Secrets Manager. É possível usar duas regras gerenciadas adicionais do AWSConfig para definir as diretrizes organizacionais internas sobre as melhores práticas de gerenciamentode segredos. Além disso, é possível identificar rapidamente segredos que não estão em conformidadecom as regras de segurança, bem como receber notificações do Amazon SNS sobre as alterações naconfiguração de segredos. Por exemplo, é possível receber notificações do SNS sobre uma lista desegredos não configurados para rotação que permite que você aplique as melhores práticas de segurançapara a rotação de segredos.

Ao utilizar o recurso de agregação de dados de várias contas e regiões do AWS Config, é possívelvisualizar uma lista de segredos e verificar a conformidade em todas as contas e regiões em todaa organização e, ao fazer isso, criar melhores práticas de gerenciamento de segredos em toda aorganização de um único local.

Tópicos

• Benefícios do rastreamento de segredos com oAWS Config (p. 162)• AWS ConfigAs regras do compatíveis com o são compatíveis com oSecrets Manager (p. 163)• Implementar as melhores práticas de gerenciamento de segredos usando oAWS Config (p. 163)• Configurar o agregador de dados de várias contas e regiões do AWS Config para melhores práticas de

gerenciamento de segredos (p. 165)

Benefícios do rastreamento de segredos com oAWSConfigO AWS Config permite que você estime, audite e avalie configurações em todos os recursos da AWSmonitorando e registrando continuamente as configurações de recursos da AWS, além de permitir quevocê automatize a avaliação das configurações registradas em relação às configurações desejadas. Aousar o AWS Config, é possível executar as seguintes tarefas:

• Revisar as alterações nas configurações e nas relações entre recursos os recursos da AWS.• Rastrear históricos detalhados de configurações de recursos.• Determinar sua conformidade geral com as configurações especificadas nas diretrizes internas.

Se tiver recursos de várias contas e várias regiões da AWS no AWS Config, você poderá visualizar dadosde configuração e conformidade de várias contas e regiões em uma única conta. Como resultado, vocêpoderá identificar recursos não compatíveis em várias contas.

Ao rastrear segredos com o AWS Config, um segredo se torna um recurso do AWS Config com suportee é possível rastrear alterações nos metadados dos segredos, como a descrição dos segredos e a

162

Page 169: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAWS ConfigAs regras do compatíveis como são compatíveis com oSecrets Manager

configuração de rotação, o relacionamento com outras fontes da AWS, como a chave do KMS usada paraa criptografia dos segredos, função do Lambda usada para a rotação de segredos, além de atributos, comotags associadas aos segredos.

Também é possível utilizar Regras de configuração gerenciadas de AWS para avaliar se a configuraçãode segredos está em conformidade com os requisitos de segurança e conformidade da sua organização eidentificar segredos que não estejam em conformidade com esses padrões.

Tópicos

• AWS Config Regras compatíveis com o Secrets Manager• Implementar as melhores práticas de gerenciamento de segredos usando o AWS Config• Como configurar o agregador do AWS Config para melhores práticas de gerenciamento de segredos

AWS ConfigAs regras do compatíveis com o sãocompatíveis com oSecrets ManagerAo usar o AWS Config para avaliar as configurações de recursos, você poderá avaliar se as configuraçõesde recursos atendem adequadamente a práticas internas, a diretrizes do setor e a regulamentos. O AWSConfig oferece suporte às seguintes regras para o Secrets Manager:

• secretsmanager-rotation-enabled-check – verifica se você configurou a rotação parasegredos armazenados no Secrets Manager. O AWS Config verifica se os segredos foram configuradospara rotação. Essa regra também oferece suporte ao maximumAllowedRotationFrequency, que, seespecificado, compara a configuração de frequência do segredo ao valor definido no parâmetro.

• secretsmanager-scheduled-rotation-success-check – verifica se o Secrets Manager faz arotação dos segredos com êxito. O AWS Config verifica a regra e se a última data de rotação está dentroda frequência de rotação configurada.

Para obter mais informações sobre o AWS Config e as regras, consulte a documentação do produtoAWS Config.

AWS ConfigRecursos compatíveis com oSecrets ManagerOs recursos da AWS são entidades que você cria e gerencia usando o Console de Gerenciamento daAWS, a Interface da Linha de Comando (ILC) da AWS, o AWS SDKs ou ferramentas de parceiros da AWS.O AWS Config faz referência a cada recurso usando um identificador exclusivo, como o ID do recurso ouum nome de recurso da Amazon (ARN).

O AWS Config Secrets Manager oferece suporte ao recurso AWS::SecretsManager::Secret do , .Para obter mais informações, consulte AWS Config Developer Guide.

Implementar as melhores práticas de gerenciamentode segredos usando oAWS ConfigO Secrets Manager faz a rotação dos segredos como parte de um plano de segurança de melhorespráticas. Usando a regra gerenciada secretsmanager-rotation-enabled-check, o AWS Configverifica a rotação de segredos no Secrets Manager.

Para obter mais informações sobre a configuração de regras no AWS Config, consulte Regras do AWSConfig no AWS Config Developer Guide.

163

Page 170: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConfigurar regras doAWS ConfigSecrets Manager

Configurar regras doAWS ConfigSecrets ManagerImportant

Se estiver usando o console do AWS Config pela primeira vez, consulte Configurar o AWS Config(console).

A página Rules (Regras) fornece regras inicias gerenciadas pela AWS que você pode adicionar à conta.Após a configuração, o AWS Config avalia os recursos do AWS Secrets Manager em relação às regrasescolhidas. Você pode atualizar as regras e criar regras gerenciadas adicionais após a configuração.

1. Faça login no console do AWS Config em https://console.aws.amazon.com/config/.2. Escolha Settings (Configurações). Habilite o parâmetro Recording is on (Registro ativado).3. Escolha Rules (Regras).4. Na seção Rules (Regras), selecione Add Rule (Adicionar regra).5. Digite secretsmanager-rotation-enabled-check no campo de filtro.6. Para configurar a regra secretsmanager-rotation-enabled-check, escolha Rules (Regras) no

painel do console e selecione Add rule (Adicionar regra).7. Localize a regra secretsmanager-rotation-enabled-check usando a função de pesquisa.8. Crie um nome exclusivo para a regra, como MySecretsRotationRule.9. Especifique uma Remedial Action (Ação corretiva) para receber notificações sobre segredos que não

estejam em conformidade usando um tópico do Amazon SNS.10.Especifique um tópico para a notificação do Amazon SNS.11.Selecione Save (Salvar) para armazenar a regra no AWS Config

Depois de salvar a regra, o AWS Config avaliará os segredos cada vez que os metadados de um segredoforem alterados. Se ocorrerem alterações, você receberá uma notificação do SNS sobre segredos que nãoestejam em conformidade. Também é possível visualizar os resultados em Rules (Regras) ou Dashboard(Painel) do AWS Config.

Se você selecionar secretsmanager-rotation-check-mySecretsRotationRule na lista de regras, o AWSConfig exibirá uma lista de segredos na conta que não estão configurados para rotação. Como identificouos segredos, você pode começar a implementação das melhores práticas para a rotação de segredos.

• Consulte a documentação do AWS Config sobre secretsmanager-rotation-enabled-check.• Consulte a documentação do AWS Config sobre secretsmanager-scheduled-rotation-enabled-success-check.

Visualizar regras do Secrets Manager noAWS ConfigPara visualizar as regras do Secrets Manager no AWS Config Developer Guide, faça login no console doAWS Config e escolha Rules (Regras). Escolha a regra desejada e execute uma das seguintes opções:

• View details (Visualizar os detalhes)• Edit Rule (Editar a regra)• Ações

Para obter mais informações sobre como visualizar as regras, consulte o AWS Config Developer Guide.

164

Page 171: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioConfigurar o agregador de dados de várias

contas e regiões do AWS Config para melhorespráticas de gerenciamento de segredos

Configurar o agregador de dados de várias contase regiões do AWS Config para melhores práticas degerenciamento de segredosConfigure o agregador de dados de várias contas e regiões do AWS Config para revisar as configuraçõesdos segredos em todas as contas e regiões da organização e, depois, revise as configurações desegredos e compare-as com as melhores práticas de gerenciamento de segredos.

Note

É necessário habilitar o AWS Config e as regras gerenciadas do AWS Config específicaspara segredos em todas as contas e regiões antes de criar um agregador. É possível usar o CloudFormation StackSets para habilitar o AWS Config e provisionar regras em todas as contas eregiões aqui.Para obter mais informações sobre o agregador do AWS Config, consulte Agregação de dados devárias contas e regiões no Guia do desenvolvedor do AWS Config.

Crie um agregador usando a conta mestra da organização ou qualquer conta-membro da organização.Use as etapas a seguir para criar um agregador do AWS Config:

1. Faça login no console do AWS Config em https://console.aws.amazon.com/config/.2. Selecione Aggregators (Agregadores) e Add Aggregator (Adicionar agregador).3. Na seção Allow data replication (Permitir a replicação de dados) marque a opção Allow AWS Config

to replicate data (Permitir que o AWS Config replique dados). É necessário habilitar isso para fornecerà conta mestra acesso à configuração do recurso e detalhes de conformidade para todas as contas eregiões da organização.

4. Digite um nome exclusivo, que consiste em até 64 caracteres alfanuméricos, para o agregador nocampo Aggregator name (Nome do agregador).

5. Na seção Select source accounts (Selecionar contas de origem), selecione Add my organization(Adicionar minha organização) e clique em Choose IAM role (Selecionar função do IAM).

6. Em Regions (Regiões), escolha todas as regiões aplicáveis à sua organização e selecione Save(Salvar).

Para visualizar um painel de todos os segredos da organização, selecione o nome do seu agregador.Agora é possível ver todos os segredos em todas as contas e regiões.

Para obter mais informações sobre como configurar agregadores do AWS Config, consulte Configurar umagregador usando o console.

Revise os dados para identificar todos os segredos da organização que não estejam em conformidade.Trabalhe com contas individuais e com proprietários secretos para aplicar as melhores práticas degerenciamento de segredos, como garantir a rotação de todos os segredos. Verifique se todos os segredosatendem às políticas de melhores práticas para a frequência de rotação e identifique proativamente ossegredos não utilizados e os programe para exclusão.

Tip

Mais informações sobre o Secrets Manager e o AWS Config podem ser encontradas na seguintedocumentação do AWS Config:

• Lista de regras gerenciadas do AWS Config• Tipos de recurso e relações de recursos da AWS compatíveis com o AWS Config• Notificações que o AWS Config envia para um tópico do Amazon SNS

165

Page 172: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioProteção de dados no AWS Secrets Manager

Segurança no AWS Secrets ManagerA segurança na AWS é a nossa maior prioridade. Como cliente da AWS, você se beneficia de umdatacenter e uma arquitetura de rede criados para atender os requisitos da maioria das organizações comexigências de segurança.

Você e a AWS compartilham a responsabilidade pela segurança. O modelo de responsabilidadecompartilhada descreve a segurança da nuvem e a segurança na nuvem:

• Segurança da nuvem – a AWS é responsável por proteger a infraestrutura que executa os serviçosda AWS na Nuvem AWS. A AWS também fornece serviços que podem ser usados com segurança.Auditores de terceiros testam e verificam regularmente a eficácia da nossa segurança como partedos Programas de conformidade da AWS. Para saber mais sobre os programas de conformidadeque se aplicam ao AWS Secrets Manager, consulte Serviços da AWS no escopo por programa deconformidade.

• Segurança na nuvem – seu serviço da AWS determina sua responsabilidade. Você também éresponsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos da suaempresa e as leis e regulamentos aplicáveis.

Tópicos• Proteção de dados no AWS Secrets Manager (p. 166)• Segurança da infraestrutura no AWS Secrets Manager (p. 168)• Resiliência no AWS Secrets Manager (p. 168)• Validação de conformidade do AWS Secrets Manager (p. 168)

Proteção de dados no AWS Secrets ManagerO modelo de responsabilidade compartilhada da AWS se aplica à proteção de dados no AWS SecretsManager. Conforme descrito nesse modelo, a AWS é responsável por proteger a infraestrutura global queexecuta toda a Nuvem AWS. Você é responsável por manter o controle sobre seu conteúdo hospedadonessa infraestrutura. Esse conteúdo inclui as tarefas de configuração e gerenciamento de segurança dosserviços da AWS que você usa. Para obter mais informações sobre a privacidade de dados, consulteas Perguntas frequentes sobre privacidade de dados. Para obter mais informações sobre a proteção dedados na Europa, consulte o blog AWS Shared Responsibility Model and GDPR no Blog de segurança daAWS.

Para fins de proteção de dados, recomendamos que você proteja as credenciais da conta da AWS econfigure as contas de usuário individuais com o AWS Identity and Access Management (IAM). Dessamaneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações detrabalho. Recomendamos também que você proteja seus dados das seguintes formas:

• Use uma autenticação multifator (MFA) com cada conta.• Use SSL/TLS para se comunicar com os recursos da AWS. Recomendamos TLS 1.2 ou posterior.• Configure a API e o registro em log das atividades do usuário com o AWS CloudTrail.• Use as soluções de criptografia da AWS, juntamente com todos os controles de segurança padrão nos

serviços da AWS.• Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e

proteger dados pessoais que são armazenados no Amazon S3.• Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar a AWS por meio de

uma interface de linha de comando ou uma API, use um endpoint do FIPS. Para obter mais informaçõessobre endpoints do FIPS, consulte Federal Information Processing Standard (FIPS) 140-2.

166

Page 173: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCriptografia em repouso

É altamente recomendável que você nunca coloque informações de identificação confidenciais, comonúmeros de conta dos seus clientes, em campos de formato livre, como um campo Name (Nome). Issoinclui quando você trabalhar com o Secrets Manager ou outros serviços da AWS usando o console, aAPI, a AWS CLI ou os AWS SDKs. Todos os dados inseridos por você no Secrets Manager ou em outrosserviços podem ser separados para inclusão em logs de diagnóstico. Ao fornecer um URL para umservidor externo, não inclua informações de credenciais no URL para validar a solicitação a esse servidor.

Criptografia em repousoSecrets ManagerO AWS Key Management Service usa criptografia via (KMS) para protegera confidencialidade dos dados em repouso.AWS O AWS KMS é um serviço de criptografia earmazenamento de chaves usado por muitos serviços da AWS Secrets Manager. O AWS associa todosos segredos a uma chave mestra do cliente (CMK) do KMS. A CMK associada pode ser a CMK do SecretsManager padrão da conta ou é possível criar sua própria CMK. Para obter informações adicionais sobrecomo criar CMKs, consulte Como o Secrets Manager usa o AWS KMS.

Criptografia em trânsitoO Secrets Manager fornece endpoints seguros e privados para criptografar dados em trânsito. Osendpoints seguros e privados permitem que a AWS proteja a integridade das solicitações de API aoSecrets Manager. A AWS exige que as chamadas de API sejam assinadas pelo chamador usandocertificados X.509 e/ou uma chave de acesso secreta do AWS Secrets Manager. Esse requisito é indicadono Processo de assinatura do Signature versão 4 (Sigv4).

Se você usar a Interface da Linha de Comando (ILC) da AWS ou qualquer uma das AWS SDKs para fazerchamadas para a AWS, essas ferramentas usarão automaticamente a chave de acesso especificada paraassinar as solicitações para você. Ao configurar a CLI ou qualquer uma das AWS SDKs, você especifica achave de acesso a ser usada.

Gerenciamento de chave de criptografiaQuando o Secrets Manager precisa criptografar uma nova versão dos dados do segredo protegidos, oSecrets Manager envia uma solicitação para que o AWS KMS gere uma nova chave de dados com basena CMK especificada. O Secrets Manager usa essa chave de dados para a criptografia de envelope.O Secrets Manager armazena a chave de dados criptografada com o segredo criptografado. Quando osegredo precisa ser descriptografado, o Secrets Manager solicita que o AWS KMS descriptografe a chavede dados. O Secrets Manager usa a chave de dados descriptografada para descriptografar o segredocriptografado. O Secrets Manager nunca armazena a chave de dados em forma não criptografada eremove a chave da memória o mais rápido possível.

Para obter informações adicionais sobre o processo de criptografia e descriptografia, bem como umaexplicação completa de como o Secrets Manager usa o AWS KMS, consulte Como o AWS SecretsManager usa o AWS KMS.

Privacidade do tráfego entre redesA AWS oferece opções para manter a privacidade ao rotear tráfego por meio de rotas de rede conhecidase privadas.

Tráfego entre clientes de serviço e no local e os aplicativosVocê tem duas opções de conectividade entre sua rede privada e a AWS Secrets Manager:

• Uma conexão VPN AWS Site-to-Site. Para obter mais informações, consulte O que é o AWS Site-to-SiteVPN?

167

Page 174: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSegurança da infraestrutura

• Uma conexão AWS Direct Connect. Para obter mais informações, consulte O que é o AWS DirectConnect?

Tráfego entre recursos da AWS na mesma regiãoCaso deseje proteger o tráfego entre o Secrets Manager e os clientes de API na AWS, configure um AWSPrivateLink para acessar de forma privada os endpoints de API do Secrets Manager.

Segurança da infraestrutura no AWS SecretsManager

Como um serviço gerido, AWS Secrets Manager está protegido pelo AWS os procedimentos globais desegurança da rede descritos na Amazon Web Services: Visão geral dos processos de segurança livrobranco.

Use chamadas de API publicadas pela AWS para acessar o Secrets Manager pela rede. Os clientesdevem oferecer suporte a Transport Layer Security (TLS) 1.1 ou posterior. Recomendamos TLS 1.2 ouposterior. Os clientes também devem ter suporte a pacotes de criptografia com sigilo de encaminhamentoperfeito (PFS) como Ephemeral Diffie-Hellman (DHE) ou Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).A maioria dos sistemas modernos como Java 7 e versões posteriores oferece suporte a esses modos.

Além disso, as solicitações devem ser assinadas usando um ID de chave de acesso e uma chave deacesso secreta associada a uma entidade principal do IAM. Ou você pode usar o AWS Security TokenService (AWS STS) para gerar credenciais de segurança temporárias para assinar solicitações.

Resiliência no AWS Secrets ManagerA AWS cria a infraestrutura global com base em regiões e zonas de disponibilidade da AWS. As regiõesda AWS fornecem várias zonas de disponibilidade separadas e isoladas fisicamente, que se conectamcom baixa latência, altas taxas de transferência e redes altamente redundantes. Com as zonas dedisponibilidade, você pode projetar e operar aplicativos e bancos de dados que automaticamenteexecutam o failover entre as zonas sem interrupção. As zonas de disponibilidade permitem que vocêseja mais altamente disponível, tolerante a falhas e escalável do que uma ou várias infraestruturas dedatacenter tradicionais.

Para obter mais informações sobre regiões e zonas de disponibilidade da AWS, consulte Infraestruturaglobal da AWS.

Validação de conformidade do AWS SecretsManager

Os auditores externos avaliam a segurança e a conformidade do AWS Secrets Manager como parte devários programas de conformidade da AWS. Isso inclui SOC, PCI, HIPAA e outros.

Para obter uma lista de serviços da AWS no escopo de programas de conformidade específicos, consulteServiços da AWS no escopo pelo programa de conformidade. Para obter informações gerais, consulteProgramas de conformidade da AWS.

168

Page 175: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioValidação de conformidade

Você pode fazer download de relatórios de auditoria de terceiros usando o AWS Artifact. Para obter maisinformações, consulte Fazer download de relatórios no AWS Artifact.

Sua responsabilidade de conformidade ao usar o Secrets Manager é determinada pela confidencialidadedos seus dados, pelos objetivos de conformidade da sua empresa e pelos regulamentos e leis aplicáveis.A AWS fornece os seguintes recursos para ajudar com a conformidade:

• Guias de início rápido de segurança e conformidade: esses guias de implantação abordam asconsiderações de arquitetura e fornecem etapas para implantação de ambientes de linha de basefocados em conformidade e segurança na AWS.

• Whitepaper Arquitetura para segurança e conformidade com a HIPAA: esse whitepaper descreve comoas empresas podem usar a AWS para criar aplicativos em conformidade com a HIPAA.

• Recursos de conformidade da AWS – esta coleção de manuais e guias pode ser aplicada ao seu setor elocal.

• Avaliar recursos com regras no Guia do desenvolvedor do AWS Config: o serviço AWS Config avaliacomo as configurações de recursos estão em conformidade com práticas internas, diretrizes do setor eregulamentos.

• AWS Security Hub: esse serviço da AWS fornece uma visão abrangente do estado de sua segurança naAWS que ajuda você a verificar sua conformidade com padrões e práticas recomendadas de segurançado setor.

169

Page 176: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCotas para AWS Secrets Manager

Referência do AWS Secrets ManagerUse os tópicos nesta seção para localizar informações de referência detalhadas para diversos aspectos doAWS Secrets Manager.

Tópicos• Cotas para AWS Secrets Manager (p. 170)• Modelos da AWS que podem ser usados para criar funções de rotação do Lambda (p. 171)• Políticas gerenciadas da AWS disponíveis para uso com o AWS Secrets Manager (p. 179)• Ações, recursos e chaves de contexto que podem ser utilizadas em uma política de segredos ou

política do IAM para AWS Secrets Manager (p. 179)

Cotas para AWS Secrets ManagerEsta seção especifica cotas para o AWS Secrets Manager.

Para obter informações sobre Endpoints de serviço, consulte Cotas e endpoints do AWS Secrets Managerque incluem endpoints de serviço regionais. Você pode ter várias regiões em sua conta, como IAD e DUB,e cada cota é específica para cada região.

Restrições de nomesO AWS Secrets Manager tem as seguintes restrições de nomes criados, incluindo os nomes dos segredos:

• Os nomes de segredo devem usar caracteres Unicode.• Os nomes de segredos não devem exceder 512 caracteres.

Cotas máximasVeja a seguir as cotas máximas para entidades no AWS Secrets Manager:

Entity Valor

Segredos em uma contada AWS

40,000

Versões de um segredo ~100

Rótulos anexados emtodas as versões de umsegredo

20

Versões anexadas a umrótulo ao mesmo tempo

1

Duração de um segredo 65.536 bytes

Comprimento de umapolítica baseada emrecursos – texto JSON

20.480 caracteres

170

Page 177: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioCotas de tarifa

Cotas de tarifaEsses parâmetros têm as seguintes cotas de tarifa para o AWS Secrets Manager:

Tipos de solicitação Número de operações permitidas por segundo

Cota geral de API daconta

4.000

DescribeSecret

GetSecretValue

4.000

PutResourcePolicy

GetResourcePolicy

DeleteResourcePolicy

CreateSecret

UpdateSecret

UpdateSecretVersionStage

PutSecretValue

DeleteSecret

RestoreSecret

RotateSecret

CancelRotateSecret

AssociateSecretLabels

DisassociateSecretLabels

GetRandomPassword

40

TagResource

UntagResource

ListSecrets

ListSecretVersionIds

20

Modelos da AWS que podem ser usados para criarfunções de rotação do Lambda

Esta seção identifica os modelos gerenciados da AWS que você pode usar para criar uma função derotação do Lambda para seu segredo do AWS Secrets Manager. Esses modelos são associados ao AWSServerless Application Repository, que usa o AWS CloudFormation para criar "pilhas'' de recursos pré-

171

Page 178: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para bancos de dados do Amazon RDS

configurados. Nesse caso, os modelos criam uma pilha que consiste na função do Lambda e uma funçãodo IAM que o Secrets Manager pode assumir para invocar a função quando ocorre a rotação.

Para criar uma função de rotação do Lambda com qualquer um dos modelos a seguir, copie e cole oARN do modelo especificado nos comandos da CLI descritos no tópico Rotação AWS Secrets Managersegredos para outras bases de dados ou serviços (p. 113).

Cada um dos modelos a seguir cria uma função de rotação do Lambda para uma combinação diferente debanco de dados e estratégia de rotação. O primeiro marcador abaixo de cada um mostra o banco de dadosou serviço compatível com a função. O segundo marcador descreve a estratégia de rotação implementadapela função. O terceiro marcador especifica a estrutura JSON que a função de rotação espera encontrar novalor de SecretString do segredo que está sendo rotacionado.

Bancos de dados do RDS

• Usuário único do MariaDB do RDS (p. 172)• Usuário mestre do MariaDB do RDS (p. 173)• Usuário único do MySQL do RDS (p. 173)• Usuários múltiplos do RDS MySQL (p. 173)• Usuário único da Oracle do RDS (p. 174)• Usuário mestre da Oracle do RDS (p. 174)• Usuário único do PostgreSQL do RDS (p. 175)• Usuário principal do PostgreSQL do RDS (p. 175)• Usuário único do Microsoft SQLServer do RDS (p. 176)• Usuário mestre do Microsoft SQLServer do RDS (p. 176)

Outros bancos de dados e serviços

• Usuário único do MongoDB (p. 177)• Usuário principal do MongoDB (p. 177)• Usuário único do Amazon Redshift (p. 177)• Usuário principal do Amazon Redshift (p. 178)• Modelo genérico de função de rotação (p. 178)

Modelos para bancos de dados do Amazon RDSUsuário único do MariaDB do RDS• Name (Nome): . SecretsManagerRDSMariaDBRotationSingleUser• Base de dados/serviço suportado: base de dados de mariadb alojada num Amazon Relational Database

Service (Amazon RDS) instância da base de dados.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "mariadb", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>",

172

Page 179: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para bancos de dados do Amazon RDS

"dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>"}

• Código-fonte

Usuário mestre do MariaDB do RDS• Name (Nome): . contexsassistdsmariadbrotationmultiuser• Base de dados/serviço suportado: base de dados de mariadb alojada num Amazon RDS instância da

base de dados.• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "mariadb", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

Usuário único do MySQL do RDS• Name (Nome): . fóruns de controlo de utilizador• Base de dados/serviço suportado: base de dados mysql alojada num Amazon Relational Database

Service (Amazon RDS) instância da base de dados.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "mysql", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>"}

• Código-fonte

Usuários múltiplos do RDS MySQL• Name (Nome): . fóruns de controlo de utilizador

173

Page 180: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para bancos de dados do Amazon RDS

• Base de dados/serviço suportado: base de dados mysql alojada num Amazon RDS instância da base dedados.

• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de umutilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "mysql", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

Usuário único da Oracle do RDS• Name (Nome): . repositivodo software de controlo• Base de dados/serviço suportado: Base de dados Oracle alojada num Amazon Relational Database

Service (Amazon RDS) instância da base de dados.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "oracle", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<required: database name>", "port": "<optional: TCP port number. If not specified, defaults to 1521>"}

• Código-fonte

Usuário mestre da Oracle do RDS• Name (Nome): . repositivosde software de software• Base de dados/serviço suportado: Base de dados Oracle alojada num Amazon RDS instância da base

de dados.• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

174

Page 181: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para bancos de dados do Amazon RDS

{ "engine": "oracle", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<required: database name>", "port": "<optional: TCP port number. If not specified, defaults to 1521>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

Usuário único do PostgreSQL do RDS• Name (Nome): . contextivosde assistênciadeservidor de utilizador• Base de dados/serviço suportado: base de dados postgresql alojada num Amazon RDS instância da

base de dados.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "postgres", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'postgres'>", "port": "<optional: TCP port number. If not specified, defaults to 5432>"}

• Código-fonte

Usuário principal do PostgreSQL do RDS• Name (Nome): . contextivosde assistênciapostaturaçãodeutilizador• Base de dados/serviço suportado: base de dados postgresql alojada num Amazon RDS instância da

base de dados.• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "postgres", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'postgres'>", "port": "<optional: TCP port number. If not specified, defaults to 5432>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"

175

Page 182: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para bancos de dados do Amazon RDS

}

• Código-fonte

Usuário único do Microsoft SQLServer do RDS• Name (Nome): . contextivosde controlo de servidor• Base de dados/serviço suportado: Base de dados sqlserver Microsoft alojada num Amazon RDS

instância da base de dados.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "sqlserver", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'master'>", "port": "<optional: TCP port number. If not specified, defaults to 1433>"}

• Código-fonte

Usuário mestre do Microsoft SQLServer do RDS• Name (Nome): . fóruns de configuração de servidor• Base de dados/serviço suportado: Base de dados sqlserver Microsoft alojada num Amazon RDS

instância da base de dados.• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "sqlserver", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'master'>", "port": "<optional: TCP port number. If not specified, defaults to 1433>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

176

Page 183: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para outros bancos de dados

Modelos para outros bancos de dadosUsuário único do MongoDB• Name (Nome): . gestãode gestodeconfildebrotaçãoutilizador• Base de dados/serviço suportado: base de dados mongodb 3.2 ou 3.4.• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

• Esperado SecretString estrutura:

{ "engine": "mongo", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 27017>"}

• Código-fonte Código-fonte

Usuário principal do MongoDB• Name (Nome): . gestode gestodeconfildeconfildetrabalho• Base de dados ou serviço suportado: base de dados mongodb 3.2 ou 3.4.• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado e armazenadas num segredo separado.Secrets Manager altera a palavra-passe do utilizador inativo antes de o utilizador tornar-se o utilizador ativo. Para obter mais informaçõessobre essa estratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternandoentre dois usuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "mongo", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 27017>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

Usuário único do Amazon Redshift• Name (Nome): . gestodegestodeutilizador• Serviço/banco de dados compatíveis: Amazon Redshift• Estratégia de rotação: Isto altera a palavra-passe para um utilizador com credenciais guardadas no

segredo rodado. Para obter mais informações sobre essa estratégia, consulte Rotacionar segredos doAWS Secrets Manager para um usuário com uma senha (p. 122).

177

Page 184: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioModelos para outros serviços

• Esperado SecretString estrutura:

{ "engine": "redshift", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 5439>"}

• Código-fonte

Usuário principal do Amazon Redshift• Name (Nome): . gestodegestodeutilizador• Serviço/banco de dados compatíveis: Amazon Redshift• Estratégia de rotação: Dois utilizadores alternam durante a rotação utilizando as credenciais de um

utilizador mestre separado, armazenadas num segredo separado. Secrets Manager altera a palavra-passe do utilizador inativo antes de iniciar o utilizador ativo. Para obter mais informações sobre essaestratégia, consulte Executar a rotação de segredos do AWS Secrets Manager alternando entre doisusuários existentes (p. 126).

• Esperado SecretString estrutura:

{ "engine": "redshift", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to ?????>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>"}

• Código-fonte

Modelos para outros serviçosModelo genérico de função de rotação• Name (Nome): . modelo de rotaçãode gestodedivisão• Base de dados/serviço suportado: Nenhum Você fornece o código para interagir com qualquer serviço

desejado.• Estratégia de rotação: Nenhum Você fornece o código para implementar qualquer estratégia de

rotação desejada. Para obter mais informações sobre como personalizar a própria função, consulteCompreender e personalizar o seu Lambda função de rotação (p. 118).

• Esperado SecretString estrutura: Define isto como parte do seu código escrito.• Código-fonte Código-fonte

178

Page 185: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioPolíticas gerenciadas

Políticas gerenciadas da AWS disponíveis para usocom o AWS Secrets Manager

Esta seção identifica as políticas gerenciadas da AWS que podem ser usadas para ajudar a gerenciar oacesso aos seus segredos. Você não pode modificar nem excluir uma política gerenciada da AWS, maspode anexá-la ou desanexá-la no caso de entidades da sua conta, conforme necessário.

Nome dapolítica

Descrição ARN

SecretsManagerReadWriteFornece acesso a maioria das operaçõesdo Secrets Manager. A política não ativa aconfiguração de rotação porque a rotaçãorequer permissões do IAM para criarfunções. Para alguém que deve configurarfunções de rotação do Lambda e habilitara rotação, também é necessário atribuir apolítica gerenciada IAMFullAccess.

arn:aws:iam::aws:policy/SecretsManagerReadWrite

Ações, recursos e chaves de contexto que podemser utilizadas em uma política de segredos oupolítica do IAM para AWS Secrets Manager

Ações que podem ser referenciadas em uma políticade segredo ou política do IAMVocê pode especificar as permissões em uma política de segredos ou política do IAM para controlaro acesso aos seus segredos. Cada permissão em uma ação pode ser associada a um recurso queespecifica no que a ação pode trabalhar.

Para obter uma lista completa de ações, consulte Ações, recursos e chaves de condição do AWS SecretsManager no Guia do usuário do IAM.

Recursos que podem ser referenciados em umapolítica de segredo ou política do IAMA tabela a seguir mostra os formatos do ARN compatíveis com políticas do IAM para o AWS SecretsManager. Você pode visualizar o IDs de cada entidade na página Secret details (Detalhes do segredo) decada segredo no console do Secrets Manager.

Se você vir uma seta de expansão (↗) no canto superior direito da tabela, poderá abrir a tabela em umanova janela. Para fechar a janela, escolha o botão Close (X) no canto inferior direito.

Tipo de recurso Formato do nome de recurso da Amazon (ARN)

Secreta arn:aws:secretsmanager:<Region>:<AccountId>:segredo:OptionalPath/SecretName-6RandomCharacters

179

Page 186: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioChaves de contexto

O Secrets Manager cria a última parte do ARN acrescentando um traço e seis caracteres alfanuméricosaleatórios no final do nome do segredo. Se você excluir um segredo e recriar outro com o mesmo nome,essa formatação ajudará a garantir que as pessoas com permissões para o segredo original não tenhamacesso automaticamente ao novo segredo, pois o Secrets Manager gera seis novos caracteres aleatórios.

Chaves de contexto que podem ser referenciadas emuma política de segredos ou política doIAMAs chaves de contexto no AWS Secrets Manager geralmente correspondem aos parâmetros de solicitaçãode uma chamada da API. Isso permite que você permita ou bloqueie qualquer solicitação com base novalor do parâmetro.

Cada chave de contexto pode ser comparada usando um operador de condição com um valorespecificado. As chaves de contexto que você usa dependem da ação selecionada. Consulte a coluna"Chaves de contexto" na seção Ações (p. 179) no início deste tópico.

Por exemplo, você pode optar por permitir que alguém recupere somente a versão AWSCURRENT do valorde um segredo usando um elemento Condition semelhante ao seguinte:

"Condition": {"ForAnyValue:StringEquals" : {"secretsmanager:VersionStage" : "AWSCURRENT"}}

A tabela a seguir mostra as chaves de contexto específicas do Secrets Manager que você especifica noelemento Condition de uma política de permissões do IAM para controlar o acesso a uma ação de formamais granular. Além das chaves indicadas abaixo, você também pode usar as Chaves de contexto decondição globais da AWS.

Chaves de contexto do elemento "Condition" Description (Descrição) Type

aws:RequestTag/tag-key

Filtra o acesso por uma chave presente nasolicitação feita pelo usuário ao Secrets Manager.

String

aws:TagKeys

Filtra o acesso por uma lista de todos nomes dechaves de tags presentes na solicitação feita pelousuário para o serviço Secrets Manager.

String

secretsmanager:resource/AllowRotationLambdaArn

Filtra a solicitação com base no ARN da função derotação Lambda anexada ao recurso de destinoda solicitação. Isso permite que você restrinja oacesso apenas a esses segredos com um ARN doLambda da rotação correspondente a esse valor.Segredos sem rotação ativada ou com um ARN doLambda de rotação diferente não correspondem.

ARN

secretsmanager:BlockPublicPolicy;

Avalia a política de recursos atribuída a umsegredo e bloqueia todas as políticas quepermitem acesso público.

Boolean

secretsmanager:Description

Filtra a solicitação com base no parâmetroDescription na solicitação.

String

secretsmanager:ForceDeleteWithoutRecovery

Filtra a solicitação com base no fato de a exclusãonão especificar nenhuma janela de recuperação.Isso permite desabilitar efetivamente esse recurso.

Boolean

180

Page 187: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioChaves de contexto

Chaves de contexto do elemento "Condition" Description (Descrição) Type

secretsmanager:KmsKeyId

Filtra a solicitação com base no parâmetroKmsKeyId da solicitação. Permite que vocêlimite as chaves que podem ser usadas em umasolicitação.

Boolean

secretsmanager:Name

Filtra a solicitação com base no valor do parâmetroName da solicitação. Permite que você restrinjao nome de um segredo a apenas os quecorrespondam a esse valor.

String

secretsmanager:RecoveryWindowInDays

Filtra a solicitação com base na janela derecuperação especificada. Permite que vocêimponha que as janelas de recuperação ocorramem um número de dias aprovado.

Long

secretsmanager:ResourceTag/<tag-key>

Filtra a solicitação com base em uma tag anexadaao segredo. Substituir <tag-key> pelo nome realda tag. É possível usar operadores de condiçãopara garantir a presença da tag e conter o valorsolicitado.

String

secretsmanager:RotationLambdaArn

Filtra a solicitação de acordo com o parâmetroRotationLambdaARN. Permite que você restrinjaquais funções de rotação do Lambda podemser usadas com um segredo. A chave pode serusada com o CreateSecret e as operações quemodificam segredos existentes.

ARN

secretsmanager:SecretId

Filtra a solicitação com base no identificadorexclusivo do segredo fornecido no parâmetroSecretId. Embora o valor possa ser onome amigável ou o ARN do segredo, oSecretsmanager:SecretID está sempre noformato ARN. Permite que você limite os segredosque podem ser acessados por uma solicitação.

ARN

secretsmanager:VersionId

Filtra a solicitação com base no parâmetroVersionId da solicitação. Permite que vocêrestrinja quais versões de um segredo podem seracessadas.

String

secretsmanager:VersionStage

Filtra a solicitação com base nos rótulosde preparação identificados no parâmetroVersionStage de uma solicitação. Permite restringiro acesso apenas às versões do segredo com umrótulo de preparação que corresponda a um dosvalores desse parâmetro de matriz de strings.Como a chave usa uma matriz de strings comvários valores, você deve usar um dos operadoresdefinidos para comparar strings com esse valor.

String

Chaves de condição globais da AWSA AWS fornece chaves de condição globais, um conjunto de chaves de condição redefinidas para todosos serviços da AWS que usam o IAM para controle de acesso. Por exemplo, você pode usar a chave de

181

Page 188: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioChaves de contexto

condição aws:PrincipalType para permitir acesso somente quando a entidade principal na solicitaçãocontiver o tipo especificado.

O Secrets Manager oferece suporte a todas as chaves de condição globais, inclusive as chaves decondição aws:TagKeys e aws:RequestTag que controlam o acesso com base na tag de recurso nasolicitação. Alguns, não todos os serviços da AWS, são compatíveis com essas chaves de condição.

Tópicos• Como usar a condição de endereço IP em políticas com permissões do Secrets Manager (p. 182)• Utilização das condições do VPC endpoint em políticas com permissões do Secrets Manager (p. 182)

Como usar a condição de endereço IP em políticas com permissões do SecretsManager

Você pode usar o Secrets Manager para proteger as credenciais de um banco de dados ou serviço.Mas tenha cuidado ao especificar os operadores de condição do endereço IP ou a chave de condiçãoaws:SourceIp na mesma declaração de política que permite ou nega o acesso ao Secrets Manager. Porexemplo, a política em AWS: Nega acesso à AWS com base no IP de origem restringe as ações da AWSpara solicitações do intervalo IP especificado.

Se você anexar uma política semelhante a um segredo que permita que ele seja acessado do intervalo deendereços IP da sua rede corporativa, suas solicitações como um usuário do IAM que invoca a solicitaçãoda rede corporativa funcionarão como o esperado. Mas se você habilitar outros serviços para acessaro segredo em seu nome, por exemplo, quando você habilitar a rotação com uma função Lambda, essafunção chamará as operações do Secrets Manager de um espaço de endereço interno da AWS. Assolicitações afetadas pela política com o filtro de endereços IP falharão.

Além disso, a chave de condição aws:sourceIP se torna menos efetiva quando a solicitação se originaem um VPC endpoint da Amazon. Para restringir solicitações a um VPC endpoint específico, incluindo umVPC endpoint do Secrets Manager, use as chaves de condição aws:sourceVpce ou aws:sourceVpc.Para obter mais informações, consulte VPC endpoints – controle do uso de endpoints no Guia do usuárioda Amazon VPC.

Utilização das condições do VPC endpoint em políticas com permissões doSecrets Manager

O Secrets Manager oferece suporte a Amazon VPCendpoints do (p. 136) fornecidos pelo AWSPrivateLink. Você pode usar as chaves de condição globais a seguir em políticas do IAM ou políticasbaseadas em recursos (p. 57) para permitir ou negar acesso a partir de uma VPC ou VPC endpointespecífico.

• aws:SourceVpc limita o acesso a solicitações da VPC especificado.• aws:SourceVpce limita o acesso a solicitações do VPC endpoint especificado.

Se usar essas chaves de condição em uma declaração de política de segredo que permite ou nega oacesso a segredos do Secrets Manager, você poderá negar acesso acidentalmente a serviços que usamo Secrets Manager para acessar segredos em seu nome. Apenas alguns serviços da AWS podem serexecutados com um endpoint em sua VPC. Se você restringir as solicitações de um segredo a umaVPC ou VPC endpoint, poderá haver falha nas chamadas para o Secrets Manager de um serviço nãoconfigurado para o serviço.

182

Page 189: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSolução de problemas gerais

Solucionar problemas do AWSSecrets Manager

Se você encontrar problemas ao trabalhar com AWS Secrets Manager, consulte os tópicos desta seção.

Tópicos• Solução de problemas gerais (p. 183)• Resolução de problemas AWS Secrets Manager rotação de segredos (p. 185)

Solução de problemas geraisUse as informações contidas aqui para ajudar a diagnosticar e corrigir acesso negado ou outros problemascomuns que você pode encontrar ao trabalhar com o AWS Secrets Manager.

Tópicos• Recebo uma mensagem de “acesso negado” quando envio uma solicitação ao AWS Secrets

Manager. (p. 183)• Recebo uma mensagem de "acesso negado" quando envio uma solicitação com credenciais de

segurança temporárias. (p. 183)• As alterações que faço nem sempre ficam imediatamente visíveis. (p. 184)• Recebo uma mensagem “não é possível gerar uma chave de dados com uma CMK assimétrica” ao

criar um segredo. (p. 184)

Recebo uma mensagem de “acesso negado” quandoenvio uma solicitação ao AWS Secrets Manager.• Verifique se você tem permissões para chamar a operação e o recurso solicitados. Um administrador

deve conceder permissões anexando uma política do IAM ao seu usuário do IAM ou a um grupo do qualvocê faz parte. Se as declarações de política que concedem essas permissões incluírem condições,como horário do dia ou restrições de endereço IP, você também deverá cumprir esses requisitos aoenviar a solicitação. Para obter informações sobre como visualizar ou modificar políticas para umusuário, grupo ou função do IAM, consulte Trabalhar com políticas no Guia do usuário do IAM.

• Se estiver a assinar pedidos de API manualmente, sem utilizar o AWS SDKs, verifique-o corretamenteassinou o pedido.

Recebo uma mensagem de "acesso negado" quandoenvio uma solicitação com credenciais de segurançatemporárias.• Verifique se o usuário ou a função do IAM que você está usando para fazer a solicitação tem as

permissões corretas. As permissões de credenciais de segurança temporárias derivam de um usuário

183

Page 190: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAs alterações que faço nem sempre

ficam imediatamente visíveis.

ou função do IAM. Isso significa que as permissões são limitadas àquelas concedidas ao usuário oufunção do IAM. Para obter mais informações sobre como as permissões de credenciais de segurançatemporárias são determinadas, consulte Controlar permissões para credenciais de segurançatemporárias no Guia do usuário do IAM.

• Verifique se suas solicitações são assinadas corretamente e bem-formada. Para obter detalhes, consultea documentação do toolkit para o SDK escolhido ou Usar credenciais de segurança temporárias parasolicitar acesso aos recursos da AWS no Guia do usuário do IAM.

• Verifique se suas credenciais de segurança temporárias não expiraram. Para obter mais informações,consulte Solicitar credenciais de segurança temporárias no Guia do usuário do IAM.

As alterações que faço nem sempre ficamimediatamente visíveis.Como um serviço acessado por meio de computadores em datacenters em todo o mundo, o AWS SecretsManager usa um modelo de computação distribuído chamado consistência eventual. Qualquer alteraçãofeita no Secrets Manager (ou outros serviços da AWS) leva tempo para se tornar visível em todos osendpoints possíveis. O atraso resulta, em parte, do tempo necessário para enviar os dados de um servidorpara outro, de uma zona de replicação para outra e de uma região para outra em todo o mundo. O SecretsManager também usa o armazenamento em cache para melhorar o desempenho, mas em alguns casosisso pode levar tempo. A alteração talvez não fique visível enquanto os dados armazenados em cacheanteriormente não atingirem o tempo limite.

Projete seus aplicativos globais levando em conta esses possíveis atrasos. Além disso, garanta ofuncionamento esperado, mesmo quando uma alteração feita em um local não fique imediatamente visívelem outro.

Para obter mais informações sobre como alguns outros serviços da AWS são afetados por isso, consulteos seguintes recursos:

• Gerir a consistência de dados na Amazon Redshift Database Developer Guide• Modelo de consistência de dados do Amazon S3 no Guia do desenvolvedor do Amazon Simple Storage

Service• Garantir a consistência ao utilizar o Amazon S3 e o Amazon Elastic MapReduce para fluxos de trabalho

ETL na AWS Blogue de Grandes Dados• Consistência eventual do EC2 no Amazon EC2 API Reference•

Recebo uma mensagem “não é possível gerar umachave de dados com uma CMK assimétrica” ao criarum segredo.Verifique se você está usando uma chave mestra de cliente (CMK) simétrica em vez de uma CMKassimétrica. O Secrets Manager usa uma chave mestra de cliente (CMK) simétrica associada a umsegredo para gerar uma chave de dados para cada valor de segredo. O Secrets Manager também usaa CMK para descriptografar essa chave de dados quando ele precisa descriptografar o valor de segredocriptografado. Pode acompanhar os pedidos e respostas na AWS CloudTrail eventos, Amazon CloudWatchRegistos e pistas de auditoria. Não é possível usar uma CMK assimétrica neste momento.

184

Page 191: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioSolucionar problemas de rotação

Resolução de problemas AWS Secrets Managerrotação de segredos

Use estas informações para diagnosticar e corrigir erros comuns que você pode encontrar ao alternarsegredos do Secrets Manager.

Para alternar segredos no AWS Secrets Manager, é necessário usar uma função Lambda que define comointeragir com o banco de dados ou serviço que tem o segredo.

Erros de rotação comuns• Eu quero localizar os logs de diagnóstico da minha função de rotação do Lambda (p. 185)• Eu não consigo prever quando a rotação vai começar (p. 185)• Eu recebo a mensagem "access denied" (acesso negado) ao tentar configurar a rotação de meu

segredo (p. 186)• Minha primeira rotação falha depois que habilito a rotação (p. 186)• A rotação apresenta falha porque o valor secreto não está formatado como esperado pela função de

rotação. (p. 186)• O Secrets Manager informa que eu configurei a rotação com êxito, mas a senha não está sendo

alternada (p. 187)• A rotação falha com uma mensagem de erro "Falha interna" (p. 187)• O CloudTrail mostra os erros de acesso negado durante a rotação (p. 188)

Eu quero localizar os logs de diagnóstico da minhafunção de rotação do LambdaQuando a função de rotação não está funcionando da maneira esperada, verifique primeiramente os logsdo CloudWatch. O Secrets Manager fornece o código de modelo da função de rotação do Lambda e essecódigo grava mensagens de erro no log do CloudWatch.

Para visualizar os logs do CloudWatch de sua função Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Na lista de funções, selecione o nome da função do Lambda associada ao segredo.3. Escolha a guia Monitoring (Monitoramento).4. Na seção Invocation errors (Erros de invocação), selecione Jump to Logs (Pular para logs).

O console do CloudWatch é aberto e exibe os logs de sua função.

Eu não consigo prever quando a rotação vai começarSó é possível prever a data da próxima rotação, não a hora.

Secrets Manager agenda a próxima rotação quando a anterior é concluída. Secrets Manager agenda adata adicionando o intervalo de rotação (número de dias) para a data real da última rotação. O serviçoescolhe a hora dentro da janela de data de 24 horas disponível de forma aleatório. O minuto também éescolhido aleatoriamente, mas é pesado com relação ao topo da hora e influenciada pela variedade dosfatores que ajudam a distribuir carga.

185

Page 192: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEu recebo a mensagem "access denied" (acesso

negado) ao tentar configurar a rotação de meu segredo

Eu recebo a mensagem "access denied" (acessonegado) ao tentar configurar a rotação de meusegredoQuando você adiciona o nome de recurso da Amazon (ARN) de uma função de rotação do Lambda aosegredo, o Secrets Manager verifica as permissões da função. A política da função deve conceder apermissão principal do serviço do para invocar a função (lambda:InvokeFunction).

Você pode adicionar essa permissão executando o seguinte comando da AWS CLI:

aws lambda add-permission --function-name ARN_of_lambda_function --principal secretsmanager.amazonaws.com --action lambda:InvokeFunction --statement-id SecretsManagerAccess

Minha primeira rotação falha depois que habilito arotaçãoQuando você habilita a rotação de um segredo que usa um segredo "mestre" para alterar as credenciaisno serviço protegido, o Secrets Manager configura a maioria dos elementos necessários para a rotaçãoautomaticamente. No entanto, o Secrets Manager não pode conceder permissão automaticamente para lero segredo mestre para sua função Lambda. Você mesmo deve conceder explicitamente essa permissão.Especificamente, conceda a permissão adicionando-a à política anexada à função do IAM que estáanexada à sua função de rotação do Lambda. Essa política deve incluir a seguinte declaração m que ésomente uma declaração, não uma política completa. Para obter a política completa, consulte a segundapolítica de exemplo na seção O CloudTrail mostra os erros de acesso negado durante a rotação (p. 188).

{ "Sid": "AllowAccessToMasterSecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "ARN_of_master_secret"}

Isso permite que a função de rotação recupere as credenciais do segredo mestre e use as credenciais desegredo mestre para alterar as credenciais do segredo sendo alternado.

A rotação apresenta falha porque o valor secretonão está formatado como esperado pela função derotação.Também pode haver falha na rotação se você não formatar o valor secreto como uma estrutura JSONconforme esperado pela função de rotação. A função de rotação que você usar determinará o formatousado. Para obter detalhes sobre o que cada função de rotação requer para o valor secreto, consulteo Esperado SecretString Valor sob a função de rotação relevante em Modelos da AWS que podem serusados para criar funções de rotação do Lambda (p. 171).

Por exemplo, se utilizar a função MySQL Função de rotação de utilizador único, a SecretStringestrutura de texto deve ter este aspecto:

{

186

Page 193: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioO Secrets Manager informa que eu configurei a rotação

com êxito, mas a senha não está sendo alternada

"engine": "mysql", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>"}

O Secrets Manager informa que eu configurei arotação com êxito, mas a senha não está sendoalternadaIsso poderá ocorrer se houver problemas de configuração da rede que impedem que a função do Lambdase comunique com o banco de dados/serviço protegido ou com o endpoint do serviço Secrets Manager,na Internet pública. Se você executar seu banco de dados ou serviço em uma VPC, use uma das duasopções para configuração:

• Torne o banco de dados na VPC acessível publicamente com um endereço IP elástico do Amazon EC2.• Configure a função de rotação Lambda para operar na mesma VPC que o banco de dados/serviço.• Se a sua VPC não tiver acesso à Internet pública, por exemplo, se você não configurar a VPC com um

gateway NAT para acesso, você deverá configurar a VPC com um endpoint de serviço privado para oSecrets Manager (p. 88) que seja acessível de dentro da VPC.

Para determinar se esse tipo de problema de configuração é a causa da falha na rotação, execute asetapas a seguir.

Para diagnosticar problemas de conectividade entre a função de rotação e o banco de dados ou oSecrets Manager

1. Siga o procedimento Eu quero localizar os logs de diagnóstico da minha função de rotação doLambda (p. 185) para abrir os logs.

2. Examine os arquivos de log para procurar indicações de que limites de tempo tenham sido atingidosentre a função do Lambda e o serviço AWS Secrets Manager ou entre a função do Lambda e o bancode dados ou serviço protegido.

3. Para obter informações sobre como configurar os serviços e as funções Lambda para interoperar noambiente da VPC, consulte a documentação Amazon Virtual Private Cloud e AWS Lambda DeveloperGuide.

A rotação falha com uma mensagem de erro "Falhainterna"Quando a função de rotação gera uma nova senha e tenta armazená-la no banco de dados como umnovo conjunto de credenciais, você deve verificar se a senha inclui somente caracteres válidos parao banco de dados especificado. A tentativa de definir a senha para um usuário falha se a senha temcaracteres que o mecanismo de banco de dados não aceita. Esse erro aparece como uma "falha interna".Consulte a documentação do banco de dados para ver uma lista de caracteres que podem ser usados.Em seguida, exclua todos os outros usando o parâmetro ExcludeCharacters na chamada de APIGetRandomPassword.

187

Page 194: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioO CloudTrail mostra os erros de

acesso negado durante a rotação

O CloudTrail mostra os erros de acesso negadodurante a rotaçãoAo configurar a rotação, se você permitir que o Secrets Manager crie a função de rotação para você, oSecrets Manager fornecerá automaticamente uma política anexada à função do IAM que concede aspermissões adequadas. Se você criar uma função personalizada, será necessário conceder as seguintespermissões à função anexada à função.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetRandomPassword", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage", ], "Resource": "*" } ]}

Além disso, se a rotação usar credenciais de um segredo mestre separado para alternar esse segredo,você também deverá conceder permissão para recuperar o valor do segredo mestre. Para obter maisinformações, consulte Minha primeira rotação falha depois que habilito a rotação (p. 186). A políticacombinada deve ser semelhante a esta:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSecretsManagerAPIs", "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetRandomPassword", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage", ], "Resource": "*" }, { "Sid": "AllowAccessToMasterSecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "<arn_of_master_secret>" } ]}

188

Page 195: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioEndpoints

Ligar para a API enviando pedidos deconsulta HTTP

Esta seção contém informações gerais sobre o uso da API de consulta do AWS Secrets Manager. Paraobter mais detalhes sobre as operações da API e os erros, consulte o Referência de AWS SecretsManager API.

Note

Em vez de enviar chamadas diretas para o AWS Secrets Manager (API de consulta, pode utilizarum dos AWS SDKs. lá estão AWS SDKs consistem em bibliotecas e exemplos de códigos paravárias linguagens de programação e plataformas, tais como Java, Ruby,.NET, iOS, Android emuito mais. lá estão SDKs proporcionam uma forma conveniente de criar acesso programático aSecrets Manager e AWS. Por exemplo, o SDKs executar tarefas como assinar criptograficamentepedidos, gerir erros e tentar novamente pedidos automaticamente. Para obter informações sobreo AWS SDKs, incluindo como transferir e instalar os pacotes, consulte Ferramentas para osServiços Web da Amazon.

A API de consulta do AWS Secrets Manager permite chamar operações de serviço. As solicitações daAPI de consulta são solicitações HTTPS que devem conter um parâmetro Action para indicar a açãoa ser realizada. O AWS Secrets Manager oferece suporte a solicitações GET e POST para todas asoperações. A API não requer que você use GET para algumas operações e POST para outras. No entanto,as solicitações GET estão sujeitas à limitação do tamanho de um URL. Embora esse limite dependa donavegador, um limite típico é de 2048 bytes. Portanto, para as solicitações da API de consulta que exigemtamanhos maiores, você deve usar uma solicitação POST.

A API retorna a resposta em um documento XML. Para obter mais detalhes sobre a resposta, consulte aspáginas de descrição da API individuais no Referência da API do AWS Organizations.

Tópicos• Endpoints (p. 189)• HTTPS obrigatório (p. 189)• Assinatura de solicitações de API para Secrets Manager (p. 190)

EndpointsO AWS Secrets Manager tem endpoints na maioria das regiões da AWS. Para ver a lista completa,consulte a lista de endpoint para AWS Secrets Manager em AWS General Reference.

Para obter mais informações sobre regiões e endpoints da AWS para todos os serviços, consulte Regiõese endpoints também no AWS General Reference.

HTTPS obrigatórioComo a API de consulta retorna informações confidenciais, como credenciais de segurança, você deveusar HTTPS para criptografar todas as solicitações de API.

Consulte a Referência geral da AWS.

189

Page 196: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuárioAssinatura de solicitações de API para Secrets Manager

Assinatura de solicitações de API para SecretsManager

Você deve assinar solicitações de API usando um ID de chave de acesso e uma chave de acesso secreta.É altamente recomendável não usar as credenciais de usuário raiz de sua conta da AWS para tarefasdiárias com o Secrets Manager. Em vez disso, você pode usar as credenciais de um usuário do IAM oucredenciais temporárias, como as que são utilizadas com uma função do IAM.

Para assinar suas solicitações de API, você deve usar a AWS Signature versão 4. Para obter informaçõessobre como usar o Signature versão 4, consulte Processo de assinatura do Signature versão 4 naReferência geral da AWS.

Para obter mais informações, consulte as informações a seguir:

• Credenciais de segurança da AWS. Fornece informações gerais sobre os tipos de credenciais que vocêpode usar para acessar o AWS.

• Práticas recomendadas do IAM. Oferece sugestões para usar o serviço IAM para ajudar a proteger seusrecursos da AWS, incluindo aqueles que estão no Secrets Manager.

• Credenciais temporárias. Descreve como criar e usar credenciais de segurança temporárias.

190

Page 197: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Histórico de documentos dos AWSSecrets Manager

A tabela a seguir descreve as principais atualizações da documentação do AWS Secrets Manager.

• Versão da API: 2017-10-17

update-history-change update-history-description update-history-date

Adicionada informação sobreSecurity Hub controlos paraSecrets Manager e boas práticasde segurança. (p. 191)

Security Hub fornece controlosde segurança para verificar arotação automática de segredose a rotação bem-sucedida desegredos.

September 18, 2020

Atualizado CloudFormationexemplos para usar o SecretsManager Transforme.

Ao criar um Secrets Managersecreta e base de dadoscom roation utilizando oCloudFormation modelo, tem aopção de utilizar Transform:AWS::SecretsManager-2020-07-23que lhe permite criar um Lambdaalojado.

July 23, 2020

Capacidades de pesquisamelhoradas para segredos.

Pode pesquisar por segredosutilizando o nome, descrição,chave de etiqueta e valor deetiqueta. Secrets Managerpermite vários filtros paraencontrar segredos.

July 9, 2020

Adicionada a capacidade deanexar políticas baseadas emrecursos a segredos usando oSecrets Manager consola.

Pode adicionar, modificar eeliminar políticas baseadas emrecursos utilizando a consola.Além disso, Secrets Managervalida as políticas.

July 9, 2020

Alteração no tutorial Executarrotação de segredo para incluirum link para o Amazon RDS.

Para manter as etapas do tutorialatualizadas no guia, um link paraa documentação do AmazonRDS substituiu as etapas paraconfigurar um banco de dados deteste.

May 12, 2020

Adicionado FedRAMPconformidade para SecretsManager.

Adicionado FedRAMP einformação sobre a conformidadecom Secrets Manager.

May 12, 2020

Adicionado AWS Config comSecrets Manager e foramadicionadas mais informaçõessobre CloudFormation. (p. 191)

Adição de documentação parausar o AWS Config com oSecrets Manager.

April 16, 2020

191

Page 198: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Substituído CloudFormationmodelos com modelos maiscurtos e fáceis de utilizar. (p. 191)

Agora, os modelos usam apenas60 linhas de código para criarCloudFormation configurações.

November 20, 2019

Documentação adicionada parapolíticas de endpoint

Agora é possível usar umapolítica de endpoint paracontrolar atividades relacionadasa segredos no VPC endpoint doSecrets Manager. Adicionadaseção para criar uma política deendpoint para VPC endpoint doSecrets Manager. Também foicriado um artigo de referênciadistinto para todo o conteúdo doVPC endpoint.

July 25, 2019

Adicionados os clientesarmazenados em cache paraPython, Go e .NET

Foram adicionadas ligações aGitHub onde adquire os clientesde colocação em cache daPython, Go e.NET.

May 9, 2019

Foram adicionados tipos secretospara Redshift e DocumentDB

Adição de Redshift eDocumentDB para os tipossecretos.

March 7, 2019

Bancos de dados compatíveisatualizados

Adicionada lista completa debancos de dados compatíveisno Amazon RDS para suporterotacional, incluindo MicrosoftSQL Server, Oracle e muito mais.

December 2, 2018

Conformidade com PCI e ISO Padrões PCI e ISO incluídosna seção de padrões deconformidade.

December 1, 2018

Usar as funções de rotaçãoexistentes do Lambda com seussegredos

Agora, ao habilitar a rotaçãode um segredo no console doSecrets Manager, você poderáescolher uma função existentedo Lambda, além de poder criaroutras funções.

November 15, 2018

Marcar seus segredos usando oconsole do Secrets Manager

Agora você pode incluir tags aocriar e modificar seus segredosusando o console do SecretsManager.

November 15, 2018

192

Page 199: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

Crie segredos de formaprogramática comCloudFormation

Agora pode criar segredosdefinindo-os numCloudFormation modelo. Se osegredo for associado a um dosbancos de dados com suportetotal, você também poderá geraras credenciais de forma dinâmicadurante o processamento domodelo, configurar o bancode dados para usar essascredenciais e armazená-las emum segredo configurado pararotacionar automaticamente.

November 12, 2018

Excluir um segredo sem umajanela de recuperação

Agora, você pode excluirsegredos sem especificar umajanela de recuperação. Assim,você pode "limpar" segredosdesnecessários sem precisaresperar um mínimo de sete dias.

August 9, 2018

Endpoints de serviço privados daVPC

Pode agora configurar os pontosfinais de serviços privados paraSecrets Manager dentro do seuVPCs. Isto permite-lhe chamarSecrets Manager OperaçõesAPI a partir de um VPC semnecessidade de ligação à Internetpública.

July 11, 2018

Políticas baseadas em recursos Agora, você pode anexarpolíticas de permissão do IAMdiretamente a um segredo paradeterminar quem pode acessaro segredo. Isso também permiteo acesso entre contas, pois vocêpode especificar outras contas daAWS no elemento Principalde uma política baseada emrecursos.

June 26, 2018

Compatibilidade com HIPAA O Secrets Manager agora estádisponível como um serviçocompatível com HIPAA.

June 4, 2018

Versão inicial de serviço Documentação fornecida parao lançamento inicial de AWSSecrets Manager.

April 4, 2018

193

Page 200: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

194

Page 201: AWS Secrets Manager...AWS Secrets Manager Guia do usuário Recursos do Secrets Manager 1. O administrador do banco de dados cria um conjunto de credenciais no banco de dados de Pessoal

AWS Secrets Manager Guia do usuário

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e daversão original em inglês, a versão em inglês prevalecerá.

cxcv


Recommended