Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Terhubung ke AWS KMS melalui VPC endpoint
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 KMSmendukung titik akhir Amazon Virtual Private Cloud (Amazon VPC) yang didukung oleh. AWS PrivateLink Masing-masing VPC endpoint diwakili oleh satu atau lebih Antarmuka Jaringan Elastis (ENI) dengan alamat IP privat 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 dengan AWS KMS.
Wilayah
AWS KMSmendukung kebijakan titik akhir VPC dan titik akhir VPC di semua yang didukung. Wilayah AWS AWS KMS
Topik
Pertimbangan untuk VPC endpoint AWS KMS
Sebelum Anda menyiapkan titik akhir VPC antarmuka untukAWS KMS, tinjau topik properti dan batasan titik akhir Antarmuka di Panduan. AWS PrivateLink
AWS KMSdukungan untuk titik akhir VPC mencakup yang berikut ini.
-
Anda dapat menggunakan titik akhir VPC untuk memanggil semua operasi AWS KMS API dari VPC Anda.
-
Anda dapat menggunakan AWS CloudTrail log untuk mengaudit penggunaan kunci KMS melalui titik akhir VPC. Untuk rincian selengkapnya, lihat Mencatat VPC endpoint Anda.
Membuat VPC endpoint untuk AWS KMS
Anda dapat membuat VPC endpoint untuk AWS KMS menggunakan konsol Amazon VPC atau API Amazon VPC. Untuk informasi selengkapnya, lihat Membuat titik akhir antarmuka di AWS PrivateLinkPanduan.
-
Untuk membuat VPC endpoint untuk AWS KMS, gunakan nama layanan berikut:
com.amazonaws.
region
.kmsSebagai 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 KMSFIPS, gunakan nama layanan berikut:
com.amazonaws.
region
.kms-fipsSebagai 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 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. SDK AWS dan AWS CLI menggunakan nama host DNS AWS KMS standar secara default, sehingga Anda tidak perlu menentukan URL VPC endpoint dalam aplikasi dan perintah.
Untuk informasi selengkapnya, lihat Mengakses layanan melalui titik akhir antarmuka di Panduan. AWS PrivateLink
Terhubung ke VPC endpoint AWS KMS
Anda dapat terhubung ke AWS KMS melalui VPC endpoint dengan menggunakan SDK AWS, AWS CLI atau AWS Tools for PowerShell. Untuk menentukan VPC endpoint, gunakan nama DNS-nya.
Misalnya, perintah kunci-daftar 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
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. SDK AWS CLI dan SDK menggunakan nama host ini secara default, sehingga Anda dapat mulai menggunakan titik akhir VPC untuk terhubung ke titik akhir AWS KMS 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 ModifyVpcAttributeoperasi. Untuk detailnya, lihat Melihat dan memperbarui atribut DNS untuk VPC Anda di Panduan Pengguna Amazon VPC.
Mengontrol akses ke VPC endpoint
Untuk mengontrol akses ke VPC endpoint Anda untuk AWS KMS, lampirkan Kebijakan VPC endpoint ke VPC endpoint. Kebijakan titik akhir menentukan apakah prinsipal dapat menggunakan VPC endpoint untuk memanggil operasi AWS KMS pada sumber daya AWS KMS.
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. CreateVpcEndpointModifyVpcEndpoint Anda juga dapat membuat dan mengubah kebijakan VPC endpoint dengan menggunakan templat AWS CloudFormation. Untuk bantuan menggunakan konsol manajemen VPC, lihat Membuat titik akhir antarmuka dan Memodifikasi titik akhir antarmuka dalam Panduan. AWS PrivateLink
catatan
AWS KMS mendukung kebijakan VPC endpoint dimulai pada bulan Juli 2020. VPC endpoint untuk AWS KMS yang dibuat sebelum tanggal tersebut memiliki Kebijakan VPC endpoint default, tetapi Anda bisa mengubahnya kapan saja.
Untuk mendapatkan bantuan mengenai cara menulis dan memformat dokumen kebijakan JSON, lihat Referensi Kebijakan IAM JSON dalam Panduan Pengguna IAM.
Topik
Tentang kebijakan VPC endpoint
Untuk permintaan AWS KMS yang menggunakan VPC endpoint agar berhasil, prinsipal memerlukan izin dari dua sumber:
-
Kebijakan kunci, kebijakan IAM, atau hibah 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 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 DisableKeykunci KMS tertentu. Tetapi jika prinsipal tidak memiliki izin tersebut dari kebijakan kunci, kebijakan IAM, atau hibah, permintaan gagal.
Kebijakan VPC endpoint default
Setiap VPC endpoint memiliki kebijakan VPC endpoint, tetapi Anda tidak diharuskan untuk menentukan kebijakan. Jika Anda tidak menentukan kebijakan, kebijakan titik akhir default memungkinkan semua operasi oleh semua prinsipal di semua sumber daya pada titik akhir.
Namun, untuk sumber daya AWS KMS, prinsipal juga harus memiliki izin untuk memanggil operasi dari kebijakan utama, Kebijakan IAM, atau hibah. Oleh karena itu, dalam praktik, kebijakan default mengatakan bahwa jika prinsipal memiliki izin untuk memanggil operasi pada sumber daya, mereka juga dapat memanggilnya dengan menggunakan titik akhir.
{ "Statement": [ { "Action": "*", "Effect": "Allow", "Principal": "*", "Resource": "*" } ] }
Untuk mengizinkan prinsipal menggunakan titik akhir VPC hanya untuk sebagian dari operasi yang diizinkan, buat atau perbarui kebijakan titik akhir VPC.
Membuat kebijakan VPC endpoint
Kebijakan VPC endpoint menentukan apakah prinsipal memiliki izin untuk menggunakan VPC endpoint untuk melakukan operasi pada sumber daya. Untuk sumber daya AWS KMS, prinsipal juga harus memiliki izin untuk melakukan operasi dari kebijakan utama, Kebijakan IAM, atau hibah.
Setiap pernyataan kebijakan VPC endpoint memerlukan unsur-unsur berikut:
-
Prinsip-prinsip yang dapat melakukan tindakan
-
Tindakan yang dapat dilakukan
-
Sumber daya yang dapat digunakan untuk mengambil tindakan
Pernyataan kebijakan tidak menentukan VPC endpoint. Sebaliknya, berlaku untuk VPC endpoint di mana kebijakan tersebut terpasang. Untuk informasi selengkapnya, lihat Mengendalikan akses ke layanan dengan titik akhir VPC dalam Panduan Pengguna Amazon VPC.
Berikut adalah contoh kebijakan VPC endpoint untuk AWS KMS. Saat dilampirkan ke titik akhir VPC, kebijakan ini memungkinkan ExampleUser
untuk menggunakan titik akhir VPC untuk memanggil operasi yang ditentukan pada kunci KMS yang ditentukan. Sebelum menggunakan kebijakan seperti ini, ganti contoh prinsipal dan ARN kunci dengan nilai yang valid dari akun Anda.
{ "Statement":[ { "Sid": "AllowDecryptAndView", "Principal": {"AWS": "
arn:aws:iam::111122223333:user/ExampleUser
"}, "Effect":"Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:ListAliases", "kms:ListKeys" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
" } ] }
AWS CloudTrail mencatat semua operasi yang menggunakan VPC endpoint. Namun, CloudTrail log Anda tidak menyertakan operasi yang diminta oleh kepala sekolah di akun lain atau operasi untuk kunci KMS di akun lain.
Dengan demikian, Anda mungkin ingin membuat kebijakan VPC endpoint yang mencegah prinsipal di akun eksternal menggunakan VPC endpoint untuk memanggil operasi AWS KMS apa pun pada kunci apa pun di akun lokal.
Contoh berikut menggunakan aws: PrincipalAccount global condition key untuk menolak akses ke semua prinsipal untuk semua operasi pada semua kunci KMS kecuali prinsipal ada di akun lokal. Sebelum menggunakan kebijakan seperti ini, ganti ID akun contoh dengan yang valid.
{ "Statement": [ { "Sid": "AccessForASpecificAccount", "Principal": {"AWS": "*"}, "Action": "kms:*", "Effect": "Deny", "Resource": "arn:aws:kms:*:
111122223333
:key/*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333
" } } } ] }
Melihat kebijakan VPC endpoint
Untuk melihat kebijakan titik akhir VPC untuk titik akhir, gunakan konsol manajemen VPC
Perintah AWS CLI berikut ini mendapat kebijakan untuk titik akhir dengan ID VPC endpoint yang ditentukan.
Sebelum menggunakan perintah ini, ganti ID titik akhir contoh dengan yang valid dari akun Anda.
$
aws ec2 describe-vpc-endpoints \ --query 'VpcEndpoints[?VpcEndpointId==`
vpce-1234abcdf5678c90a
`].[PolicyDocument]' --output text
Menggunakan VPC endpoint dalam pernyataan kebijakan
Anda dapat mengontrol akses ke sumber daya dan operasi AWS KMS ketika permintaan berasal dari VPC atau menggunakan VPC endpoint. Untuk melakukannya, gunakan salah satu kunci kondisi global berikut dalam kebijakan kunci atau kebijakan IAM.
-
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 VPC atau VPC endpoint tertentu, permintaan dari layanan AWS terintegrasi yang menggunakan sumber daya AWS KMS atas nama Anda mungkin gagal. Untuk bantuan, lihat Menggunakan syarat VPC endpoint dalam kebijakan dengan izin AWS KMS.
Selain itu, kunci syarat aws:sourceIP
tidak efektif bila permintaan berasal dari Amazon VPC endpoint. 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 di Panduan. AWS PrivateLink
Anda dapat menggunakan kunci kondisi global ini untuk mengontrol akses ke AWS KMS keys (kunci KMS), alias, dan operasi seperti CreateKeyitu 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. Ketika pengguna membuat permintaan ke AWS KMS, ID VPC endpoint dalam permintaan dibandingkan dengan nilai kunci kondisi aws:sourceVpce
dalam kebijakan. Jika tidak cocok, permintaan ditolak.
Untuk menggunakan kebijakan seperti ini, ganti placeholder ID Akun AWS dan ID VPC endpoint dengan nilai yang valid untuk akun Anda.
{ "Id": "example-key-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM policies", "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 berasalvpc-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 placeholder ID Akun AWS dan ID VPC endpoint dengan nilai yang valid untuk akun Anda.
{ "Id": "example-key-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow administrative actions from
vpc-12345678
", "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": "Allow key usage fromvpc-2b2b2b2b
", "Effect": "Allow", "Principal": {"AWS": "111122223333
"}, "Action": [ "kms:Encrypt","kms:Decrypt","kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-2b2b2b2b
" } } }, { "Sid": "Allow read actions from everywhere", "Effect": "Allow", "Principal": {"AWS": "111122223333
"}, "Action": [ "kms:Describe*","kms:List*","kms:Get*" ], "Resource": "*", } ] }
Mencatat VPC endpoint Anda
AWS CloudTrail mencatat semua operasi yang menggunakan VPC endpoint. Ketika permintaan ke AWS KMS menggunakan VPC endpoint, ID VPC endpoint muncul di entri log AWS CloudTrail yang mencatat permintaan. Anda dapat menggunakan ID titik akhir untuk mengaudit penggunaan VPC endpoint AWS KMS.
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. Juga, untuk melindungi VPC Anda, permintaan yang ditolak oleh kebijakan VPC endpoint, tetapi sebaliknya akan diizinkan, tidak dicatat dalam AWS CloudTrail.
Misalnya, entri log contoh ini mencatat GenerateDataKeypermintaan 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" }