

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurando AWS Secrets Manager
<a name="configure-asm"></a>

AWS Secrets Manager ajuda a proteger os segredos de que você precisa para acessar seus aplicativos, serviços e recursos de TI. O serviço armazena, gerencia, criptografa e alterna com segurança credenciais de banco de dados, chaves de API e outros segredos, incluindo OAuth tokens, e fornece integração nativa com o Amazon Relational Database Service (Amazon RDS), o Amazon Redshift e o Amazon DocumentDB. Usuários e aplicativos recuperam segredos chamando o Secrets Manager APIs, o que elimina a necessidade de codificar informações confidenciais em texto simples. O Secrets Manager inclui permissões de controle de acesso refinadas e fornece um local centralizado para auditar a rotação de segredos em Nuvem AWS ambientes locais e de terceiros.

## Pré-requisitos para usar o Secrets Manager com aplicativos.NET Framework
<a name="configure-asm-prereq"></a>
+ Um ativo Conta da AWS
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/downloads/), instalado
+ AWS Command Line Interface (AWS CLI) versão 2, instalada e configurada para acessar seu Conta da AWS (veja [as instruções](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html))
+ AWS Toolkit for Visual Studio, configurado (veja [as instruções](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html))
+ Um segredo, criado e recuperado usando o console Secrets Manager ou o AWS CLI (veja [as instruções](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html))

## Exemplo
<a name="configure-asm-example"></a>

Para acessar segredos do Secrets Manager na API web do ASP.NET Core (.NET 6):

1. Adicione o NuGet pacote a seguir à API web do ASP.NET Core.

   ```
   AWSSDK.SecretsManager.Caching
   ```

1. No `Program.cs` arquivo, faça as seguintes alterações.
   + Adicione o `Amazon.SecretsManager` namespace (1).

     ```
     using Amazon.SecretsManager;
     ```
   + Registre o serviço (2).

     ```
     builder.Services.AddScoped<IAmazonSecretsManager>(x =>
           new AmazonSecretsManagerClient(RegionEndpoint.EUWest2)
        );
     ```  
![\[Alterações no arquivo Program.cs para acessar o Secrets Manager\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-program-cs.png)

1. Para recuperar os segredos do Secrets Manager, faça as seguintes alterações no arquivo da classe do controlador (por exemplo,`ValuesController.cs`). 
   + Adicione o construtor (1).

     ```
     private readonly IAmazonSecretsManager _secretsManager;
     
     public SecretsController(IAmazonSecretsManager secretsManager)
     {
         _secretsManager = secretsManager;
     }
     ```
   + Implemente o `GetSecret` método (2).

     ```
     string secretName = "arn:aws:secretsmanager:eu-west-2:111122223333:secret:dev/myapp/tenant-gSj6qd";
     GetSecretValueRequest request = new GetSecretValueRequest();
     request.SecretId = secretName;
     request.VersionStage = "AWSCURRENT";
     Task<GetSecretValueResponse> response = _secretsManager.GetSecretValueAsync(request);
     return Ok(new { Secret = response.Result.SecretString });
     ```

     onde *111122223333* se refere ao ID da conta.  
![\[Alterações no arquivo da classe do controlador para recuperar segredos do Secrets Manager\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-controller-class.png)
**nota**  
`secretName`refere-se ao nome ou Amazon Resource Name (ARN) do segredo. Depois que um segredo é criado, esse valor pode ser recuperado no console do Secrets Manager. Você deve chamar `secretName` dinamicamente ou a partir de variáveis de ambiente. Não codifique esse valor em ambientes de produção. 