

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

AWS Secrets Manager membantu Anda melindungi rahasia yang Anda butuhkan untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Layanan ini menyimpan, mengelola, mengenkripsi, dan memutar kredensi database, kunci API, dan rahasia lainnya dengan aman, termasuk OAuth token, dan menyediakan integrasi asli dengan Amazon Relational Database Service (Amazon RDS), Amazon Redshift, dan Amazon DocumentDB. Pengguna dan aplikasi mengambil rahasia dengan memanggil Secrets Manager APIs, yang menghilangkan kebutuhan untuk hardcode informasi sensitif dalam plaintext. Secrets Manager menyertakan izin kontrol akses berbutir halus dan menyediakan lokasi terpusat untuk mengaudit rotasi rahasia di lingkungan lokal AWS Cloud, lokal, dan pihak ketiga.

## Prasyarat untuk menggunakan Secrets Manager dengan aplikasi.NET Framework
<a name="configure-asm-prereq"></a>
+ Aktif Akun AWS
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/downloads/), diinstal
+ AWS Command Line Interface (AWS CLI) versi 2, diinstal dan dikonfigurasi untuk mengakses Anda Akun AWS (lihat [instruksi](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html))
+ AWS Toolkit for Visual Studio, dikonfigurasi (lihat [instruksi](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html))
+ Rahasia, dibuat dan diambil dengan menggunakan konsol Secrets Manager atau AWS CLI (lihat [instruksi](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html))

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

Untuk mengakses rahasia dari Secrets Manager di API web ASP.NET Core (.NET 6):

1. Tambahkan NuGet paket berikut ke API web ASP.NET Core.

   ```
   AWSSDK.SecretsManager.Caching
   ```

1. Dalam `Program.cs` file, buat perubahan berikut.
   + Tambahkan `Amazon.SecretsManager` namespace (1).

     ```
     using Amazon.SecretsManager;
     ```
   + Daftarkan layanan (2).

     ```
     builder.Services.AddScoped<IAmazonSecretsManager>(x =>
           new AmazonSecretsManagerClient(RegionEndpoint.EUWest2)
        );
     ```  
![\[Perubahan pada file Program.cs untuk mengakses Secrets Manager\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-program-cs.png)

1. Untuk mengambil rahasia dari Secrets Manager, buat perubahan berikut pada file kelas controller (misalnya,`ValuesController.cs`). 
   + Tambahkan konstruktor (1).

     ```
     private readonly IAmazonSecretsManager _secretsManager;
     
     public SecretsController(IAmazonSecretsManager secretsManager)
     {
         _secretsManager = secretsManager;
     }
     ```
   + Menerapkan `GetSecret` metode (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 });
     ```

     di mana *111122223333* mengacu pada ID akun.  
![\[Perubahan pada file kelas controller untuk mengambil rahasia dari Secrets Manager\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-controller-class.png)
**catatan**  
`secretName`mengacu pada nama atau Nama Sumber Daya Amazon (ARN) dari rahasia tersebut. Setelah rahasia dibuat, nilai ini dapat diambil dari konsol Secrets Manager. Anda harus memanggil `secretName` secara dinamis atau dari variabel lingkungan. Jangan hardcode nilai ini di lingkungan produksi. 