

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

# Mengakses AWS Key Management Service
<a name="accessing-kms"></a>

Anda dapat bekerja dengan AWS KMS cara-cara berikut:

**Topics**
+ [Konsol Manajemen AWS](#kms-console)
+ [AWS Command Line Interface](#kms-cli)
+ [AWS KMS REST API](#kms-api)
+ [AWS SDKs](#kms-sdk)
+ [Menggunakan layanan ini dengan AWS SDK](sdk-general-information-section.md)
+ [AWS Encryption SDK](#crypto-sdk)
+ [AWS KMS konsistensi akhirnya](#programming-eventual-consistency)
+ [Menggunakan TLS pasca-kuantum hibrida dengan AWS KMS](pqtls.md)
+ [Connect ke AWS KMS melalui titik akhir VPC](kms-vpc-endpoint.md)
+ [Dukungan titik akhir tumpukan ganda](ipv6-kms.md)

## Konsol Manajemen AWS
<a name="kms-console"></a>

Konsol adalah antarmuka pengguna berbasis web untuk mengelola AWS KMS dan AWS sumber daya. Jika Anda telah mendaftar Akun AWS, Anda dapat mengakses AWS KMS konsol dengan masuk ke Konsol Manajemen AWS dan memilih AWS KMS dari Konsol Manajemen AWS beranda.

### Izin yang diperlukan untuk menggunakan konsol AWS KMS
<a name="console-permissions"></a>

Untuk bekerja dengan AWS KMS konsol, pengguna harus memiliki set izin minimum yang memungkinkan mereka untuk bekerja dengan AWS KMS sumber daya di dalamnya. Akun AWS Selain AWS KMS izin ini, pengguna juga harus memiliki izin untuk mencantumkan pengguna IAM dan peran IAM. Jika Anda membuat kebijakan IAM yang lebih ketat dari izin minimum yang diperlukan, konsol AWS KMS tersebut tidak akan berfungsi sebagaimana mestinya untuk pengguna dengan kebijakan IAM tersebut.

Untuk izin minimum yang diperlukan guna mengizinkan pengguna akses hanya baca ke konsol AWS KMS tersebut, lihat [Izinkan pengguna untuk melihat kunci KMS di konsol AWS KMS](customer-managed-policies.md#iam-policy-example-read-only-console).

Untuk memungkinkan pengguna bekerja dengan AWS KMS konsol untuk membuat dan mengelola kunci KMS, lampirkan kebijakan **AWSKeyManagementServicePowerUser**terkelola ke pengguna, seperti yang dijelaskan dalam[AWS kebijakan terkelola untuk AWS Key Management Service](security-iam-awsmanpol.md).

Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang bekerja dengan AWS KMS API melalui [AWS SDKs](https://aws.amazon.com/tools/#sdk), [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/), atau [Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/). Namun, Anda harus memberikan izin kepada pengguna ini untuk menggunakan API. Untuk informasi selengkapnya, lihat [Referensi izin](kms-api-permissions-reference.md).

## AWS Command Line Interface
<a name="kms-cli"></a>

Anda dapat menggunakan AWS CLI alat untuk mengeluarkan perintah atau membuat skrip di baris perintah sistem Anda untuk melakukan AWS (termasuk AWS KMS) tugas. 

Untuk informasi selengkapnya tentang menggunakan AWS KMS melalui AWS CLI, lihat [Referensi AWS CLI Perintah](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/index.html)

## AWS KMS REST API
<a name="kms-api"></a>

 Arsitektur AWS KMS dirancang untuk menjadi pemrograman bahasa-netral. REST APIIni adalah antarmuka HTTP untuk AWS KMS. DenganREST API, Anda menggunakan permintaan HTTP standar untuk membuat, mengambil, dan menghapus kunci. 

 Untuk informasi selengkapnya tentang penggunaan AWS KMS REST API, lihat [Referensi AWS Key Management Service API](https://docs.aws.amazon.com/kms/latest/APIReference/Welcome.html)

## AWS SDKs
<a name="kms-sdk"></a>

AWS menyediakan SDKs (kit pengembangan perangkat lunak) yang terdiri dari perpustakaan dan kode sampel untuk bahasa pemrograman umum dan platform (Java, JavaScript, C, Python, dan sebagainya). AWS SDKs Menyediakan cara yang nyaman untuk membuat akses terprogram ke AWS KMS dan AWS. AWS KMS adalah REST layanan. Anda dapat mengirim permintaan untuk AWS KMS menggunakan pustaka AWS SDK, yang membungkus yang mendasarinya AWS KMS REST API dan menyederhanakan tugas pemrograman Anda. Untuk informasi tentang AWS SDKs, termasuk cara mengunduh dan menginstalnya, lihat [Alat untuk Dibangun AWS](https://aws.amazon.com/developer/tools).

[Contoh kode untuk AWS KMS menggunakan AWS SDKs](service_code_examples.md)Ini memberikan titik awal yang baik untuk menggunakan AWS KMS melalui AWS SDKs.

# Menggunakan layanan ini dengan AWS SDK
<a name="sdk-general-information-section"></a>

AWS kit pengembangan perangkat lunak (SDKs) tersedia untuk banyak bahasa pemrograman populer. Setiap SDK menyediakan API, contoh kode, dan dokumentasi yang memudahkan developer untuk membangun aplikasi dalam bahasa pilihan mereka.


| Dokumentasi SDK | Contoh kode | 
| --- | --- | 
| [AWS SDK untuk C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK untuk C\$1\$1 contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI contoh kode](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK untuk Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK untuk Go contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK untuk Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK untuk Java contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK untuk JavaScript contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK untuk Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK untuk Kotlin contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK untuk .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK untuk .NET contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK untuk PHP contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell) | [Alat AWS untuk PowerShell contoh kode](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK untuk Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK untuk Python (Boto3) contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK untuk Ruby contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK for Rust contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK for SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK for SAP ABAP contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK for Swift contoh kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**Ketersediaan contoh**  
Tidak dapat menemukan apa yang Anda butuhkan? Minta contoh kode menggunakan tautan **Berikan umpan balik** di bagian bawah halaman ini.

## AWS Encryption SDK
<a name="crypto-sdk"></a>

 AWS Encryption SDK Ini adalah alat untuk menerapkan enkripsi sisi klien dalam aplikasi Anda. Ini tidak menyediakan akses penuh ke KMS, melainkan terintegrasi dengan AWS KMS, atau dapat digunakan sebagai SDK yang berdiri sendiri tanpa merujuk kunci KMS. Perpustakaan tersedia untuk Java,, C JavaScript, Python, dan bahasa pemrograman lainnya. 

Lihat informasi selengkapnya di [Panduan Developer AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html).

AWS KMS key kebijakan dan kebijakan IAM

## AWS KMS konsistensi akhirnya
<a name="programming-eventual-consistency"></a>

 AWS KMS API mengikuti model [konsistensi akhirnya](https://en.wikipedia.org/wiki/Eventual_consistency) karena sifat sistem yang terdistribusi. Akibatnya, perubahan pada AWS KMS sumber daya mungkin tidak langsung terlihat oleh perintah berikutnya yang Anda jalankan. 

Saat Anda melakukan panggilan AWS KMS API, mungkin ada penundaan singkat sebelum perubahan tersedia secara keseluruhan AWS KMS. Biasanya diperlukan waktu kurang dari beberapa detik agar perubahan menyebar ke seluruh sistem, tetapi dalam beberapa kasus dapat memakan waktu beberapa menit. Anda mungkin mendapatkan kesalahan yang tidak terduga, seperti a `NotFoundException` atau`InvalidStateException`, selama waktu ini. Misalnya, AWS KMS mungkin mengembalikan `NotFoundException` jika Anda menelepon `GetParametersForImport` segera setelah menelepon`CreateKey`.

Kami menyarankan Anda mengonfigurasi strategi coba lagi pada AWS KMS klien Anda untuk mencoba kembali operasi secara otomatis setelah masa tunggu singkat. Untuk informasi selengkapnya, lihat [Coba lagi perilaku](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html) di Panduan Referensi Alat AWS SDKs dan Alat.

Untuk panggilan API terkait hibah, Anda dapat [menggunakan token hibah](using-grant-token.md) untuk menghindari kemungkinan penundaan dan segera menggunakan izin dalam hibah. Untuk informasi lebih lanjut, lihat [Konsistensi akhir (untuk hibah](grants.md#terms-eventual-consistency)).

# Menggunakan TLS pasca-kuantum hibrida dengan AWS KMS
<a name="pqtls"></a>

AWS Key Management Service (AWS KMS) mendukung opsi pertukaran kunci pasca-kuantum hibrida untuk protokol enkripsi jaringan Transport Layer Security (TLS). Anda dapat menggunakan opsi TLS ini ketika Anda terhubung ke titik akhir API AWS KMS . Fitur pertukaran kunci pasca-kuantum hibrida opsional ini setidaknya seaman enkripsi TLS yang kami gunakan saat ini dan cenderung memberikan manfaat keamanan jangka panjang tambahan. Namun, fitur-fitur tersebut memengaruhi latensi dan throughput dibandingkan dengan protokol pertukaran kunci klasik yang digunakan saat ini.

Data yang Anda kirim ke AWS Key Management Service (AWS KMS) dilindungi saat transit oleh enkripsi yang disediakan oleh koneksi Transport Layer Security (TLS). Cipher suite klasik yang didukung AWS KMS untuk sesi TLS membuat serangan brute force pada mekanisme pertukaran kunci yang tidak layak dengan teknologi saat ini. Namun, jika komputasi kuantum skala besar menjadi praktis di masa depan, cipher suite klasik yang digunakan dalam mekanisme pertukaran kunci TLS akan rentan terhadap serangan ini. Jika Anda mengembangkan aplikasi yang mengandalkan kerahasiaan jangka panjang data yang melewati koneksi TLS, Anda harus mempertimbangkan rencana untuk bermigrasi ke kriptografi pasca-kuantum sebelum komputer kuantum skala besar tersedia untuk digunakan. AWS sedang bekerja untuk mempersiapkan masa depan ini, dan kami ingin Anda juga dipersiapkan dengan baik.

*Untuk melindungi data yang dienkripsi hari ini terhadap potensi serangan future, AWS berpartisipasi dengan komunitas kriptografi dalam pengembangan algoritma tahan kuantum atau pasca-kuantum.* Kami telah menerapkan suite cipher pertukaran kunci pasca-kuantum *hibrida* AWS KMS yang menggabungkan elemen klasik dan pasca-kuantum untuk memastikan bahwa koneksi TLS Anda setidaknya sekuat dengan suite cipher klasik.

[Suite sandi hibrida ini tersedia untuk digunakan pada beban kerja produksi Anda di sebagian besar. Wilayah AWS](#pqtls-regions) Namun, karena karakteristik kinerja dan persyaratan bandwidth suite cipher hybrid berbeda dari mekanisme pertukaran kunci klasik, kami sarankan Anda [mengujinya pada panggilan AWS KMS API Anda](pqtls-how-to.md#pqtls-testing) dalam kondisi yang berbeda. 

**Umpan Balik**

Seperti biasa, kami menyambut baik umpan balik dan partisipasi Anda dalam repositori sumber terbuka kami. Kami terutama ingin mendengar bagaimana infrastruktur Anda berinteraksi dengan varian lalu lintas TLS yang baru ini. 
+ Untuk memberikan umpan balik tentang topik ini, gunakan tautan **Umpan Balik** di sudut kanan atas halaman ini.
+ Kami sedang mengembangkan suite cipher hybrid ini di open source di [https://github.com/aws/s2n-tls](https://github.com/aws/s2n-tls)repositori di. GitHub Untuk memberikan umpan balik tentang kegunaan rangkaian sandi, atau berbagi kondisi atau hasil pengujian baru, [buat masalah di repositori](https://github.com/aws/s2n-tls/issues). s2n-tls
+ Kami sedang menulis contoh kode untuk menggunakan TLS pasca-kuantum hibrida dengan AWS KMS di repositori. [https://github.com/aws-samples/aws-kms-pq-tls-example](https://github.com/aws-samples/aws-kms-pq-tls-example) GitHub Untuk mengajukan pertanyaan atau berbagi ide tentang mengonfigurasi klien HTTP atau AWS KMS klien Anda untuk menggunakan suite cipher hybrid, [buat masalah di repositori](https://github.com/aws-samples/aws-kms-pq-tls-example/issues). aws-kms-pq-tls-example

**Didukung Wilayah AWS**

TLS pasca-kuantum untuk AWS KMS tersedia di semua Wilayah AWS yang AWS KMS mendukung.

Untuk daftar AWS KMS titik akhir untuk masing-masing Wilayah AWS, lihat [AWS Key Management Service titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/kms.html) di. *Referensi Umum Amazon Web Services* Untuk informasi tentang titik akhir FIPS, lihat titik akhir [FIPS](https://docs.aws.amazon.com/general/latest/gr/rande.html#FIPS-endpoints) di. *Referensi Umum Amazon Web Services*

## Tentang pertukaran kunci pasca-kuantum hibrida di TLS
<a name="PQTLS-concepts"></a>

AWS KMS mendukung suite cipher pertukaran kunci pasca-kuantum hibrida. Anda dapat menggunakan AWS SDK for Java 2.x dan AWS Common Runtime pada sistem Linux untuk mengkonfigurasi klien HTTP yang menggunakan cipher suite ini. Kemudian, setiap kali Anda terhubung ke AWS KMS titik akhir dengan klien HTTP Anda, suite cipher hybrid digunakan.

Klien HTTP ini menggunakan [https://github.com/aws/s2n-tls](https://github.com/aws/s2n-tls), yang merupakan implementasi open source dari protokol TLS. Suite cipher hybrid yang s2n-tls menggunakan diimplementasikan hanya untuk pertukaran kunci, bukan untuk enkripsi data langsung. Selama *pertukaran kunci*, klien dan server menghitung kunci yang akan mereka gunakan untuk mengenkripsi dan mendekripsi data pada kabel.

[Algoritma yang s2n-tls digunakan adalah *hibrida* yang menggabungkan [Elliptic Curve Diffie-Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) (ECDH), algoritma pertukaran kunci klasik yang digunakan saat ini di TLS, dengan [Module-Lattice-Based Key-Encapsulation Mechanism](https://csrc.nist.gov/pubs/fips/203/final) (), enkripsi kunci publik dan algoritma pembentukan kunci yang National Institute for Standards and Technology (NISTML-KEM) telah ditetapkan sebagai algoritma kesepakatan kunci pasca-kuantum standar pertama.](https://csrc.nist.gov/pubs/fips/203/final) Hibrida ini menggunakan masing-masing algoritma secara independen untuk menghasilkan kunci. Selanjutnya menggabungkan dua kunci kriptografi. Dengans2n-tls, Anda dapat [mengonfigurasi klien HTTP](pqtls-how-to.md) untuk memilih TLS pasca-kuantum, yang menempatkan ECDH dengan yang ML-KEM pertama dalam daftar preferensi. Algoritme pertukaran kunci klasik disertakan dalam daftar preferensi untuk memastikan kompatibilitasnya, namun lebih rendah dalam urutan preferensi.

## Menggunakan TLS pasca-kuantum hibrida dengan AWS KMS
<a name="pqtls-details"></a>

Anda dapat menggunakan TLS pasca-kuantum hibrida untuk panggilan Anda. AWS KMS Saat menyiapkan lingkungan pengujian klien HTTP Anda, perhatikan informasi berikut:

**Enkripsi dalam Transit**

Suite cipher hybrid di hanya s2n-tls digunakan untuk enkripsi dalam perjalanan. Mereka melindungi data Anda saat bepergian dari klien Anda ke AWS KMS titik akhir. AWS KMS tidak menggunakan cipher suite ini untuk mengenkripsi data di bawah. AWS KMS keys

Sebaliknya, ketika AWS KMS mengenkripsi data Anda di bawah kunci KMS, ia menggunakan kriptografi simetris dengan kunci 256-bit dan Standar Enkripsi Lanjutan dalam algoritma Galois Counter Mode (AES-GCM), yang sudah tahan kuantum. Komputasi kuantum skala besar yang secara teoritis disiapkan untuk menghadapi masa depan akan menyerang ciphertext yang dibuat berdasarkan kunci 256-bit AES-GCM, sehingga [mengurangi keamanan efektif untuk kunci menjadi 128 bit](https://www.etsi.org/images/files/ETSIWhitePapers/QuantumSafeWhitepaper.pdf). Tingkat keamanan ini cukup untuk membuat serangan brute force pada AWS KMS ciphertext tidak layak. 

**Sistem yang Didukung**

Penggunaan suite cipher hybrid di saat s2n-tls ini hanya didukung pada sistem Linux. Selain itu, cipher suite ini didukung hanya dalam SDKs mendukung AWS Common Runtime, seperti. AWS SDK for Java 2.x Sebagai contoh, lihat [Konfigurasikan TLS pasca-kuantum hibrida](pqtls-how-to.md).

**AWS KMS Titik akhir**

AWS KMS mendukung TLS pasca-kuantum hibrida pada semua titik akhir termasuk titik akhir yang divalidasi [FIPS](https://docs.aws.amazon.com/general/latest/gr/kms.html) 140-3.

# Konfigurasikan TLS pasca-kuantum hibrida
<a name="pqtls-how-to"></a>

Dalam prosedur ini, tambahkan dependensi Maven untuk AWS Common Runtime HTTP Client. Selanjutnya, konfigurasikan klien HTTP yang lebih memilih TLS pasca-kuantum. Kemudian, buat AWS KMS klien yang menggunakan klien HTTP.

Untuk melihat contoh kerja lengkap tentang mengonfigurasi dan menggunakan TLS pasca-kuantum hibrida dengan AWS KMS, lihat repositori. [https://github.com/aws-samples/aws-kms-pq-tls-example](https://github.com/aws-samples/aws-kms-pq-tls-example)

**catatan**  
Klien HTTP Runtime AWS Umum, yang telah tersedia sebagai pratinjau, tersedia secara umum pada Februari 2023. Dalam rilis itu, `tlsCipherPreference` kelas dan parameter `tlsCipherPreference()` metode digantikan oleh parameter `postQuantumTlsEnabled()` metode. Jika Anda menggunakan contoh ini selama pratinjau, Anda perlu memperbarui kode Anda.

1. Tambahkan klien AWS Common Runtime ke dependensi Maven Anda. Sebaiknya gunakan versi terbaru yang tersedia. 

   Misalnya, pernyataan ini menambahkan versi `2.30.22` klien AWS Common Runtime ke dependensi Maven Anda. 

   ```
   <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>aws-crt-client</artifactId>
       <version>2.30.22</version>
   </dependency>
   ```

1. Untuk mengaktifkan suite sandi pasca-kuantum hibrida, tambahkan AWS SDK for Java 2.x ke proyek Anda dan inisialisasi. Kemudian aktifkan suite sandi pasca-kuantum hibrida pada klien HTTP Anda seperti yang ditunjukkan pada contoh berikut.

   Kode ini menggunakan parameter `postQuantumTlsEnabled()` metode untuk mengonfigurasi [klien HTTP runtime AWS umum](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) yang lebih menyukai rangkaian sandi pasca-kuantum hibrida yang direkomendasikan, ECDH dengan. ML-KEM Kemudian menggunakan klien HTTP yang dikonfigurasi untuk membangun instance klien AWS KMS asinkron,. [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kms/KmsAsyncClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kms/KmsAsyncClient.html) Setelah kode ini selesai, semua permintaan [AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) pada `KmsAsyncClient` instance menggunakan TLS pasca-kuantum hibrida.

   ```
   // Configure HTTP client
   SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
             .postQuantumTlsEnabled(true)
             .build();
   
   // Create the AWS KMS async client
   KmsAsyncClient kmsAsync = KmsAsyncClient.builder()
            .httpClient(awsCrtHttpClient)
            .build();
   ```

1. Uji AWS KMS panggilan Anda dengan TLS pasca-kuantum hibrida.

   Saat Anda memanggil operasi AWS KMS API pada AWS KMS klien yang dikonfigurasi, panggilan Anda ditransmisikan ke AWS KMS titik akhir menggunakan TLS pasca-kuantum hibrida. Untuk menguji konfigurasi Anda, panggil AWS KMS API, seperti`[ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)`.

   ```
   ListKeysReponse keys = kmsAsync.listKeys().get();
   ```

## Uji konfigurasi TLS pasca-kuantum hibrida Anda
<a name="pqtls-testing"></a>

Pertimbangkan untuk menjalankan pengujian berikut dengan suite cipher hybrid pada aplikasi Anda yang memanggil. AWS KMS
+ Lihat `tlsDetails` bagian dalam entri CloudTrail log untuk panggilan AWS KMS API yang dibuat oleh aplikasi Anda. `keyExchange`Bidang harus menyebutkan algoritma hybrid seperti`X25519MLKEM768`. Sebagai contoh, lihat [Dekripsi dengan kunci enkripsi simetris standar melalui koneksi TLS pasca-kuantum](ct-decrypt.md#ct-decrypt-default-pqtls).
+ Jalankan tolok ukur menggunakan TLS pasca-kuantum hibrida. Pertukaran kunci hibrida meningkatkan ukuran dan waktu pemrosesan beberapa pesan dalam jabat tangan TLS, tetapi dampak kinerja keseluruhan seharusnya tidak terlihat dalam banyak kasus.
+ Coba hubungkan dari lokasi yang berbeda. Bergantung pada jalur jaringan yang diambil permintaan Anda, Anda mungkin menemukan bahwa host perantara lama, proxy, atau firewall dengan inspeksi paket mendalam (DPI) memblokir permintaan tersebut. Ini mungkin hasil dari menggunakan grup pertukaran kunci baru di [ClientHello](https://datatracker.ietf.org/doc/html/rfc8446#section-4.1.2)bagian jabat tangan TLS, atau dari pesan pertukaran kunci yang lebih besar. Jika Anda mengalami masalah dalam menyelesaikan masalah ini, bekerjalah dengan tim keamanan atau administrator TI Anda untuk memperbarui konfigurasi yang relevan dan membuka blokir grup pertukaran kunci TLS yang baru. 

## Pelajari lebih lanjut tentang TLS pasca-kuantum di AWS KMS
<a name="pqtls-see-also"></a>

Untuk informasi lebih lanjut tentang penggunaan TLS pasca-kuantum hibrida di AWS KMS, lihat sumber daya berikut.
+ Untuk mempelajari tentang kriptografi pasca-kuantum di AWS, termasuk tautan ke posting blog dan makalah penelitian, lihat Kriptografi [Pasca-Kuantum](https://aws.amazon.com/security/post-quantum-cryptography/).
+ Untuk selengkapnyas2n-tls, lihat [Memperkenalkans2n-tls, Implementasi dan [Penggunaan s2n-tls](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide) TLS Open Source Baru](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/).
+ *Untuk informasi tentang Klien HTTP Runtime AWS Umum, lihat [Mengonfigurasi klien HTTP AWS berbasis CRT](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) di Panduan Pengembang.AWS SDK for Java 2.x *
+ Untuk informasi tentang proyek kriptografi pasca-kuantum di National Institute for Standards and Technology (NIST), lihat [Kriptografi Pasca Kuantum](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography).
+ [Untuk informasi tentang standardisasi kriptografi pasca-kuantum NIST, lihat Standardisasi Kriptografi Pasca-Kuantum.](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization)

# Connect ke AWS KMS melalui titik akhir VPC
<a name="kms-vpc-endpoint"></a>

Anda dapat terhubung langsung AWS KMS melalui titik akhir antarmuka pribadi di cloud pribadi virtual (VPC) Anda. Bila Anda menggunakan antarmuka VPC endpoint, komunikasi antara VPC Anda dan AWS KMS dilakukan sepenuhnya dalam jaringan. AWS 

AWS KMS mendukung titik akhir Amazon Virtual Private Cloud (Amazon VPC) yang didukung oleh. [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/) Setiap titik akhir VPC diwakili oleh satu atau lebih [Elastic Network Interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENIs) dengan alamat IP pribadi di subnet VPC Anda. 

Titik akhir VPC antarmuka menghubungkan VPC Anda secara langsung AWS KMS tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi. AWS Direct Connect Instans di VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi. AWS KMS

**Daerah**  
AWS KMS mendukung kebijakan titik akhir VPC dan titik akhir VPC di semua yang didukung. Wilayah AWS [AWS KMS](https://docs.aws.amazon.com/general/latest/gr/kms.html)

**Pertimbangan untuk titik akhir AWS KMS VPC**  
*Sebelum Anda menyiapkan titik akhir VPC antarmuka untuk AWS KMS, tinjau topik [properti dan batasan titik akhir Antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) di Panduan.AWS PrivateLink *  
AWS KMS dukungan untuk titik akhir VPC mencakup yang berikut ini.  
+ Anda dapat menggunakan titik akhir VPC untuk memanggil semua [operasi AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) dari VPC Anda.
+ [Anda dapat membuat titik akhir VPC antarmuka yang terhubung ke titik akhir AWS KMS wilayah atau titik akhir FIPS.AWS KMS](https://docs.aws.amazon.com/general/latest/gr/kms.html)
+ Anda dapat menggunakan AWS CloudTrail log untuk mengaudit penggunaan kunci KMS melalui titik akhir VPC. Lihat perinciannya di [AWS KMS Permintaan logging yang menggunakan titik akhir VPC](vpce-logging.md).

**Topics**
+ [Buat titik akhir VPC untuk AWS KMS](vpce-create-endpoint.md)
+ [Connect ke titik AWS KMS akhir VPC](vpce-connect.md)
+ [Gunakan titik akhir VPC untuk mengontrol akses ke sumber daya AWS KMS](vpce-policy-condition.md)
+ [AWS KMS Permintaan logging yang menggunakan titik akhir VPC](vpce-logging.md)

# Buat titik akhir VPC untuk AWS KMS
<a name="vpce-create-endpoint"></a>

Anda dapat membuat titik akhir VPC AWS KMS dengan menggunakan konsol VPC Amazon atau API VPC Amazon. Ikuti prosedur untuk [Membuat titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint) menggunakan salah satu nilai berikut.
+ Untuk membuat titik akhir VPC AWS KMS, gunakan nama layanan berikut: 

  ```
  com.amazonaws.region.kms
  ```

  Sebagai contoh, di Wilayah US West (Oregon) (`us-west-2`), nama layanan akan menjadi:

  ```
  com.amazonaws.us-west-2.kms
  ```
+ Untuk membuat titik akhir VPC yang terhubung ke titik akhir [AWS KMS FIPS, gunakan nama layanan](https://docs.aws.amazon.com/general/latest/gr/kms.html) berikut:

  ```
  com.amazonaws.region.kms-fips
  ```

  Sebagai contoh, di Wilayah US West (Oregon) (`us-west-2`), nama layanan akan menjadi:

  ```
  com.amazonaws.us-west-2.kms-fips
  ```

Untuk mempermudah penggunaan titik akhir VPC, Anda dapat mengaktifkan nama [DNS pribadi untuk](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) titik akhir VPC Anda. Jika Anda memilih opsi **Aktifkan Nama DNS, nama** host AWS KMS DNS standar akan diselesaikan ke titik akhir VPC Anda. Misalnya, `https://kms.us-west-2.amazonaws.com` akan menyelesaikan ke titik akhir VPC yang terhubung ke nama layanan. `com.amazonaws.us-west-2.kms`

Opsi ini mempermudah untuk menggunakan VPC endpoint. Itu AWS SDKs dan AWS CLI gunakan nama host AWS KMS DNS standar secara default, sehingga Anda tidak perlu menentukan URL titik akhir VPC dalam aplikasi dan perintah.

*Untuk informasi selengkapnya, lihat [Mengakses layanan melalui titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#access-service-though-endpoint) di Panduan.AWS PrivateLink *

# Connect ke titik AWS KMS akhir VPC
<a name="vpce-connect"></a>

Anda dapat terhubung AWS KMS melalui titik akhir VPC dengan menggunakan AWS SDK, file, atau. AWS CLI Alat AWS untuk PowerShell Untuk menentukan VPC endpoint, gunakan nama DNS-nya. 

Misalnya, perintah [kunci-daftar](https://docs.aws.amazon.com/cli/latest/reference/kms/list-keys.html) ini menggunakan parameter `endpoint-url` untuk menentukan VPC endpoint. Untuk menggunakan perintah seperti ini, ganti contoh ID VPC endpoint dengan yang ada di akun Anda.

```
$ aws kms list-keys --endpoint-url https://vpce-1234abcdf5678c90a-09p7654s-us-east-1a.ec2.us-east-1.vpce.amazonaws.com
```

**Izin yang diperlukan**  
Agar AWS KMS permintaan yang menggunakan titik akhir VPC berhasil, prinsipal memerlukan izin dari dua sumber:  
+ [Kebijakan kunci, kebijakan](key-policies.md) [IAM](iam-policies.md), atau [hibah](grants.md) harus memberikan izin utama untuk memanggil operasi pada sumber daya (kunci KMS atau alias).
+ Kebijakan VPC endpoint harus memberikan prinsipal izin untuk menggunakan titik akhir untuk membuat permintaan.
Misalnya, kebijakan kunci mungkin memberikan izin utama untuk memanggil [Dekripsi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) pada kunci KMS tertentu. Namun, kebijakan titik akhir VPC mungkin tidak mengizinkan prinsipal tersebut untuk memanggil `Decrypt` kunci KMS tersebut dengan menggunakan titik akhir.  
Atau kebijakan titik akhir VPC mungkin mengizinkan prinsipal menggunakan titik akhir untuk memanggil [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)kunci KMS tertentu. Tetapi jika prinsipal tidak memiliki izin tersebut dari kebijakan kunci, kebijakan IAM, atau hibah, permintaan gagal.  
Anda dapat membuat kebijakan VPC endpoint ketika Anda membuat titik akhir Anda, dan Anda dapat mengubah kebijakan VPC endpoint setiap saat. Gunakan konsol manajemen VPC, atau operasi atau. [CreateVpcEndpoint[ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html)](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpcEndpoint.html) Anda juga dapat membuat dan mengubah kebijakan titik akhir VPC dengan [menggunakan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) templat. AWS CloudFormation *Untuk bantuan menggunakan konsol manajemen VPC, lihat [Membuat titik akhir antarmuka dan Memodifikasi titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint) [antarmuka dalam Panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#modify-interface-endpoint).AWS PrivateLink *

**Nama host pribadi**  
Jika Anda mengaktifkan nama host privat ketika Anda membuat VPC endpoint Anda, Anda tidak perlu menentukan URL VPC endpoint di perintah CLI atau konfigurasi aplikasi. Nama host AWS KMS DNS standar diselesaikan ke titik akhir VPC Anda. SDKs Gunakan AWS CLI dan gunakan nama host ini secara default, sehingga Anda dapat mulai menggunakan titik akhir VPC untuk terhubung ke AWS KMS titik akhir regional tanpa mengubah apa pun di skrip dan aplikasi Anda.   
Untuk menggunakan nama host pribadi, `enableDnsSupport` atribut `enableDnsHostnames` dan VPC Anda harus disetel ke. `true` Untuk mengatur atribut ini, gunakan [ModifyVpcAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcAttribute.html)operasi. Untuk detailnya, lihat [Melihat dan memperbarui atribut DNS untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating) di Panduan Pengguna *Amazon VPC*.

# Gunakan titik akhir VPC untuk mengontrol akses ke sumber daya AWS KMS
<a name="vpce-policy-condition"></a>

Anda dapat mengontrol akses ke AWS KMS sumber daya dan operasi saat permintaan berasal dari VPC atau menggunakan titik akhir VPC. Untuk melakukannya, gunakan salah satu [kunci kondisi global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys) berikut dalam [kebijakan kunci](key-policies.md) atau [kebijakan IAM](iam-policies.md).
+ Gunakan kunci kondisi `aws:sourceVpce` untuk memberikan atau membatasi akses berdasarkan VPC endpoint.
+ Gunakan kunci kondisi `aws:sourceVpc` untuk memberikan atau membatasi akses berdasarkan VPC yang menjadi host endpoint privat.

**catatan**  
Berhati-hatilah saat membuat kebijakan kunci dan kebijakan IAM berdasarkan VPC endpoint Anda. Jika pernyataan kebijakan mengharuskan permintaan berasal dari titik akhir VPC atau VPC tertentu, permintaan dari AWS layanan terintegrasi yang menggunakan AWS KMS sumber daya atas nama Anda mungkin gagal. Untuk bantuan, lihat [Menggunakan kondisi titik akhir VPC dalam kebijakan dengan izin AWS KMS](conditions-aws.md#conditions-aws-vpce).  
Selain itu, kunci syarat `aws:sourceIP` tidak efektif bila permintaan berasal dari [Amazon VPC endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html). Untuk membatasi permintaan ke VPC endpoint, gunakan kunci kondisi `aws:sourceVpce` atau `aws:sourceVpc`. *Untuk informasi selengkapnya, lihat [Identitas dan manajemen akses untuk titik akhir VPC dan layanan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) di Panduan.AWS PrivateLink * 

Anda dapat menggunakan kunci kondisi global ini untuk mengontrol akses ke AWS KMS keys (kunci KMS), alias, dan operasi seperti [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)itu tidak bergantung pada sumber daya tertentu.

Misalnya, kebijakan kunci sampel berikut memungkinkan pengguna untuk melakukan beberapa operasi kriptografi dengan kunci KMS hanya ketika permintaan menggunakan titik akhir VPC yang ditentukan. Saat pengguna membuat permintaan AWS KMS, ID titik akhir VPC dalam permintaan akan dibandingkan dengan nilai kunci `aws:sourceVpce` kondisi dalam kebijakan. Jika tidak cocok, permintaan ditolak. 

Untuk menggunakan kebijakan seperti ini, ganti Akun AWS ID placeholder dan titik akhir VPC IDs dengan nilai yang valid untuk akun Anda.

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableIAMpolicies",
            "Effect": "Allow",
            "Principal": {"AWS":["111122223333"]},
            "Action": ["kms:*"],
            "Resource": "*"
        },
        {
            "Sid": "Restrict usage to my VPC endpoint",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                "aws:sourceVpce": "vpce-1234abcdf5678c90a"
                }
            }
        }

    ]
}
```

------

Anda juga dapat menggunakan tombol `aws:sourceVpc` kondisi untuk membatasi akses ke kunci KMS Anda berdasarkan VPC tempat titik akhir VPC berada. 

Kebijakan kunci sampel berikut memungkinkan perintah yang mengelola kunci KMS hanya ketika mereka berasal`vpc-12345678`. Selain itu, ini memungkinkan perintah yang menggunakan kunci KMS untuk operasi kriptografi hanya ketika mereka berasal. `vpc-2b2b2b2b` Anda mungkin menggunakan kebijakan seperti ini jika aplikasi berjalan dalam satu VPC, tetapi Anda menggunakan VPC terisolasi kedua untuk fungsi manajemen. 

Untuk menggunakan kebijakan seperti ini, ganti Akun AWS ID placeholder dan titik akhir VPC IDs dengan nilai yang valid untuk akun Anda.

------
#### [ JSON ]

****  

```
{
    "Id": "example-key-2",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAdministrativeActionsFromVPC",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
                "kms:Create*",
                "kms:Enable*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "vpc-12345678"
                }
            }
        },
        {
            "Sid": "AllowKeyUsageFromVPC2b2b2b2b",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "vpc-2b2b2b2b"
                }
            }
        },
        {
            "Sid": "AllowReadActionsEverywhere",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": [
                "kms:Describe*",
                "kms:List*",
                "kms:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# AWS KMS Permintaan logging yang menggunakan titik akhir VPC
<a name="vpce-logging"></a>

AWS CloudTrail mencatat semua operasi yang menggunakan titik akhir VPC. Saat permintaan untuk AWS KMS menggunakan titik akhir VPC, ID titik akhir VPC muncul di entri [AWS CloudTrail log](logging-using-cloudtrail.md) yang mencatat permintaan tersebut. Anda dapat menggunakan ID titik akhir untuk mengaudit penggunaan titik akhir AWS KMS VPC Anda.

Namun, CloudTrail log Anda tidak menyertakan operasi yang diminta oleh prinsipal di akun lain atau permintaan AWS KMS operasi pada kunci KMS dan alias di akun lain. Selain itu, untuk melindungi VPC Anda, permintaan yang ditolak oleh kebijakan titik akhir VPC, tetapi sebaliknya diizinkan, tidak dicatat. [AWS CloudTrail](logging-using-cloudtrail.md)

Misalnya, entri log contoh ini mencatat [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)permintaan yang menggunakan titik akhir VPC. Bidang `vpcEndpointId` muncul di akhir entri log.

```
{
  "eventVersion":"1.05",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "EX_PRINCIPAL_ID",
    "arn": "arn:aws:iam::111122223333:user/Alice",
    "accessKeyId": "EXAMPLE_KEY_ID",
    "accountId": "111122223333",
    "userName": "Alice"
  },
  "eventTime":"2018-01-16T05:46:57Z",
  "eventSource":"kms.amazonaws.com",
  "eventName":"GenerateDataKey",
  "awsRegion":"eu-west-1",
  "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",
  "requestParameters":{
    "keyId":"1234abcd-12ab-34cd-56ef-1234567890ab",
    "numberOfBytes":128
  },
  "responseElements":null,
  "requestID":"a9fff0bf-fa80-11e7-a13c-afcabff2f04c",
  "eventID":"77274901-88bc-4e3f-9bb6-acf1c16f6a7c",
  "readOnly":true,
  "resources":[{
    "ARN":"arn:aws:kms:eu-west-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "accountId":"111122223333",
    "type":"AWS::KMS::Key"
  }],
  "eventType":"AwsApiCall",
  "recipientAccountId":"111122223333",
  "vpcEndpointId": "vpce-1234abcdf5678c90a"
}
```

# Dukungan titik akhir tumpukan ganda
<a name="ipv6-kms"></a>

AWS KMS menyediakan titik akhir publik dual-stack yang mendukung keduanya IPv4 dan klien. IPv6 Titik akhir dual-stack memungkinkan klien untuk berkomunikasi dengan AWS KMS menggunakan salah satu atau IPv4 alamat. IPv6 Untuk informasi lebih lanjut tentang AWS KMS titik akhir, lihat [AWS Key Management Service titik akhir dan](https://docs.aws.amazon.com//general/latest/gr/kms.html) kuota.

Titik akhir publik AWS KMS dual-stack di `https://kms.your-region.api.aws` mendukung keduanya IPv4 dan klien. IPv6 AWS KMS juga dapat diakses secara pribadi melalui IPv4 dan IPv6 dari virtual private cloud (VPC) Anda menggunakan. AWS PrivateLink Untuk informasi selengkapnya tentang membuat titik akhir VPC antarmuka pribadi, lihat. AWS KMS[Connect ke AWS KMS melalui titik akhir VPC](kms-vpc-endpoint.md)

Untuk informasi selengkapnya tentang IPv6 pengalamatan untuk Anda VPCs, lihat [Cara kerja Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html#vpc-ip-addressing) di Panduan Pengguna *Amazon Virtual Private Cloud*. Untuk informasi selengkapnya tentang cara mengonfigurasi VPC Anda untuk mode dual-stack, lihat [alamat IP untuk subnet Anda VPCs dan subnet di Panduan Pengguna *Amazon* Virtual](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#vpc-ipv6) Private Cloud.

## Fitur tidak tersedia di atas IPv6
<a name="kms-ipv6-limitations"></a>

AWS KMS tidak dapat berkomunikasi IPv6 dengan toko AWS CloudHSM kunci atau toko kunci eksternal. Batasan ini tidak mencegah Anda menelepon AWS KMS APIs IPv6.