Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kunci terkelola pelanggan untuk AWS Security Agent
Secara default, Agen AWS Keamanan mengenkripsi semua data saat istirahat menggunakan kunci enkripsi AWS-managed. Anda dapat secara opsional menggunakan kunci yang dikelola pelanggan dari AWS Key Management Service (AWS KMS) untuk mengenkripsi data Anda, memberi Anda kontrol penuh atas kunci enkripsi yang melindungi sumber daya Anda.
AWS Agen Keamanan mendukung kunci terkelola pelanggan tingkat sumber daya. Saat Anda membuat sumber daya tingkat atas seperti Ruang Agen atau integrasi, Anda dapat menentukan kunci KMS untuk mengenkripsi semua data milik sumber daya tersebut dan subsumber dayanya. Misalnya, menentukan kunci yang dikelola pelanggan saat membuat Ruang Agen mengenkripsi semua data yang terkait dengan Ruang Agen tersebut, termasuk konfigurasi Ruang Agen, konfigurasi pengujian penetrasi, pekerjaan, dan detail eksekusi, temuan keamanan, titik akhir yang ditemukan, dan tangkapan layar. Anda juga dapat menyediakan AWS sumber daya yang sudah dienkripsi dengan kunci yang dikelola pelanggan Anda sendiri, seperti bucket S3, grup log CloudWatch log, atau rahasia Secrets Manager. Untuk izin KMS yang diperlukan, lihat. Izin KMS yang diperlukan
Cara kerja kunci yang dikelola pelanggan
AWS Agen Keamanan menggunakan keyring Hierarki AWS KMS untuk mengenkripsi data Anda dengan kunci yang dikelola pelanggan. Saat Anda menentukan kunci KMS selama pembuatan sumber daya, layanan akan membuat kunci cabang yang dilindungi oleh kunci KMS Anda dan menyimpannya di toko DynamoDB-based kunci Amazon. Untuk setiap operasi enkripsi, keyring Hierarkis memperoleh kunci pembungkus unik dari kunci cabang aktif, yang mengenkripsi kunci enkripsi data unik untuk setiap permintaan.
Gantungan kunci Hierarkis memberikan manfaat berikut:
-
Per-resource lingkup enkripsi — Setiap sumber daya tingkat atas memiliki kunci cabangnya sendiri, sehingga data untuk sumber daya yang berbeda dienkripsi di bawah kunci terpisah.
-
Rotasi kunci otomatis - Agen AWS Keamanan secara berkala memutar kunci cabang. Setelah rotasi, data baru dienkripsi dengan versi kunci cabang baru, sementara versi yang lebih lama dipertahankan untuk mendekripsi data yang dienkripsi sebelumnya.
Konteks enkripsi
AWS Agen Keamanan menggunakan konteks enkripsi di semua operasi kriptografi dengan kunci KMS Anda. Konteks enkripsi adalah sekumpulan pasangan nilai kunci non-rahasia yang menyediakan data otentikasi tambahan untuk operasi enkripsi.
Kunci konteks enkripsi mengikuti formataws:securityagent:_<resource-type>_, di
<resource-type>
mana jenis sumber daya yang dienkripsi (misalnya, agent-space atauintegration). Nilainya adalah Nama Sumber Daya Amazon (ARN) dari sumber daya.
catatan
Untuk integrasi, kunci konteks enkripsi menyertakan aws-crypto-ec: awalan, menghasilkan format. aws-crypto-ec:aws:securityagent:integration
Anda dapat menggunakan konteks enkripsi untuk meringkas kebijakan kunci KMS Anda ke jenis sumber daya tertentu. Untuk informasi selengkapnya, lihat Izin KMS yang diperlukan.
Enkripsi default
Saat Anda membuat sumber daya tanpa menentukan kunci yang dikelola pelanggan, Agen AWS Keamanan mengenkripsi sumber daya menggunakan kunci enkripsi AWS terkelola yang disediakan oleh layanan penyimpanan yang mendasarinya (Amazon DynamoDB dan Amazon S3). Tidak diperlukan konfigurasi tambahan untuk enkripsi default.
Kunci KMS default untuk aplikasi
Anda dapat mengatur kunci KMS default di tingkat aplikasi. Ketika kunci KMS default dikonfigurasi, Agen AWS Keamanan menggunakannya sebagai fallback untuk Ruang Agen baru dan integrasi ketika Anda tidak secara eksplisit menentukan kunci KMS selama pembuatan sumber daya.
Untuk mengatur kunci KMS default, tentukan defaultKmsKeyId parameter saat membuat atau memperbarui aplikasi Anda menggunakan AWS CLI atau SDK. Konsol meminta Anda untuk menentukan kunci KMS default selama pengaturan aplikasi.
Saat Anda secara eksplisit menentukan kunci KMS selama pembuatan sumber daya, kunci tersebut lebih diutamakan daripada default tingkat aplikasi.
Prasyarat
Sebelum Anda mengonfigurasi kunci terkelola pelanggan, lengkapi prasyarat berikut:
-
Buat kunci KMS enkripsi simetris di AWS KMS. Kuncinya harus memenuhi persyaratan berikut:
-
Jenis kunci: Simetris
-
Penggunaan kunci: Enkripsi dan dekripsi
-
Spesifikasi kunci:
SYMMETRIC_DEFAULT -
Status kunci: Diaktifkan
Untuk petunjuknya, lihat Membuat AWS kunci di Panduan Pengembang Layanan Manajemen Kunci.
-
-
Konfigurasikan kebijakan kunci KMS dan kebijakan IAM untuk memberikan izin yang diperlukan kepada Agen AWS Keamanan. Lihat perinciannya di Izin KMS yang diperlukan.
Izin KMS yang diperlukan
AWS Agen Keamanan memerlukan izin KMS dalam dua skenario:
-
Mengenkripsi data dalam Agen AWS Keamanan — Saat Anda menentukan kunci yang dikelola pelanggan untuk Ruang Agen atau integrasi, layanan memerlukan izin untuk menggunakan kunci tersebut untuk operasi kriptografi pada data Anda.
-
Menggunakan CMK-encrypted AWS sumber daya — Saat Anda menyediakan AWS sumber daya yang dienkripsi dengan kunci yang dikelola pelanggan (seperti bucket S3, grup log CloudWatch log, atau rahasia Secrets Manager), layanan memerlukan izin untuk menggunakan kunci tersebut untuk mengakses sumber daya terenkripsi.
AWS Agen Keamanan mengakses kunci KMS Anda menggunakan identitas yang berbeda tergantung pada operasi:
-
AWS Operasi Konsol Manajemen — Saat administrator membuat atau mengelola sumber daya di Konsol AWS Manajemen (misalnya, membuat Ruang Agen atau memperbarui aplikasi), layanan menggunakan peran administrator untuk memanggil AWS KMS.
-
Operasi aplikasi web — Ketika pengguna IAM Identity Center mengakses data melalui aplikasi web Agen AWS Keamanan (misalnya, melihat hasil tes penetrasi atau memulai tes penetrasi), layanan menggunakan peran aplikasi yang dibuat selama penyiapan Agen AWS Keamanan untuk memanggil AWS KMS.
-
Mengakses sumber daya yang disediakan pelanggan — Saat layanan mengakses sumber AWS daya yang disediakan pelanggan selama pengujian penetrasi (seperti bucket S3, CloudWatch grup log log, dan rahasia Secrets Manager), layanan ini menggunakan peran layanan pengujian penetrasi untuk memanggil KMS. AWS
-
Alur kerja asinkron — Untuk operasi latar belakang yang berjalan di luar sesi pengguna (misalnya, eksekusi pengujian penetrasi, pemrosesan peninjauan kode, dan rotasi kunci cabang), layanan menggunakan prinsipal layanannya sendiri (
securityagent.amazonaws.com) untuk memanggil AWS KMS atas nama Anda.
Bagian berikut menjelaskan izin yang diperlukan untuk setiap identitas.
Kebijakan kunci
Kebijakan kunci KMS Anda harus memberikan izin Agen AWS Keamanan untuk menggunakan kunci untuk operasi kriptografi. Pernyataan kebijakan kunci yang diperlukan bergantung pada jenis sumber daya yang Anda rencanakan untuk dienkripsi dan CMK-encrypted AWS sumber daya yang Anda berikan ke layanan.
Kebijakan utama untuk Agen Spaces
Kebijakan utama berikut memberi Agen AWS Keamanan izin yang diperlukan untuk mengenkripsi dan mendekripsi data Ruang Agen, termasuk hasil pengujian penetrasi dan tangkapan layar.
Ganti nilai placeholder berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
MyRole— Peran IAM yang Anda gunakan untuk mengelola Agen AWS Keamanan di konsol -
MyApplicationRole— Peran aplikasi yang dibuat selama penyiapan Agen AWS Keamanan -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidationForApplicationAndAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowAsynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowAsynchronousDataAccessForCodeRemediation", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } ] }
penting
Untuk memutar kunci cabang, kebijakan kunci KMS Anda harus memberikan kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTo, dan kms:ReEncryptFrom izin ke prinsipal layanan Agen AWS Keamanan (securityagent.amazonaws.com), atau rotasi kunci cabang akan gagal. Untuk informasi selengkapnya tentang izin yang diperlukan, lihat Memutar kunci cabang.
Kebijakan utama untuk integrasi
Kebijakan utama berikut memberi Agen AWS Keamanan izin yang diperlukan untuk mengenkripsi dan mendekripsi data integrasi, termasuk temuan tinjauan kode.
Ganti nilai placeholder berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
MyRole— Peran IAM yang Anda gunakan untuk mengelola Agen AWS Keamanan di konsol -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyAccessValidationForIntegrations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyMetadataValidationForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowAsynchronousDataAccessForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" } } } ] }
catatan
Anda dapat menggabungkan pernyataan kebijakan kunci paket persyaratan Agen, integrasi, dan paket persyaratan keamanan ke dalam kebijakan kunci tunggal jika Anda ingin menggunakan kunci KMS yang sama untuk beberapa jenis sumber daya.
Kebijakan utama untuk paket persyaratan keamanan
Kebijakan utama berikut memberi Agen AWS Keamanan izin yang diperlukan untuk mengenkripsi dan mendekripsi data paket persyaratan keamanan. Paket persyaratan keamanan tidak menggunakan peran aplikasi web. Kebijakan ini menggunakan dua jalur akses:
-
Jalur sinkron — Saat Anda memanggil API, layanan menggunakan kredensi yang diteruskan untuk memanggil AWS KMS atas nama Anda (melalui kondisi).
kms:ViaService -
Jalur asinkron — Untuk operasi asinkron di mana paket dapat digunakan, layanan menggunakan prinsipal layanannya sendiri untuk memanggil KMS secara langsung. AWS
Ganti nilai berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
MyRole— Peran IAM yang Anda gunakan untuk menjalankan operasi paket persyaratan keamanan -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForSecurityPacks", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } }, { "Sid": "AllowAsynchronousDataAccessForSecurityPacks", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } } ] }
Kebijakan tersebut berisi tiga pernyataan:
-
AllowKeyMetadataValidation— Memberikan
kms:DescribeKeyagar Agen AWS Keamanan dapat memvalidasi bahwa kunci yang dikelola pelanggan Anda ada, diaktifkan, dan menggunakan enkripsi simetris saat Anda menentukan CMK selama pembuatan sumber daya. Menggunakankms:ViaServicekondisi untuk memastikan panggilan berasal melalui layanan. -
AllowUseOfHierarchicalKeyringForSecurityPacks— Hibah
kms:GenerateDataKeyWithoutPlaintext(buat kunci cabang baru),kms:ReEncryptTodankms:ReEncryptFrom(putar kunci cabang yang ada), dankms:Decrypt(ambil kunci cabang yang ada) untuk operasi keyring hierarkis. Operasi ini menggunakan kredensil yang diteruskan melalui jalur sinkron dan dicakup ke sumber daya paket persyaratan keamanan dengan kondisi konteks enkripsi. -
AllowAsynchronousDataAccessForSecurityPacks— Memberikan
kms:GenerateDataKeyWithoutPlaintext,,kms:Decryptkms:ReEncryptTo, dankms:ReEncryptFromkepada prinsipal layanan Agen AWS Keamanan untuk operasi asinkron ketika tidak ada kredensyal pemanggil yang tersedia.
Berbeda dengan kebijakan kunci Agent Spaces, kebijakan paket persyaratan keamanan tidak menyertakan prinsipal peran aplikasi web. Paket persyaratan keamanan diakses melalui Konsol AWS Manajemen menggunakan peran administrator Anda, bukan melalui aplikasi web Agen AWS Keamanan. Semua operasi sinkron menggunakan peran pemanggil tunggal (viakms:ViaService).
catatan
Jika Anda menggunakan kunci KMS yang sama untuk Ruang Agen dan paket persyaratan keamanan, Anda dapat menggabungkan pernyataan kebijakan utama dari kedua bagian ke dalam satu kebijakan kunci.
Kebijakan utama untuk CMK-encrypted AWS sumber daya
Jika Anda menyediakan AWS sumber daya yang dienkripsi dengan kunci terkelola pelanggan ke Agen AWS Keamanan, Anda harus memperbarui kebijakan kunci pada setiap kunci KMS sumber daya untuk memberikan izin yang diperlukan. Ini berlaku untuk sumber daya berikut:
-
Bucket S3 — Jika Anda menyediakan sumber belajar dari bucket S3 yang dienkripsi dengan kunci terkelola pelanggan (SSE-KMS), kebijakan kunci harus mengizinkan peran layanan pengujian penetrasi untuk mendekripsi objek.
-
Rahasia Secrets Manager — Jika kredensyal pengujian penetrasi Anda disimpan dalam rahasia Secrets Manager yang dienkripsi dengan kunci yang dikelola pelanggan, kebijakan kunci harus mengizinkan peran layanan pengujian penetrasi untuk mendekripsi rahasia tersebut. Jika aplikasi web membuat rahasia atas nama Anda, kebijakan kunci juga harus memungkinkan peran aplikasi untuk mengenkripsi rahasia tersebut.
-
CloudWatch Grup log log - Jika grup CloudWatch log Log yang digunakan untuk menyimpan log eksekusi uji penetrasi dienkripsi dengan kunci yang dikelola pelanggan, kebijakan kunci harus mengizinkan CloudWatch Log untuk memvalidasi kunci KMS melalui peran layanan dan memungkinkan prinsipal layanan CloudWatch Log untuk melakukan operasi kriptografi.
penting
AWS Agen Keamanan juga dapat membuat grup CloudWatch log Log dan rahasia Secrets Manager atas nama Anda. Saat mengonfigurasi kebijakan kunci KMS Anda, sertakan juga pernyataan terkait untuk sumber daya yang dibuat layanan ini.
Pernyataan kebijakan utama berikut memberikan izin yang diperlukan untuk CMK-encrypted sumber daya. Sertakan hanya pernyataan yang berlaku untuk konfigurasi Anda. Jika sumber daya menggunakan kunci KMS yang sama yang Anda tentukan untuk Ruang Agen Anda, tambahkan pernyataan ini ke kebijakan kunci tersebut. Jika sumber daya menggunakan kunci KMS yang berbeda, tambahkan pernyataan ini ke kebijakan kunci tersebut.
Ganti nilai placeholder berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
MyApplicationRole— Peran aplikasi yang dibuat selama penyiapan Agen AWS Keamanan -
MyPenTestServiceRole— Peran layanan uji penetrasi -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } }, { "Sid": "AllowKmsKeyDecryptionForS3Objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsKeyDecryptionForSecretsManagerSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } }, { "Sid": "AllowKmsKeyAccessForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:YOUR-LOG-GROUP-NAME*" } } } ] }
catatan
-
AllowKmsKeyDecryptionForS3ObjectsPernyataan ini diperlukan hanya jika Anda menyediakan sumber belajar dari bucket S3 yang dienkripsi dengan kunci yang dikelola pelanggan. Untuk informasi selengkapnya tentang mengonfigurasi SSE-KMS S3, lihat Melindungi data dengan. SSE-KMS -
AllowKmsKeyDecryptionForSecretsManagerSecretsPernyataan ini diperlukan hanya jika kredenal pengujian penetrasi Anda disimpan dalam rahasia Secrets Manager yang dienkripsi dengan kunci yang dikelola pelanggan. Peran layanan membutuhkan akses untuk mendekripsi rahasia selama pengujian penetrasi. Untuk informasi selengkapnya tentang enkripsi rahasia, lihat Enkripsi dan dekripsi rahasia di Secrets Manager. -
AllowKmsKeyValidationForCloudWatchLogsLogGroupsPernyataan memberikan peran layanankms:DescribeKeysehingga CloudWatch Log dapat memvalidasi kunci KMS melalui peran layanan saat mengaitkannya dengan grup log. -
AllowKmsKeyAccessForCreatingSecretsPernyataan ini diperlukan jika aplikasi web membuat rahasia Secrets Manager atas nama Anda menggunakan kunci yang dikelola pelanggan. Peran aplikasikms:Decryptperlukms:GenerateDataKeydan mengenkripsi rahasia dengan kunci KMS Anda. -
AllowKmsKeyAccessForCloudWatchLogsLogGroupsPernyataan tersebut memberikan prinsip layanan CloudWatch Logs (logs.us-east-1.amazonaws.com) izin yang diperlukan untuk mengenkripsi dan mendekripsi data log. Pernyataan ini juga diperlukan jika Agen AWS Keamanan membuat grup log atas nama Anda saat Anda tidak menyediakan grup yang sudah ada. Untuk informasi selengkapnya, lihat Mengenkripsi data log di CloudWatch Log menggunakan AWS KMS. -
Jika beberapa sumber daya berbagi kunci KMS yang sama, Anda dapat menggabungkan pernyataan ke dalam satu kebijakan kunci.
Peran administrator
Kebijakan IAM tambahan tidak diperlukan untuk peran administrator (peran IAM yang Anda gunakan untuk mengelola Agen AWS Keamanan di konsol).
Peran aplikasi
Selain kebijakan kunci KMS, lampirkan kebijakan IAM berikut ke peran aplikasi yang ditentukan selama penyiapan Agen AWS Keamanan. Kebijakan ini memberikan izin peran untuk menggunakan kunci terkelola pelanggan Anda untuk mengenkripsi dan mendekripsi data Ruang Agen dan membuat rahasia di Secrets Manager. AWS
Ganti nilai placeholder berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan -
ARN kunci KMS di
Resource— ARN kunci KMS Anda
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333", "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } } ] }
catatan
Peran aplikasi adalah peran IAM yang Anda tentukan atau yang dibuat konsol selama penyiapan Agen AWS Keamanan. Aplikasi web mengasumsikan peran ini untuk mengambil log eksekusi uji penetrasi dan membuat rahasia Secrets Manager atas nama Anda.
-
AllowKmsKeyAccessForCreatingSecretsPernyataan ini diperlukan jika Anda mengonfigurasi sumber daya otentikasi untuk pengujian penetrasi dan memilih untuk memasukkan kredensyal secara langsung alih-alih menentukan rahasia yang ada. Aplikasi web membuat rahasia atas nama Anda, dan peran aplikasi memerlukan izin dalam pernyataan ini untuk mengenkripsi rahasia dengan kunci terkelola pelanggan yang ditentukan untuk Ruang Agen Anda. PerbaruiResourceARN dalam pernyataan ini agar sesuai dengan kunci KMS yang digunakan untuk Ruang Agen Anda.
Peran layanan
Selama pengujian penetrasi, Agen AWS Keamanan mengasumsikan peran layanan uji penetrasi untuk mengakses AWS sumber daya Anda. Jika salah satu sumber daya ini dienkripsi dengan kunci yang dikelola pelanggan, Anda harus memberikan izin peran layanan untuk menggunakan kunci KMS yang sesuai. Ini berlaku untuk sumber daya berikut:
-
Bucket S3 — Jika Anda menyediakan sumber daya pembelajaran (seperti dokumen API, model ancaman, atau kode sumber) dari bucket S3 yang dienkripsi dengan kunci yang dikelola pelanggan, peran layanan memerlukan izin untuk mendekripsi objek dalam bucket tersebut. Untuk informasi selengkapnya tentang mengonfigurasi SSE-KMS S3, lihat Melindungi data dengan. SSE-KMS
-
Rahasia Secrets Manager — Jika kredensyal pengujian penetrasi Anda disimpan dalam rahasia Secrets Manager yang dienkripsi dengan kunci yang dikelola pelanggan, peran layanan memerlukan izin untuk mendekripsi rahasia tersebut. Untuk informasi selengkapnya tentang enkripsi rahasia, lihat Enkripsi dan dekripsi rahasia di Secrets Manager.
-
CloudWatch Grup log log - Jika grup CloudWatch log Log yang digunakan untuk menyimpan log eksekusi uji penetrasi dienkripsi dengan kunci yang dikelola pelanggan (termasuk grup log yang dibuat oleh Agen AWS Keamanan atas nama Anda), peran layanan memerlukan
kms:DescribeKeyizin untuk memvalidasi kunci. Prinsipal layanan CloudWatch Log menangani enkripsi dan dekripsi data log yang sebenarnya, dan izin tersebut diberikan melalui kebijakan kunci (lihat). Kebijakan kunci Untuk informasi selengkapnya tentang mengenkripsi data log, lihat Mengenkripsi data CloudWatch log di Log menggunakan KMS. AWS
penting
Jika Anda menggunakan kunci KMS yang berbeda untuk mengenkripsi sumber daya ini daripada yang Anda tentukan untuk Ruang Agen, Anda harus memberikan izin peran layanan untuk setiap kunci KMS yang melindungi sumber daya yang diakses peran layanan selama pengujian penetrasi.
Lampirkan kebijakan IAM berikut ke peran layanan pengujian penetrasi. Sertakan hanya pernyataan yang berlaku untuk konfigurasi Anda.
Ganti nilai placeholder berikut dalam kebijakan:
-
111122223333— ID AWS akun Anda -
us-east-1— AWS Wilayah tempat Anda menggunakan Agen AWS Keamanan -
ARN kunci KMS di
Resource— ARN dari kunci yang dikelola pelanggan yang digunakan untuk mengenkripsi setiap sumber daya
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsAccessForEncryptedS3Buckets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-S3-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsAccessForEncryptedSecrets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-SECRETS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-CLOUDWATCH-LOGS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } } ] }
catatan
-
AllowKmsAccessForEncryptedS3BucketsPernyataan ini diperlukan hanya jika Anda menyediakan sumber belajar dari bucket S3 yang dienkripsi dengan kunci yang dikelola pelanggan. PerbaruiResourceARN agar sesuai dengan kunci KMS yang digunakan untuk mengenkripsi bucket S3 Anda, dan perbaruikms:EncryptionContext:aws:s3:arnnilainya agar sesuai dengan nama bucket Anda. -
AllowKmsAccessForEncryptedSecretsPernyataan ini diperlukan hanya jika kredenal pengujian penetrasi Anda disimpan dalam rahasia Secrets Manager yang dienkripsi dengan kunci yang dikelola pelanggan. PerbaruiResourceARN agar sesuai dengan kunci KMS yang digunakan untuk mengenkripsi rahasia Anda, dan perbaruikms:EncryptionContext:SecretARNnilainya agar sesuai dengan nama rahasia Anda. -
AllowKmsKeyValidationForCloudWatchLogsLogGroupsPernyataan hanya diperlukan jika grup CloudWatch log Log Anda dienkripsi dengan kunci yang dikelola pelanggan, termasuk grup log yang dibuat oleh Agen AWS Keamanan atas nama Anda. PerbaruiResourceARN agar sesuai dengan kunci KMS yang digunakan untuk mengenkripsi grup log Anda. -
Jika beberapa sumber daya berbagi kunci KMS yang sama, Anda dapat menggabungkan pernyataan dan mencantumkan ARN kunci bersama sekali di
Resourcebidang.
Buat sumber daya dengan kunci yang dikelola pelanggan
Anda dapat menentukan kunci yang dikelola pelanggan saat menyiapkan Agen AWS Keamanan atau saat membuat sumber daya individual. Kunci KMS mengenkripsi semua data milik sumber daya itu dan subsumber dayanya.
Tetapkan kunci KMS default selama penyiapan (konsol)
Anda dapat mengonfigurasi kunci KMS default selama penyiapan Agen AWS Keamanan awal. Kunci ini digunakan sebagai default untuk Ruang Agen baru dan integrasi kecuali Anda menentukan kunci yang berbeda.
-
Pada halaman Siapkan AWS Security Agent, perluas bagian Enkripsi - opsional.
-
Pilih Sesuaikan pengaturan enkripsi (lanjutan).
-
Untuk Pilih kunci AWS KMS, pilih kunci KMS dari akun Anda, atau masukkan ARN kunci KMS.
-
Selesaikan langkah-langkah penyiapan yang tersisa dan pilih Siapkan AWS Security Agent.
AWS Agen Keamanan memvalidasi kunci KMS untuk mengonfirmasi bahwa kunci itu ada, diaktifkan, dan menggunakan enkripsi simetris. Jika validasi gagal, penyiapan tidak dilanjutkan dan Anda menerima pesan kesalahan.
Membuat Ruang Agen dengan kunci yang dikelola pelanggan (konsol)
-
Di konsol Agen AWS Keamanan, navigasikan ke halaman Agen Spaces.
-
Pilih Buat Ruang Agen.
-
Masukkan nama dan deskripsi opsional untuk Ruang Agen Anda.
-
Perluas bagian Advanced.
-
Di bawah Enkripsi data, pilih salah satu dari berikut ini:
-
Gunakan kunci default aplikasi - Menggunakan kunci KMS default yang dikonfigurasi selama pengaturan Agen AWS Keamanan. Opsi ini dipilih secara default jika kunci default dikonfigurasi.
-
Gunakan tombol yang berbeda - Tentukan kunci KMS yang berbeda untuk Ruang Agen ini. Pilih Sesuaikan pengaturan enkripsi (lanjutan), lalu untuk Pilih kunci AWS KMS, pilih kunci KMS dari akun Anda atau masukkan ARN.
-
-
Pilih Buat.
Buat integrasi dengan kunci yang dikelola pelanggan (konsol)
-
Di konsol Agen AWS Keamanan, navigasikan ke halaman Integrasi.
-
Pilih Tambahkan integrasi dan pilih penyedia Anda (misalnya, GitHub).
-
Selesaikan Langkah 1: Instal dan otorisasi aplikasi penyedia.
-
Pada Langkah 2: Daftarkan detail, masukkan nama pendaftaran dan konfigurasikan pengaturan penyedia.
-
Di bagian Enkripsi data, pilih Sesuaikan pengaturan enkripsi (lanjutan).
-
Untuk Pilih kunci AWS KMS, pilih kunci KMS dari akun Anda, atau masukkan ARN kunci KMS.
-
Pilih Hubungkan.
Buat sumber daya dengan kunci yang dikelola pelanggan (AWS CLI atau SDK)
Untuk menentukan kunci yang dikelola pelanggan menggunakan AWS CLI atau SDK:
-
Sertakan
defaultKmsKeyIdparameter saat memanggilCreateApplicationuntuk menyetel kunci KMS default untuk aplikasi Anda. Kunci ini digunakan sebagai fallback saat membuat Ruang Agen atau integrasi tanpa kunci KMS eksplisit. -
Sertakan
kmsKeyIdparameter saat memanggilCreateAgentSpaceatauCreateIntegrationmengenkripsi sumber daya tertentu. Ini lebih diutamakan daripada default tingkat aplikasi.
Untuk detail parameter, lihat Referensi API Agen AWS Keamanan.
Jika Anda tidak menentukan kunci KMS, Agen AWS Keamanan menggunakan kunci KMS default tingkat aplikasi jika salah satu dikonfigurasi. Jika tidak, sumber daya dienkripsi dengan kunci AWS-managed.
Rotasi kunci
AWS Agen Keamanan secara otomatis memutar kunci cabang secara berkala. Rotasi kunci cabang membuat versi aktif baru dari kunci cabang sambil mempertahankan semua versi sebelumnya. Setelah rotasi:
-
Data baru dienkripsi dengan versi kunci cabang baru.
-
Data yang dienkripsi sebelumnya tetap dapat didekripsi menggunakan versi kunci cabang yang lebih lama.
-
Tidak diperlukan enkripsi ulang data.
Rotasi kunci cabang terpisah dari rotasi kunci KMS. Anda dapat mengaktifkan rotasi kunci KMS otomatis untuk kunci yang dikelola pelanggan Anda secara independen. Untuk informasi selengkapnya, lihat Memutar kunci KMS di Panduan Pengembang Layanan Manajemen AWS Kunci.
Setelah rotasi kunci cabang, ada periode singkat di mana salinan cache dari kunci cabang sebelumnya masih dapat digunakan untuk operasi enkripsi baru. Jendela ini ditentukan oleh cache internal time-to-live (TTL) dan tidak mempengaruhi keamanan data Anda.
Pertimbangan-pertimbangan
Ingatlah hal berikut saat menggunakan kunci yang dikelola pelanggan dengan Agen AWS Keamanan:
-
Kunci yang dikelola pelanggan hanya berlaku untuk sumber daya baru. Sumber daya yang ada yang dibuat sebelum Anda mengonfigurasi kunci terkelola pelanggan terus menggunakan enkripsi AWS-managed. Tidak ada migrasi data yang ada.
-
Kunci yang dikelola pelanggan ditentukan pada waktu pembuatan. Anda menentukan kunci KMS saat membuat sumber daya. Anda tidak dapat menambahkan atau mengubah kunci KMS untuk sumber daya yang ada.
-
Beberapa tombol KMS didukung. Anda dapat menggunakan kunci KMS yang berbeda untuk sumber daya yang berbeda. Misalnya, Anda dapat menggunakan satu kunci untuk Ruang Agen produksi dan kunci lain untuk pengembangan Ruang Agen.
-
Menonaktifkan atau menghapus kunci KMS membuat data tidak dapat diakses. Jika Anda menonaktifkan atau menjadwalkan penghapusan kunci KMS, Agen AWS Keamanan tidak dapat mendekripsi data yang dienkripsi di bawah kunci tersebut. Sumber daya yang terpengaruh menjadi tidak dapat diakses sampai kunci diaktifkan kembali. Menghapus kunci KMS secara permanen mencegah akses ke semua data yang dienkripsi di bawah kunci itu.
-
Izin kebijakan utama diperlukan. Jika Anda menghapus izin yang diperlukan dari kebijakan kunci KMS Anda, Agen AWS Keamanan tidak dapat mengakses data terenkripsi. Pastikan kebijakan utama memberikan izin untuk peran administrator (digunakan untuk mengelola layanan di AWS Konsol), peran aplikasi (digunakan oleh aplikasi web), peran layanan pengujian penetrasi (diasumsikan oleh agen untuk menjalankan pengujian penetrasi), dan prinsip layanan Agen AWS Keamanan seperti yang dijelaskan dalam. Izin KMS yang diperlukan
-
AWS Kuota KMS berlaku. Operasi kriptografi terhadap kunci KMS Anda dihitung terhadap kuota permintaan AWS KMS Anda. Dalam penggunaan normal, arsitektur keyring hierarkis meminimalkan panggilan KMS melalui caching kunci cabang. Untuk informasi selengkapnya, lihat Meminta kuota di Panduan Pengembang Layanan Manajemen AWS Kunci.