Manajemen Kunci Amazon SQS - Amazon Simple Queue Service

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

Manajemen Kunci Amazon SQS

Amazon SQS terintegrasi dengan AWS Key Management Service (KMS) untuk mengelola kunci KMS untuk enkripsi sisi server (SSE). Lihat Enkripsi saat istirahat di Amazon SQS untuk informasi SSE dan definisi manajemen kunci. Amazon SQS menggunakan kunci KMS untuk memvalidasi dan mengamankan kunci data yang mengenkripsi dan mendekripsi pesan. Bagian berikut memberikan informasi tentang bekerja dengan kunci KMS dan kunci data di layanan Amazon SQS.

Mengonfigurasi izin AWS KMS

Setiap kunci KMS harus memiliki kebijakan kunci. Perhatikan bahwa Anda tidak dapat mengubah kebijakan kunci kunci KMS AWS terkelola untuk Amazon SQS. Kebijakan untuk kunci KMS ini mencakup izin untuk semua prinsipal di akun (yang diizinkan untuk menggunakan Amazon SQS) untuk menggunakan antrian terenkripsi.

Untuk kunci KMS yang dikelola pelanggan, Anda harus mengonfigurasi kebijakan kunci untuk menambahkan izin bagi setiap produsen dan konsumen antrian. Untuk melakukan ini, Anda memberi nama produsen dan konsumen sebagai pengguna dalam kebijakan kunci KMS. Untuk informasi selengkapnya tentang AWS KMS izin, lihat referensi AWS KMS sumber daya dan operasi atau izin AWS KMS API di Panduan AWS Key Management Service Pengembang.

Atau, Anda dapat menentukan izin yang diperlukan dalam kebijakan IAM yang ditetapkan ke prinsipal yang menghasilkan dan menggunakan pesan terenkripsi. Untuk informasi selengkapnya, lihat Menggunakan Kebijakan IAM dengan AWS KMS Panduan AWS Key Management Service Pengembang.

catatan

Meskipun Anda dapat mengonfigurasi izin global untuk mengirim dan menerima dari Amazon SQS AWS KMS , memerlukan penamaan ARN lengkap kunci KMS secara eksplisit di wilayah tertentu di bagian kebijakan IAM. Resource

Konfigurasikan izin KMS untuk layanan AWS

Beberapa AWS layanan bertindak sebagai sumber acara yang dapat mengirim acara ke antrian Amazon SQS. Agar sumber peristiwa ini dapat bekerja dengan antrian terenkripsi, Anda harus membuat kunci KMS yang dikelola pelanggan dan menambahkan izin dalam kebijakan kunci agar layanan dapat menggunakan metode API yang diperlukan. AWS KMS Lakukan langkah-langkah berikut untuk mengonfigurasi izin.

Awas

Saat mengubah kunci KMS untuk mengenkripsi pesan Amazon SQS Anda, ketahuilah bahwa pesan yang ada yang dienkripsi dengan kunci KMS lama akan tetap dienkripsi dengan kunci itu. Untuk mendekripsi pesan ini, Anda harus menyimpan kunci KMS lama dan memastikan bahwa kebijakan utamanya memberikan Amazon SQS izin untuk dan. kms:Decrypt kms:GenerateDataKey Setelah memperbarui ke kunci KMS baru untuk mengenkripsi pesan baru, pastikan semua pesan yang ada dienkripsi dengan kunci KMS lama diproses dan dihapus dari antrian sebelum menghapus atau menonaktifkan kunci KMS lama.

  1. Buat kunci KMS yang dikelola pelanggan. Untuk informasi selengkapnya, lihat Membuat Kunci di Panduan Developer AWS Key Management Service .

  2. Untuk mengizinkan sumber peristiwa AWS layanan menggunakan metode kms:GenerateDataKey dan kms:Decrypt API, tambahkan pernyataan berikut ke kebijakan kunci KMS.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }] }

    Ganti “layanan” pada contoh di atas dengan nama Layanan dari sumber acara. Sumber acara termasuk layanan berikut.

    Sumber peristiwa Nama layanan
    CloudWatch Acara Amazon events.amazonaws.com
    Pemberitahuan acara Amazon S3 s3.amazonaws.com
    Langganan topik Amazon SNS sns.amazonaws.com
  3. Konfigurasikan antrian SSE yang ada menggunakan ARN kunci KMS Anda.

  4. Berikan ARN dari antrian terenkripsi ke sumber acara.

Konfigurasikan AWS KMS izin untuk produsen

Ketika periode penggunaan kembali kunci data berakhir, panggilan berikutnya produsen ke SendMessage atau SendMessageBatch juga memicu panggilan ke dan. kms:GenerateDataKey kms:Decrypt Panggilan kms:Decrypt untuk memverifikasi integritas kunci data baru sebelum menggunakannya. Oleh karena itu, produsen harus memiliki kms:GenerateDataKey dan kms:Decrypt izin untuk kunci KMS.

Tambahkan pernyataan berikut ke kebijakan IAM produsen. Ingatlah untuk menggunakan nilai ARN yang benar untuk sumber daya kunci dan sumber daya antrian.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Konfigurasikan AWS KMS izin untuk konsumen

Ketika periode penggunaan kembali kunci data berakhir, panggilan konsumen berikutnya ReceiveMessage juga memicu panggilan kekms:Decrypt, untuk memverifikasi integritas kunci data baru sebelum menggunakannya. Oleh karena itu, konsumen harus memiliki kms:Decrypt izin untuk kunci KMS apa pun yang digunakan untuk mengenkripsi pesan dalam antrian yang ditentukan. Jika antrian bertindak sebagai antrian huruf mati, konsumen juga harus memiliki kms:Decrypt izin untuk setiap kunci KMS yang digunakan untuk mengenkripsi pesan dalam antrian sumber. Tambahkan pernyataan berikut ke kebijakan IAM konsumen. Ingatlah untuk menggunakan nilai ARN yang benar untuk sumber daya kunci dan sumber daya antrian.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Konfigurasikan AWS KMS izin dengan perlindungan wakil yang membingungkan

