Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kebijakan izin untuk AWS Secrets Manager
Kebijakan izin adalah teks terstruktur JSON. Lihat Struktur dokumen kebijakan JSON.
Kebijakan izin yang Anda lampirkan ke sumber daya dan identitas sangat mirip. Beberapa elemen yang Anda sertakan dalam kebijakan untuk akses ke rahasia meliputi:
-
Principal
: siapa yang memberikan akses ke. Lihat Menentukan prinsipal dalam Panduan Pengguna IAM. Ketika Anda melampirkan kebijakan ke identitas, Anda tidak menyertakanPrincipal
elemen dalam kebijakan. -
Action
: apa yang bisa mereka lakukan. Lihat Tindakan Secrets Manager. -
Resource
: rahasia mana yang dapat mereka akses. Lihat Sumber daya Secrets Manager.Karakter wildcard (*) memiliki arti yang berbeda tergantung pada kebijakan yang Anda lampirkan:
-
Dalam kebijakan yang dilampirkan pada rahasia,
*
berarti kebijakan tersebut berlaku untuk rahasia ini. -
Dalam kebijakan yang dilampirkan pada identitas,
*
berarti kebijakan tersebut berlaku untuk semua sumber daya, termasuk rahasia, di akun.
-
Untuk melampirkan kebijakan ke rahasia, lihatLampirkan kebijakan izin ke rahasia AWS Secrets Manager.
Untuk melampirkan kebijakan ke identitas, lihatMelampirkan kebijakan izin ke identitas.
Topik
- Contoh: Izin untuk mengambil nilai rahasia individu
- Contoh: Izin untuk membaca dan menggambarkan rahasia individu
- Contoh: Izin untuk mengambil sekelompok nilai rahasia dalam batch
- Contoh: Wildcard
- Contoh: Izin untuk membuat rahasia
- Contoh: Tolak AWS KMS kunci tertentu untuk mengenkripsi rahasia
- Contoh: Izin dan VPC
- Contoh: Kontrol akses ke rahasia menggunakan tag
- Contoh: Batasi akses ke identitas dengan tag yang cocok dengan tag rahasia
- Contoh: Prinsipal layanan
Contoh: Izin untuk mengambil nilai rahasia individu
Untuk memberikan izin untuk mengambil nilai rahasia, Anda dapat melampirkan kebijakan ke rahasia atau identitas. Untuk bantuan menentukan jenis kebijakan yang akan digunakan, lihat Kebijakan berbasis identitas dan kebijakan berbasis sumber daya. Untuk informasi tentang cara melampirkan kebijakan, lihat Lampirkan kebijakan izin ke rahasia AWS Secrets Manager danMelampirkan kebijakan izin ke identitas.
Contoh berikut menunjukkan dua cara berbeda untuk memberikan akses ke rahasia. Contoh pertama adalah kebijakan berbasis sumber daya yang dapat Anda lampirkan ke rahasia. Contoh ini berguna ketika Anda ingin memberikan akses ke satu rahasia ke beberapa pengguna atau peran. Contoh kedua adalah kebijakan berbasis identitas yang dapat Anda lampirkan ke pengguna atau peran di IAM. Contoh ini berguna ketika Anda ingin memberikan akses ke grup IAM. Untuk memberikan izin untuk mengambil sekelompok rahasia dalam panggilan API batch, lihatContoh: Izin untuk mengambil sekelompok nilai rahasia dalam batch.
contoh Baca satu rahasia (lampirkan ke rahasia)
Anda dapat memberikan akses ke rahasia dengan melampirkan kebijakan berikut ke rahasia. Untuk menggunakan kebijakan ini, lihatLampirkan kebijakan izin ke rahasia AWS Secrets Manager.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountId
:role/EC2RoleToAccessSecrets
" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
contoh Baca rahasia yang dienkripsi menggunakan kunci yang dikelola pelanggan (lampirkan ke identitas)
Jika rahasia dienkripsi menggunakan kunci yang dikelola pelanggan, Anda dapat memberikan akses untuk membaca rahasia dengan melampirkan kebijakan berikut ke identitas. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "
SecretARN
" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "KMSKeyARN
" } ] }
Contoh: Izin untuk membaca dan menggambarkan rahasia individu
contoh Baca dan jelaskan satu rahasia (lampirkan pada identitas)
Anda dapat memberikan akses ke rahasia dengan melampirkan kebijakan berikut ke identitas. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "
SecretARN
" } ] }
Contoh: Izin untuk mengambil sekelompok nilai rahasia dalam batch
contoh Baca sekelompok rahasia dalam batch (lampirkan ke identitas)
Anda dapat memberikan akses untuk mengambil grup rahasia dalam panggilan API batch dengan melampirkan kebijakan berikut ke identitas. Kebijakan membatasi pemanggil sehingga mereka hanya dapat mengambil rahasia yang ditentukan oleh SecretArn1, SecretArn2, dan SecretArn3
, bahkan jika panggilan
batch menyertakan rahasia lain.
Jika penelepon juga meminta rahasia lain dalam panggilan API batch, Secrets Manager tidak akan mengembalikannya. Untuk informasi lebih lanjut, lihat BatchGetSecretValue
. . Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:BatchGetSecretValue", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "
SecretARN1
", "SecretARN2
", "SecretARN3
" ] } ] }
Contoh: Wildcard
Anda dapat menggunakan wildcard untuk menyertakan sekumpulan nilai dalam elemen kebijakan.
contoh Akses semua rahasia di jalur (lampirkan ke identitas)
Kebijakan berikut memberikan akses untuk mengambil semua rahasia dengan nama yang diawali dengan "TestEnv/
”. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:
Region
:AccountId
:secret:TestEnv/
*" } }
contoh Akses metadata pada semua rahasia (lampirkan ke identitas)
Pemberian DescribeSecret
dan izin kebijakan berikut dimulai denganList
: ListSecrets
dan. ListSecretVersionIds
Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:List*" ], "Resource": "*" } }
contoh Cocokkan nama rahasia (lampirkan ke identitas)
Kebijakan berikut memberikan semua izin Secrets Manager untuk rahasia berdasarkan nama. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
Untuk mencocokkan nama rahasia, Anda membuat ARN untuk rahasia dengan menyusun Region, ID Akun, nama rahasia, dan wildcard (?
) untuk mencocokkan karakter acak individual. Secrets Manager menambahkan enam karakter acak ke nama rahasia sebagai bagian dari ARN mereka, sehingga Anda dapat menggunakan wildcard ini untuk mencocokkan karakter tersebut. Jika Anda menggunakan sintaks"another_secret_name-*"
, Secrets Manager tidak hanya cocok dengan rahasia yang dimaksudkan dengan 6 karakter acak, tetapi juga cocok"
. another_secret_name-<anything-here>a1b2c3
"
Karena Anda dapat memprediksi semua bagian ARN rahasia kecuali 6 karakter acak, menggunakan '??????'
sintaks karakter wildcard memungkinkan Anda memberikan izin dengan aman ke rahasia yang belum ada. Namun, ketahuilah, jika Anda menghapus rahasia dan membuatnya kembali dengan nama yang sama, pengguna secara otomatis menerima izin untuk rahasia baru, meskipun 6 karakter berubah.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:*", "Resource": [ "arn:aws:secretsmanager:
Region
:AccountId
:secret:a_specific_secret_name-a1b2c3
", "arn:aws:secretsmanager:Region
:AccountId
:secret:another_secret_name-??????
" ] } ] }
Contoh: Izin untuk membuat rahasia
Untuk memberikan izin pengguna untuk membuat rahasia, kami sarankan Anda melampirkan kebijakan izin ke grup IAM milik pengguna. Lihat grup pengguna IAM.
contoh Buat rahasia (lampirkan ke identitas)
Kebijakan berikut memberikan izin untuk membuat rahasia dan melihat daftar rahasia. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:ListSecrets" ], "Resource": "*" } ] }
Contoh: Tolak AWS KMS kunci tertentu untuk mengenkripsi rahasia
penting
Untuk menolak kunci yang dikelola pelanggan, kami sarankan Anda membatasi akses menggunakan kebijakan kunci atau hibah kunci. Untuk informasi selengkapnya, lihat Otentikasi dan kontrol akses AWS KMS di Panduan AWS Key Management Service Pengembang.
contoh Tolak kunci yang AWS dikelola aws/secretsmanager
(lampirkan ke identitas)
Kebijakan berikut menunjukkan cara menolak penggunaan kunci AWS terkelola aws/secretsmanager
untuk membuat atau memperbarui rahasia. Ini berarti bahwa rahasia harus dienkripsi menggunakan kunci yang dikelola pelanggan. Jika aws/secretsmanager
kuncinya ada, Anda juga harus menyertakan ID kuncinya. Anda juga menyertakan string kosong karena Secrets Manager menafsirkannya sebagai kunci AWS aws/secretsmanager
terkelola. Pernyataan kedua menolak permintaan untuk membuat rahasia yang tidak menyertakan kunci KMS, karena Secrets Manager menafsirkannya sebagai kunci AWS terkelola. aws/secretsmanager
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireCustomerManagedKeysOnSecrets", "Effect": "Deny", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret" ], "Resource": "*", "Condition": { "ForAnyValue:StringLikeIfExists": { "secretsmanager:KmsKeyId": [ "*alias/aws/secretsmanager", "*
<key_ID_of_the_AWS_managed_key>
", "" ] } } }, { "Sid": "RequireKmsKeyIdParameterOnCreate", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "secretsmanager:KmsKeyId": "true" } } } ] }
Contoh: Izin dan VPC
Jika Anda perlu mengakses Secrets Manager dari dalam VPC, Anda dapat memastikan bahwa permintaan ke Secrets Manager berasal dari VPC dengan menyertakan kondisi dalam kebijakan izin Anda. Untuk informasi selengkapnya, lihat Kondisi titik akhir VPC dan Menggunakan titik akhir AWS Secrets Manager VPC.
Pastikan bahwa permintaan untuk mengakses rahasia dari AWS layanan lain juga berasal dari VPC, jika tidak kebijakan ini akan menolak akses mereka.
contoh Memerlukan permintaan untuk datang melalui titik akhir VPC (lampirkan ke rahasia)
Kebijakan berikut memungkinkan pengguna untuk melakukan operasi Secrets Manager hanya ketika permintaan datang melalui titik akhir VPC.
Untuk menggunakan kebijakan ini, lihatLampirkan kebijakan izin ke rahasia AWS Secrets Manager.vpce-1234a5678b9012c
{ "Id": "example-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "
RestrictGetSecretValueoperation
", "Effect": "Deny", "Principal": "*", "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1234a5678b9012c
" } } } ] }
contoh Memerlukan permintaan untuk datang dari VPC (lampirkan ke rahasia)
Kebijakan berikut memungkinkan perintah untuk membuat dan mengelola rahasia hanya ketika mereka berasal
. Selain itu, kebijakan memungkinkan operasi yang menggunakan akses nilai terenkripsi rahasia hanya ketika permintaan berasal. vpc-12345678
vpc-2b2b2b2b
Anda mungkin menggunakan kebijakan seperti ini jika Anda menjalankan aplikasi dalam satu VPC, tetapi Anda menggunakan VPC kedua yang terisolasi untuk fungsi manajemen. Untuk menggunakan kebijakan ini, lihatLampirkan kebijakan izin ke rahasia AWS Secrets Manager.
{ "Id": "example-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "
AllowAdministrativeActionsfromONLYvpc-12345678
", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:Create*", "secretsmanager:Put*", "secretsmanager:Update*", "secretsmanager:Delete*", "secretsmanager:Restore*", "secretsmanager:RotateSecret", "secretsmanager:CancelRotate*", "secretsmanager:TagResource", "secretsmanager:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-12345678
" } } }, { "Sid": "AllowSecretValueAccessfromONLYvpc-2b2b2b2b
", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-2b2b2b2b
" } } } ] }
Contoh: Kontrol akses ke rahasia menggunakan tag
Anda dapat menggunakan tag untuk mengontrol akses ke rahasia Anda. Menggunakan tag untuk mengontrol izin sangat membantu di lingkungan yang berkembang pesat dan membantu situasi di mana manajemen kebijakan menjadi rumit. Salah satu strategi adalah melampirkan tag ke rahasia dan kemudian memberikan izin ke identitas ketika rahasia memiliki tag tertentu.
contoh Izinkan akses ke rahasia dengan tag tertentu (lampirkan ke identitas)
Kebijakan berikut memungkinkan DescribeSecret
pada rahasia dengan tag dengan kunci "" dan nilai ServerName
"ServeABC
”. Untuk menggunakan kebijakan ini, lihatMelampirkan kebijakan izin ke identitas.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/
ServerName
": "ServerABC
" } } } }
Contoh: Batasi akses ke identitas dengan tag yang cocok dengan tag rahasia
Salah satu strateginya adalah melampirkan tag ke rahasia dan identitas IAM. Kemudian Anda membuat kebijakan izin untuk mengizinkan operasi ketika tag identitas cocok dengan tag rahasia. Untuk tutorial selengkapnya, lihat Menentukan izin untuk mengakses rahasia berdasarkan tag.
Menggunakan tag untuk mengontrol izin sangat membantu di lingkungan yang berkembang pesat dan membantu situasi di mana manajemen kebijakan menjadi rumit. Untuk informasi lebih lanjut, lihat Apa fungsi ABAC untuk AWS?
contoh Izinkan akses ke peran yang memiliki tag yang sama dengan rahasia (lampirkan ke rahasia)
Kebijakan berikut
hanya 123456789012
GetSecretValue
memberikan akun jika tag
memiliki nilai yang sama untuk rahasia dan peran. Untuk menggunakan kebijakan ini, lihatLampirkan kebijakan izin ke rahasia AWS Secrets Manager.AccessProject
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Condition": { "StringEquals": { "aws:ResourceTag/
AccessProject
": "${ aws:PrincipalTag/AccessProject
}" } }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } }
Contoh: Prinsipal layanan
Jika kebijakan sumber daya yang dilampirkan pada rahasia Anda menyertakan prinsip AWS layanan, kami sarankan Anda menggunakan kunci kondisi SourceAccount global aws: SourceArn dan aws:. ARN dan nilai akun disertakan dalam konteks otorisasi hanya ketika permintaan datang ke Secrets Manager dari layanan lain. AWS Kombinasi kondisi ini menghindari skenario wakil yang berpotensi membingungkan.
Jika ARN sumber daya menyertakan karakter yang tidak diizinkan dalam kebijakan sumber daya, Anda tidak dapat menggunakan ARN sumber daya tersebut dalam nilai kunci kondisi. aws:SourceArn
Sebagai gantinya, gunakan tombol aws:SourceAccount
kondisi. Untuk informasi selengkapnya, lihat persyaratan IAM.
Prinsipal layanan biasanya tidak digunakan sebagai prinsipal dalam kebijakan yang melekat pada rahasia, tetapi beberapa layanan memerlukannya. AWS Untuk informasi tentang kebijakan sumber daya yang diharuskan layanan untuk Anda lampirkan ke rahasia, lihat dokumentasi layanan.
contoh Izinkan layanan mengakses rahasia menggunakan kepala layanan (lampirkan ke rahasia)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "
service-name
.amazonaws.com" ] }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ArnLike": { "aws:sourceArn": "arn:aws:service-name
::123456789012
:*" }, "StringEquals": { "aws:sourceAccount": "123456789012
" } } } ] }