Manajemen Amazon SQS Key - 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 Amazon SQS Key

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

Mengonfigurasi izin AWS KMS

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

Untuk KMS kunci terkelola 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 KMS utama. Untuk informasi selengkapnya tentang AWS KMS izin, lihat referensi AWS KMS sumber daya dan operasi atau AWS KMS API izin di Panduan AWS Key Management Service Pengembang.

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

catatan

Meskipun Anda dapat mengonfigurasi izin global untuk mengirim dan menerima dari AmazonSQS, AWS KMS perlu secara eksplisit memberi nama penuh ARN KMS kunci di wilayah tertentu di Resource bagian kebijakan. IAM

Konfigurasikan KMS izin untuk layanan AWS

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

Awas

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

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

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

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "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 SNS topik Amazon sns.amazonaws.com
  3. Konfigurasikan SSE antrian yang ARN ada menggunakan KMS kunci Anda.

  4. Berikan antrian terenkripsi ke sumber acara. ARN

Konfigurasikan AWS KMS izin untuk produsen

Ketika periode penggunaan kembali kunci data berakhir, panggilan berikutnya produsen ke SendMessage atau SendMessageBatch juga memicu panggilan ke. kms:GenerateDataKey Produser harus memiliki kms:GenerateDataKey izin untuk KMS kunci tersebut.

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "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 KMS kunci 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 KMS kunci apa pun yang digunakan untuk mengenkripsi pesan dalam antrian sumber. Tambahkan pernyataan berikut ke IAM kebijakan konsumen. Ingatlah untuk menggunakan ARN nilai 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 sumber dayanya, gunakan aws:SourceAccount sebagai gantinya. ARN

Dalam kebijakan KMS utama ini, sumber daya tertentu dari layanan yang dimiliki oleh akun 111122223333 diizinkan KMS untuk dipanggil Decrypt dan GenerateDataKey tindakan, yang terjadi selama SSE penggunaan AmazonSQS.

{ "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 SQS antrian Amazon yang SSE diaktifkan, 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 untuk dekripsi, periode penggunaan kembali berlaku untuk kedua salinan kunci data.

  • Saat ini, hanya KMS:GenerateDataKey izin yang digunakan selama SQS:SendMessage dan SQS:SendMessageBatch operasi. kms:DecryptIzin hanya digunakan selama SQS:ReceiveMessage operasi.

  • 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 KMS kunci Anda.

catatan

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

Untuk menghitung jumlah API permintaan (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 AWS KMS API panggilan 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 AWS KMS API panggilan 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.