Ketika prinsipal dalam pernyataan kebijakan kunci adalah prinsipal AWS layanan, Anda dapat menggunakan aws:SourceArnatau kunci kondisi aws:SourceAccountglobal untuk melindungi dari skenario wakil yang membingungkan. Untuk menggunakan kunci kondisi ini, tetapkan nilai ke Amazon Resource Name (ARN) dari sumber daya yang sedang dienkripsi. Jika Anda tidak tahu ARN sumber daya, gunakan aws:SourceAccount sebagai gantinya.

Dalam kebijakan kunci KMS ini, sumber daya tertentu dari layanan yang dimiliki oleh akun 111122223333 diizinkan untuk memanggil KMS Decrypt dan GenerateDataKey tindakan, yang terjadi selama penggunaan SSE Amazon SQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Saat menggunakan antrian Amazon SQS yang diaktifkan SSE, layanan berikut mendukung: aws:SourceArn

  • Amazon SNS

  • Amazon S3

  • CloudWatch Acara

  • AWS Lambda

  • CodeBuild

  • Amazon Connect Customer Profiles

  • AWS Auto Scaling

  • Amazon Chime

Memahami periode penggunaan kembali kunci data

Periode penggunaan kembali kunci data menentukan durasi maksimum Amazon SQS untuk menggunakan kembali kunci data yang sama. Ketika periode penggunaan kembali kunci data berakhir, Amazon SQS menghasilkan kunci data baru. Perhatikan pedoman berikut tentang periode penggunaan kembali.

  • Periode penggunaan kembali yang lebih pendek memberikan keamanan yang lebih baik tetapi menghasilkan lebih banyak panggilan ke AWS KMS, yang mungkin dikenakan biaya di luar Tingkat Gratis.

  • Meskipun kunci data di-cache secara terpisah untuk enkripsi dan dekripsi, periode penggunaan kembali berlaku untuk kedua salinan kunci data.

  • Ketika periode penggunaan kembali kunci data berakhir, panggilan berikutnya ke SendMessage atau SendMessageBatch biasanya memicu panggilan ke AWS KMS GenerateDataKey metode untuk mendapatkan kunci data baru. Juga, panggilan berikutnya ke SendMessage dan masing-masing ReceiveMessage akan memicu panggilan AWS KMS Decrypt untuk memverifikasi integritas kunci data sebelum menggunakannya.

  • Prinsipal (Akun AWS atau pengguna) tidak berbagi kunci data (pesan yang dikirim oleh prinsipal unik selalu mendapatkan kunci data unik). Oleh karena itu, volume panggilan ke AWS KMS adalah kelipatan dari jumlah prinsipal unik yang digunakan selama periode penggunaan kembali kunci data.

Memperkirakan biaya AWS KMS

Untuk memprediksi biaya dan lebih memahami AWS tagihan Anda, Anda mungkin ingin tahu seberapa sering Amazon SQS menggunakan kunci KMS Anda.

catatan

Meskipun rumus berikut dapat memberi Anda gambaran yang sangat baik tentang biaya yang diharapkan, biaya sebenarnya mungkin lebih tinggi karena sifat terdistribusi Amazon SQS.

Untuk menghitung jumlah permintaan API (R) per antrian, gunakan rumus berikut:

R = (B / D) * (2 * P + C)

B adalah periode penagihan (dalam detik).

Dadalah periode penggunaan kembali kunci data (dalam detik).

Padalah jumlah prinsipal produksi yang mengirim ke antrian Amazon SQS.

Cadalah jumlah prinsipal konsumsi yang menerima dari antrian Amazon SQS.

penting

Secara umum, prinsipal produksi dikenakan biaya dua kali lipat biaya konsumsi prinsipal. Untuk informasi selengkapnya, lihat Memahami periode penggunaan kembali kunci data.

Jika produsen dan konsumen memiliki pengguna yang berbeda, biayanya meningkat.

Berikut ini adalah contoh perhitungan. Untuk informasi harga sebenranya, lihat Harga AWS Key Management Service.

Contoh 1: Menghitung jumlah panggilan AWS KMS API untuk 2 prinsipal dan 1 antrian

Contoh ini mengasumsikan sebagai berikut:

  • Periode penagihan adalah 1-31 Januari (2.678.400 detik).

  • Periode penggunaan kembali kunci data diatur ke 5 menit (300 detik).

  • Ada 1 antrian.

  • Ada 1 pokok produksi dan 1 pokok konsumsi.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

Contoh 2: Menghitung jumlah panggilan AWS KMS API untuk beberapa produsen dan konsumen dan 2 antrian

Contoh ini mengasumsikan sebagai berikut:

  • Periode penagihan adalah 1-28 Februari (2.419.200 detik).

  • Periode penggunaan kembali kunci data diatur ke 24 jam (86.400 detik).

  • Ada 2 antrian.

  • Antrian pertama memiliki 3 prinsip produksi dan 1 pokok konsumsi.

  • Antrian kedua memiliki 5 prinsip produksi dan 2 prinsip konsumsi.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS kesalahan

Saat Anda bekerja dengan Amazon SQS dan AWS KMS, Anda mungkin mengalami kesalahan. Referensi berikut menjelaskan kesalahan dan kemungkinan solusi pemecahan masalah.