Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Kunci konteks kondisi
Ketika kepala sekolah membuat permintaan AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan. Anda dapat menggunakan Condition
elemen JSON kebijakan untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Informasi permintaan disediakan oleh sumber yang berbeda, termasuk prinsipal yang membuat permintaan, sumber daya permintaan dibuat terhadap, dan metadata tentang permintaan itu sendiri.
Kunci kondisi global dapat digunakan di semua AWS
layanan. Meskipun kunci kondisi ini dapat digunakan di semua kebijakan, kunci tidak tersedia di setiap konteks permintaan. Misalnya, kunci aws:SourceAccount
kondisi hanya tersedia ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan. Untuk mempelajari lebih lanjut tentang keadaan saat kunci global disertakkan dalam konteks permintaan, lihat informasi Ketersediaan untuk setiap kunci.
Beberapa layanan individual membuat kunci kondisi mereka sendiri yang tersedia dalam konteks permintaan untuk layanan lainnya. Kunci kondisi lintas layanan adalah jenis kunci kondisi global yang menyertakan awalan yang cocok dengan nama layanan, seperti ec2:
ataulambda:
, tetapi tersedia di seluruh layanan lain.
Kunci kondisi khusus layanan didefinisikan untuk digunakan dengan layanan individual AWS . Misalnya, Amazon S3 memungkinkan Anda menulis kebijakan dengan kunci s3:VersionId
kondisi untuk membatasi akses ke versi tertentu dari objek Amazon S3. Kunci kondisi ini unik untuk layanan, artinya hanya berfungsi dengan permintaan ke layanan Amazon S3. Untuk kunci kondisi yang spesifik layanan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan dan pilih layanan yang kuncinya ingin Anda lihat.
catatan
Jika Anda menggunakan kunci kondisi yang hanya tersedia dalam beberapa keadaan, Anda dapat menggunakan IfExistsversi operator kondisi. Jika kunci kondisi hilang dari konteks permintaan, kebijakan dapat gagal dalam evaluasi. Misalnya, gunakan blok berikut dengan ...IfExists
operator untuk mencocokkan saat permintaan berasal dari rentang IP tertentu atau dari yang spesifikVPC. Jika salah satu atau kedua kunci tidak disertakan dalam konteks permintaan, kondisi masih akan mengembalikan true
. Nilai hanya diperiksa jika kunci yang ditentukan disertakan dalam konteks permintaan. Untuk informasi selengkapnya tentang bagaimana kebijakan dievaluasi ketika kunci tidak ada untuk operator lain, lihat Operator kondisi.
"Condition": {
"IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
"StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]}
}
penting
Untuk membandingkan kondisi Anda terhadap konteks permintaan dengan beberapa nilai kunci, Anda harus menggunakan operator kumpulan ForAllValues
atau ForAnyValue
. Gunakan operator set hanya dengan kunci kondisi multi-nilai. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi.
Sifat-sifat kepala sekolah | Properti sesi peran | Properti jaringan | Properti dari sumber daya | Properti permintaan |
---|---|---|---|---|
Kunci kondisi sensitif
Kunci kondisi berikut dianggap sensitif karena nilainya dihasilkan oleh mesin. Penggunaan wildcard dalam kunci kondisi ini tidak memiliki kasus penggunaan yang valid, bahkan dengan substring dari nilai kunci dengan wildcard. Ini karena wildcard dapat mencocokkan kunci kondisi dengan nilai apa pun, yang dapat menimbulkan risiko keamanan.
Sifat-sifat kepala sekolah
Gunakan kunci kondisi berikut untuk membandingkan detail prinsipal yang mengajukan permintaan dengan properti utama yang Anda sebutkan dalam kebijakan. Untuk daftar kepala sekolah yang dapat membuat permintaan, lihat. Cara menentukan kepala sekolah
Daftar Isi
aws: PrincipalArn
Gunakan kunci ini untuk membandingkan Amazon Resource Name (ARN) prinsipal yang mengajukan permintaan dengan ARN yang Anda sebutkan dalam kebijakan. Untuk IAM peran, konteks permintaan ARN memberikan peran, bukan pengguna ARN yang mengambil peran tersebut.
-
Ketersediaan – Kunci ini disertakan dalam konteks permintaan untuk semua permintaan yang ditandatangani. Permintaan anonim tidak menyertakan kunci ini. Anda dapat menentukan jenis prinsipal berikut dalam kunci kondisi ini:
-
IAMperan
-
IAMpengguna
-
AWS STS Sesi pengguna gabungan
-
Akun AWS pengguna root
-
-
Tipe data - ARN
AWS merekomendasikan agar Anda menggunakan ARNoperator alih-alih operator string saat membandingkanARNs.
-
Jenis nilai - Bernilai tunggal
-
Contoh nilai Daftar berikut menunjukkan nilai konteks permintaan yang dikembalikan untuk berbagai jenis prinsipal yang dapat Anda tentukan dalam kunci kondisi:
aws:PrincipalArn
-
IAMperan - Konteks permintaan berisi nilai berikut untuk kunci kondisi
aws:PrincipalArn
. Jangan tentukan sesi peran yang diasumsikan ARN sebagai nilai untuk kunci kondisi ini. Untuk informasi lebih lanjut tentang prinsipal sesi peran, lihatKepala sesi peran.arn:aws:iam::123456789012:role/role-name
-
IAMuser - Konteks permintaan berisi nilai berikut untuk kunci kondisi
aws:PrincipalArn
.arn:aws:iam::123456789012:user/
user-name
-
AWS STS sesi pengguna federasi - Konteks permintaan berisi nilai berikut untuk kunci
aws:PrincipalArn
kondisi.arn:aws:sts::123456789012:federated-user/
user-name
-
Akun AWS root user - Konteks permintaan berisi nilai berikut untuk kunci kondisi
aws:PrincipalArn
. Ketika Anda menentukan pengguna root ARN sebagai nilai untuk kunciaws:PrincipalArn
kondisi, itu membatasi izin hanya untuk pengguna root dari Akun AWS. Ini berbeda dengan menentukan pengguna root ARN dalam elemen utama kebijakan berbasis sumber daya, yang mendelegasikan wewenang ke. Akun AWS Untuk informasi selengkapnya tentang menentukan pengguna root ARN dalam elemen utama kebijakan berbasis sumber daya, lihat. Akun AWS utamaarn:aws:iam::123456789012:root
-
Anda dapat menentukan pengguna root ARN sebagai nilai untuk kunci kondisi aws:PrincipalArn
dalam kebijakan kontrol AWS Organizations layanan (SCPs). SCPsadalah jenis kebijakan organisasi yang digunakan untuk mengelola izin di organisasi Anda dan hanya memengaruhi akun anggota di organisasi. Tindakan SCP membatasi izin untuk IAM pengguna dan peran di akun anggota, termasuk pengguna akun anggota. Untuk informasi selengkapnya tentang efek SCPs pada izin, lihat SCPefek pada izin di Panduan Pengguna Organizations.
aws: PrincipalAccount
Gunakan kunci ini untuk membandingkan akun yang memiliki prinsipal yang meminta dengan pengenal akun yang Anda tentukan dalam kebijakan. Untuk permintaan anonim, konteks permintaan akan ditampilkananonymous
.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Dalam contoh berikut, akses ditolak kecuali ke kepala sekolah dengan nomor rekening. 123456789012
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:accountID:resource
" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }
aws: PrincipalOrgPaths
Gunakan kunci ini untuk membandingkan AWS Organizations jalur untuk prinsipal yang membuat permintaan ke jalur dalam kebijakan. Prinsipal tersebut dapat menjadi IAM pengguna, IAM peran, pengguna gabungan, atau Pengguna root akun AWS. Dalam kebijakan, kunci kondisi ini memastikan bahwa pemohon adalah anggota akun dalam akar organisasi atau unit organisasi (OUs) yang ditentukan di AWS Organizations. AWS Organizations Jalur adalah representasi teks dari struktur entitas Organizations. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat Memahami jalur entitas AWS Organizations.
-
Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.
-
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
catatan
Organisasi unik IDs secara global tetapi OU IDs dan root IDs hanya unik dalam suatu organisasi. Ini berarti bahwa tidak ada dua organisasi yang memiliki ID organisasi yang sama. Namun, organisasi lain mungkin memiliki OU atau root dengan ID yang sama seperti milik Anda. Kami merekomendasikan agar Anda selalu menyertakan ID organisasi saat menentukan OU atau root.
Misalnya, kondisi berikut memberikan prinsipal di akun yang disematkan langsung ke ou-ab12-22222222
OU, tetapi tidak dalam anakannya. true
OUs
"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Kondisi berikut memberikan true
prinsipal di akun yang dilampirkan langsung ke OU atau salah satu anaknya. OUs Ketika Anda menyertakan wildcard, Anda harus menggunakan operator kondisi StringLike
.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"] }}
Kondisi berikut memberikan prinsipal di akun yang disematkan langsung ke salah satu anakOUs, tetapi tidak langsung ke OU induk. true
Kondisi sebelumnya ditujukan untuk OU atau turunannya. Kondisi berikut hanya ditujukan untuk turunannya (dan turunan dari turunan tersebut).
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"] }}
Kondisi berikut memungkinkan akses untuk setiap prinsipal dalam organisasi o-a1b2c3d4e5
, terlepas dari OU indukannya.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"] }}
aws:PrincipalOrgPaths
adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Saat Anda menggunakan beberapa nilai dengan operator kondisi ForAnyValue
, jalur prinsipal harus sesuai dengan salah satu jalur yang tercantum dalam kebijakan. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.
"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }
aws: PrincipalOrg ID
Gunakan kunci ini untuk membandingkan pengidentifikasi organisasi tempat prinsipal AWS Organizations yang meminta berada dengan pengidentifikasi yang ditentukan dalam kebijakan.
-
Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Kunci global ini menyediakan alternatif untuk mendaftar semua akun IDs untuk semua AWS akun di suatu organisasi. Anda dapat menggunakan tombol kondisi ini untuk menyederhanakan penentuan elemen Principal
dalam kebijakan berbasis sumber daya. Anda dapat menentukan ID organisasi dalam elemen kondisi. Saat Anda menambah dan menghapus akun, kebijakan yang mencakup kunci aws:PrincipalOrgID
akan secara otomatis menyertakan akun yang benar dan tidak memerlukan pembaruan manual.
Misalnya, kebijakan bucket Amazon S3 berikut memungkinkan anggota akun mana pun di organisasi o-xxxxxxxxxxx
untuk menambahkan objek ke dalam bucket amzn-s3-demo-bucket
.
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
catatan
Kondisi global ini juga berlaku pada akun manajemen dari suatu AWS organisasi. Kebijakan ini mencegah semua kepala sekolah di luar organisasi tertentu mengakses bucket Amazon S3. Ini termasuk AWS layanan apa pun yang berinteraksi dengan sumber daya internal Anda, seperti AWS CloudTrail mengirim data log ke bucket Amazon S3 Anda. Untuk mempelajari bagaimana Anda dapat memberikan akses AWS layanan dengan aman, lihataws: PrincipalIs AWSService.
Untuk informasi lebih lanjut tentang AWS Organizations, lihat Apa itu AWS Organizations? dalam AWS Organizations User Guide.
aws:PrincipalTag/tag-kunci
Gunakan kunci ini untuk membandingkan tanda yang dilampirkan ke prinsipal yang mengajukan permintaan dengan tanda yang Anda tentukan dalam kebijakan. Jika prinsipal memiliki lebih dari satu tanda yang dilampirkan, konteks permintaan mencakup satu kunci aws:PrincipalTag
untuk setiap kunci tanda yang dilampirkan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika prinsipal menggunakan IAM pengguna dengan tag yang disematkan. Ini disertakan untuk prinsipal yang menggunakan IAM peran dengan tag terlampir atau tag sesi. Permintaan anonim tidak menyertakan kunci ini.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Anda dapat menambahkan atribut khusus ke pengguna atau peran dalam bentuk pasangan nilai kunci. Untuk informasi selengkapnya tentang IAM tag, lihatTag untuk AWS Identity and Access Management sumber daya. Anda dapat menggunakan aws:PrincipalTag
untuk mengontrol akses untuk prinsipal AWS
.
Contoh ini menunjukkan bagaimana Anda bisa membuat kebijakan berbasis identitas yang memungkinkan pengguna dengan department=hr
tag mengelola IAM pengguna, grup, atau peran. Untuk menggunakan kebijakan ini, ganti italicized placeholder text
dalam contoh kebijakan dengan informasi Anda sendiri. Lalu, ikuti petunjuk di buat kebijakan atau ubah kebijakan.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/
department
": "hr
" } } } ] }
aws: PrincipalIs AWSService
Gunakan kunci ini untuk memeriksa apakah panggilan ke sumber daya Anda sedang dilakukan secara langsung oleh prinsipal AWS layanan. Misalnya, AWS CloudTrail gunakan prinsipal layanan cloudtrail.amazonaws.com
untuk menulis log ke bucket Amazon S3 Anda. Kunci konteks permintaan diatur ke benar ketika layanan menggunakan prinsipal layanan untuk melakukan tindakan langsung pada sumber daya Anda. Kunci konteks diatur ke salah jika layanan menggunakan kredensi IAM prinsipal untuk membuat permintaan atas nama prinsipal. Itu juga diatut ke salah jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.
-
Ketersediaan — Kunci ini tersedia dalam konteks permintaan untuk semua permintaan yang ditandatangani API yang menggunakan AWS kredensial. Permintaan anonim tidak menyertakan kunci ini.
-
Tipe data — Boolean
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci kondisi ini untuk membatasi akses ke identitas tepercaya dan lokasi jaringan yang diharapkan sewaktu memberikan akses aman ke AWS layanan.
Dalam contoh kebijakan bucket Amazon S3 berikut, akses ke bucket dibatasi kecuali permintaan berasal dari vpc-111bbb22
atau dari prinsipal layanan, seperti. CloudTrail
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }
Dalam video berikut, pelajari selengkapnya tentang cara menggunakan kunci kondisi aws:PrincipalIsAWSService
dalam kebijakan.
aws: PrincipalServiceName
Gunakan kunci ini untuk membandingkan nama prinsipal layanan dalam kebijakan dengan prinsipal layanan yang membuat permintaan untuk sumber daya Anda. Anda dapat menggunakan kunci ini untuk memeriksa apakah panggilan ini dibuat oleh prinsipal layanan tertentu. Ketika prinsipal layanan membuat permintaan langsung ke sumber daya Anda,kunci aws:PrincipalServiceName
berisi nama prinsipal layanan. Misalnya, nama utama AWS CloudTrail layanan adalahcloudtrail.amazonaws.com
.
-
Ketersediaan — Kunci ini tersedia dalam permintaan saat panggilan dibuat oleh prinsipal AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:
-
Jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.
-
Jika layanan menggunakan kredensil IAM prinsipal untuk mengajukan permintaan atas nama prinsipal.
-
Jika panggilan dilakukan secara langsung oleh IAM prinsipal.
-
Jika panggilan dilakukan oleh pemohon anonim.
-
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci kondisi ini untuk membatasi akses ke identitas tepercaya dan lokasi jaringan yang diharapkan sewaktu memberikan akses aman ke layanan. AWS
Dalam contoh kebijakan bucket Amazon S3 berikut, akses ke bucket dibatasi kecuali permintaan berasal dari vpc-111bbb22
atau dari prinsipal layanan, seperti. CloudTrail
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }
aws: PrincipalServiceNamesList
Kunci ini menyediakan daftar semua nama prinsipal layanan yang termasuk dalam layanan. Ini adalah kunci kondisi lanjutan. Anda dapat menggunakannya untuk membatasi layanan dari mengakses sumber daya Anda hanya dari Wilayah tertentu. Beberapa layanan dapat membuat prinsipal layanan Regional untuk menunjukkan instans layanan tertentu dalam Wilayah tertentu. Anda dapat membatasi akses ke sumber daya untuk instans layanan tertentu. Saat prinsipal layanan membuat permintaan langsung ke sumber daya Anda, aws:PrincipalServiceNamesList
berisi daftar seluruh nama prinsipal layanan yang tidak diurutkan yang terkait dengan instans Regional layanan.
-
Ketersediaan — Kunci ini tersedia dalam permintaan saat panggilan dibuat oleh prinsipal AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:
-
Jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.
-
Jika layanan menggunakan kredensil IAM prinsipal untuk mengajukan permintaan atas nama prinsipal.
-
Jika panggilan dilakukan secara langsung oleh IAM prinsipal.
-
Jika panggilan dilakukan oleh pemohon anonim.
-
-
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
aws:PrincipalServiceNamesList
adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan ForAnyValue
atau ForAllValues
mengatur operator dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.
aws: PrincipalType
Gunakan kunci ini untuk membandingkan tipe prinsipal yang membuat permintaan dengan tipe prinsipal yang Anda sebutkan dalam kebijakan. Untuk informasi selengkapnya, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal
kunci, lihatNilai-nilai kunci utama.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
aws:userid
Gunakan kunci ini untuk membandingkan pengenal prinsipal pemohon dengan ID yang Anda tentukan dalam kebijakan. Untuk IAM pengguna, nilai konteks permintaan adalah ID pengguna. Untuk IAM peran, format nilai ini dapat bervariasi. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal
kunci, lihatNilai-nilai kunci utama.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
aws:username
Gunakan kunci ini untuk membandingkan nama pengguna pemohon dengan nama pengguna yang Anda sebutkan dalam kebijakan. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal
kunci, lihatNilai-nilai kunci utama.
-
Ketersediaan — Kunci ini selalu disertakan dalam konteks permintaan untuk IAM pengguna. Permintaan dan permintaan anonim yang dibuat menggunakan Pengguna root akun AWS atau IAM peran tidak mencakup kunci ini. Permintaan yang dibuat menggunakan kredensil Pusat IAM Identitas tidak mencakup kunci ini dalam konteks.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Properti sesi peran
Gunakan tombol kondisi berikut untuk membandingkan properti sesi peran pada saat sesi dibuat. Kunci kondisi ini hanya tersedia jika permintaan dibuat oleh prinsipal dengan sesi peran atau kredenal pengguna gabungan. Nilai untuk kunci kondisi ini disematkan dalam token sesi peran.
Peran adalah jenis kepala sekolah. Anda juga dapat menggunakan kunci kondisi dari Sifat-sifat kepala sekolah bagian untuk mengevaluasi properti peran saat peran membuat permintaan.
Daftar Isi
- aws: AssumedRoot
- aws: FederatedProvider
- aws: TokenIssueTime
- aws: MultiFactorAuthAge
- aws: MultiFactorAuthPresent
- aws: ChatbotSourceArn
- AWS: EC2 InstanceSourceVpc
- AWS: EC2 InstanceSourcePrivate IPv4
- aws: SourceIdentity
- EC2: RoleDelivery
- EC2: SourceInstanceArn
- lem: RoleAssumedBy
- lem: CredentialIssuingService
- lambda: SourceFunctionArn
- ssm: SourceInstanceArn
- toko identitas: UserId
aws: AssumedRoot
Gunakan kunci ini untuk memeriksa apakah permintaan dilakukan menggunakan AssumeRoot. AssumeRoot
mengembalikan kredensi jangka pendek untuk sesi pengguna root istimewa yang dapat Anda gunakan untuk mengambil tindakan istimewa pada akun anggota di organisasi Anda. Untuk informasi selengkapnya, lihat Kelola akses root untuk akun anggota secara terpusat.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredenal dari AssumeRootuntuk membuat permintaan.
-
Tipe data — Boolean
-
Jenis nilai - Bernilai tunggal
Dalam contoh berikut, kebijakan tersebut menolak AssumeRoot
sesi menghapus kebijakan bucket Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAssumeRoot", "Effect": "Deny", "Action": "s3:DeleteBucketPolicy", "Resource": "*", "Condition": { "StringEqualsIfExists": { "aws:AssumedRoot": "true" } } } ] }
aws: FederatedProvider
Gunakan kunci ini untuk membandingkan penyedia identitas penerbit (iDP) dengan idP yang Anda sebutkan dalam kebijakan. Ini berarti bahwa IAM peran diasumsikan menggunakan AssumeRoleWithWebIdentity
AWS STS operasi. Bila kredensi sementara sesi peran yang dihasilkan digunakan untuk membuat permintaan, konteks permintaan mengidentifikasi IDP yang mengautentikasi identitas federasi asli.
-
Ketersediaan — Kunci ini hadir ketika prinsipal adalah kepala sesi peran dan sesi itu dikeluarkan ketika peran diasumsikan
AssumeRoleWithWebIdentity
. -
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Misalnya, jika pengguna diautentikasi melalui Amazon Cognito, konteks permintaan mencakup nilai. cognito-identity.amazonaws.com
Demikian pula, jika pengguna diautentikasi melalui Login with Amazon, konteks permintaan mencakup nilaiwww.amazon.com
.
Anda dapat menggunakan kunci kondisi bernilai tunggal apa pun sebagai variabel. Contoh kebijakan berbasis sumber daya berikut menggunakan aws:FederatedProvider
kunci sebagai variabel kebijakan dalam sumber daya. ARN Kebijakan ini memungkinkan prinsipal mana pun yang melakukan autentikasi menggunakan IdP agar objek keluar dari bucket Amazon S3 dengan jalur yang spesifik untuk penyedia identitas yang menerbitkan.
aws: TokenIssueTime
Gunakan kunci ini untuk membandingkan tanggal dan waktu saat kredensial keamanan sementara dikeluarkan dengan tanggal dan waktu yang Anda tentukan dalam kebijakan.
-
Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kuncinya tidak ada di AWS CLI, AWS API, atau AWS SDK permintaan yang dibuat menggunakan kunci akses.
-
Tipe data - Tanggal
-
Jenis nilai - Bernilai tunggal
Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat AWS layanan yang bekerja dengan IAM.
aws: MultiFactorAuthAge
Gunakan kunci ini untuk membandingkan jumlah detik sejak prinsipal yang meminta diberi kewenangan menggunakan nomor MFA yang Anda sebutkan dalam kebijakan. Untuk informasi lebih lanjut tentangMFA, lihatAWS Otentikasi multi-faktor di IAM.
penting
Kunci kondisi ini tidak ada untuk identitas gabungan atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani AWS CLI, AWS API, atau AWS SDK permintaan. Untuk mempelajari selengkapnya tentang menambahkan MFA perlindungan ke API operasi dengan kredensil keamanan sementara, lihat. APIAkses aman dengan MFA
Untuk memeriksa MFA apakah digunakan untuk memvalidasi identitas IAM federasi, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke tag sesi AWS . Untuk detailnya, lihat Lulus tag sesi di AWS STS. MFAUntuk menerapkan IAM identitas Pusat Identitas, Anda dapat mengaktifkan atribut untuk kontrol akses untuk meneruskan klaim SAML pernyataan dengan metode otentikasi dari penyedia identitas Anda ke Pusat Identitas. IAM
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredenal keamanan sementara untuk membuat permintaan. Kebijakan dengan MFA ketentuan dapat dilampirkan ke:
-
Pengguna atau grup IAM
-
Sumber daya seperti bucket Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, SQS antrean Amazon SNS
-
Kebijakan kepercayaan dari IAM peran yang dapat diasumsikan oleh pengguna
-
-
Tipe data - Numerik
-
Jenis nilai - Bernilai tunggal
aws: MultiFactorAuthPresent
Gunakan kunci ini untuk memeriksa apakah Multi-Factor Authentication (MFA) digunakan untuk memvalidasi kredenal keamanan sementara yang membuat permintaan.
penting
Kunci kondisi ini tidak ada untuk identitas gabungan atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani AWS CLI, AWS API, atau AWS SDK permintaan. Untuk mempelajari selengkapnya tentang menambahkan MFA perlindungan ke API operasi dengan kredensil keamanan sementara, lihat. APIAkses aman dengan MFA
Untuk memeriksa MFA apakah digunakan untuk memvalidasi identitas IAM federasi, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke tag sesi AWS . Untuk detailnya, lihat Lulus tag sesi di AWS STS. MFAUntuk menerapkan IAM identitas Pusat Identitas, Anda dapat mengaktifkan atribut untuk kontrol akses untuk meneruskan klaim SAML pernyataan dengan metode otentikasi dari penyedia identitas Anda ke Pusat Identitas. IAM
-
Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kebijakan dengan MFA ketentuan dapat dilampirkan ke:
-
Pengguna atau grup IAM
-
Sumber daya seperti bucket Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, antrean Amazon S3, SQS antrean Amazon SNS
-
Kebijakan kepercayaan dari IAM peran yang dapat diasumsikan oleh pengguna
-
-
Tipe data — Boolean
-
Jenis nilai - Bernilai tunggal
Kredensi sementara digunakan untuk mengautentikasi IAM peran dan IAM pengguna dengan token sementara dari AssumeRoleatau GetSessionToken, dan pengguna. AWS Management Console
IAMKunci akses pengguna merupakan kredensi jangka panjang, tetapi dalam beberapa kasus, AWS membuat kredenal sementara atas nama IAM pengguna untuk melakukan operasi. Dalam kasus ini, kunci aws:MultiFactorAuthPresent
tersedia dalam permintaan dan diatur ke nilai false
. Ada dua kasus umum hal ini bisa terjadi:
-
IAMPengguna di tempat AWS Management Console tanpa sengaja menggunakan kredensi sementara. Pengguna masuk ke konsol menggunakan nama pengguna dan kata sandi yang merupakan kredensial jangka panjang. Namun, di latar belakang, konsol membuat kredensial sementara atas nama pengguna.
-
Jika IAM pengguna melakukan panggilan ke AWS layanan, layanan akan menggunakan kembali kredensi pengguna untuk membuat permintaan lain ke layanan lain. Misalnya, saat menghubungi Athena untuk mengakses bucket Amazon S3, atau saat AWS CloudFormation menggunakan untuk membuat instans Amazon. EC2 Untuk permintaan selanjutnya, AWS gunakan kredensi sementara.
Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat AWS layanan yang bekerja dengan IAM.
aws:MultiFactorAuthPresent
Kunci tidak tersedia ketika CLI perintah API atau disebut kredenal jangka panjang, seperti pasangan kunci akses pengguna. Oleh karena itu, kami merekomendasikan bahwa ketika Anda memeriksa kunci ini, Anda menggunakan versi ...IfExists
dari operator kondisi.
Penting untuk dipahami bahwa Condition
elemen berikut bukan merupakan suatu cara yang andal untuk memastikan apakah permintaan diautentikasi menggunakanMFA.
##### WARNING: NOT RECOMMENDED #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
Kombinasi dari Deny
efek, Bool
elemen, dan false
nilai ini menghalangi permintaan yang dapat diautentikasi menggunakanMFA, tetapi tidak. Ini hanya berlaku untuk kredensi sementara yang mendukung penggunaan. MFA Pernyataan ini tidak menolak akses ke permintaan yang dibuat menggunakan kredensi jangka panjang, atau permintaan yang diautentikasi menggunakan. MFA Gunakan contoh ini dengan hati-hati karena logikanya rumit dan tidak menguji apakah MFA autentikasi benar-benar digunakan.
Jangan juga menggunakan kombinasi efek Deny
, elemen Null
, dan true
karena contoh berperilaku dengan cara yang sama dan logikanya bahkan lebih rumit.
Kombinasi yang Direkomendasikan
Kami sarankan Anda menggunakan BoolIfExistsoperator untuk memeriksa apakah permintaan teraotentikasi menggunakanMFA.
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
Kombinasi iniDeny
,BoolIfExists
, dan false
menolak permintaan yang tidak diautentikasi menggunakan. MFA Secara khusus, operator ini menolak permintaan dari kredensil sementara yang tidak disertakan. MFA Operator ini juga menolak permintaan yang dibuat menggunakan kredensi jangka panjang, seperti AWS API operasi AWS CLI atau operasi yang dilakukan menggunakan kunci akses. Operator *IfExists
memeriksa keberadaan kunci aws:MultiFactorAuthPresent
dan apakah bisa tersedia atau tidak, sebagaimana yang ditunjukkan oleh keberadaannya. Gunakan ini saat Anda ingin menolak permintaan apa pun yang tidak diautentikasi menggunakanMFA. Tindakan ini lebih aman, tetapi dapat memecahkan kode atau skrip apa pun yang menggunakan kunci akses untuk mengakses AWS CLI atau AWS
API.
Kombinasi Alternatif
Anda juga dapat menggunakan BoolIfExistsoperator untuk mengizinkan permintaan yang MFA diautentikasi dan AWS CLI atau AWS API permintaan yang dibuat menggunakan kredensi jangka panjang.
"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
Kondisi ini cocok jika kunci ada dan tersedia atau jika kunci tidak ada. KombinasiAllow
,BoolIfExists
, dan true
memungkinkan permintaan yang diautentikasi menggunakanMFA, atau permintaan yang tidak dapat diautentikasi menggunakan. MFA Ini berarti bahwa AWS CLI, AWS API, dan AWS SDK operasi diperbolehkan ketika pemohon menggunakan kunci akses jangka panjang mereka. Kombinasi ini tidak memungkinkan permintaan dari kredensil sementara yang bisa, tetapi tidak mencakup. MFA
Saat Anda membuat kebijakan menggunakan editor visual IAM konsol dan memilih yang MFAdiperlukan, kombinasi ini akan diterapkan. Pengaturan ini membutuhkan MFA akses konsol, tetapi memungkinkan akses terprogram tanpaMFA.
Atau, Anda dapat menggunakan Bool
operator untuk mengizinkan permintaan terprogram dan konsol saat diautentikasi menggunakan. MFA
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
Kombinasi dariAllow
,Bool
, dan hanya true
memungkinkan permintaan yang MFA diautentikasi. Ini hanya berlaku untuk kredensi sementara yang mendukung penggunaan. MFA Pernyataan ini tidak memungkinkan akses ke permintaan yang dilakukan menggunakan access key jangka panjang, atau untuk permintaan yang dilakukan menggunakan kredenal sementara tanpa. MFA
Jangan gunakan susunan kebijakan yang serupa dengan yang berikut ini untuk memastikan adanya MFA kunci atau tidak:
##### WARNING: USE WITH CAUTION #####
"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
Kombinasi dari Allow
efek, Null
elemen, dan false
nilai ini hanya memungkinkan permintaan yang dapat diautentikasi menggunakanMFA, terlepas dari apakah permintaan tersebut benar-benar diautentikasi. Ini memungkinkan semua permintaan yang dibuat menggunakan kredensial sementara, dan menolak akses untuk kredensial jangka panjang. Gunakan contoh ini dengan hati-hati karena tidak menguji apakah MFA -authentication benar-benar digunakan.
aws: ChatbotSourceArn
Gunakan kunci ini untuk membandingkan konfigurasi obrolan sumber yang ARN diatur oleh prinsipal ke konfigurasi obrolan yang ARN Anda sebutkan dalam kebijakan IAM peran yang terkait dengan konfigurasi channel. Anda dapat mengotorisasi permintaan berdasarkan sesi peran asumsikan yang dimulai oleh. AWS Chatbot
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan oleh AWS Chatbot layanan setiap kali sesi peran diasumsikan. Nilai kuncinya adalah konfigurasi obrolanARN, seperti saat Anda menjalankan AWS CLI perintah dari saluran obrolan.
-
Tipe data - ARN
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh -
arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel
Kebijakan berikut menolak permintaan Amazon S3 menempatkan pada bucket yang ditentukan untuk semua permintaan yang berasal dari saluran Slack.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleS3Deny", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws::s3:::amzn-s3-demo-bucket/*", "Condition": { "StringLike": { "aws:ChatbotSourceArn": "arn:aws::chatbot::*:chat-configuration/slack-channel/*" } } } ] }
AWS: EC2 InstanceSourceVpc
Kunci ini mengidentifikasi VPC ke mana kredensi EC2 IAM peran Amazon dikirimkan. Anda dapat menggunakan kunci ini dalam kebijakan dengan kunci aws:SourceVPCglobal untuk memeriksa apakah panggilan dibuat dari VPC (aws:SourceVPC
) yang cocok dengan VPC tempat kredensi dikirimkan ke (aws:Ec2InstanceSourceVpc
).
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi EC2 peran Amazon. Ini dapat digunakan dalam IAM kebijakan, kebijakan kontrol layanan, kebijakan VPC titik akhir, dan kebijakan sumber daya.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Kunci ini dapat digunakan dengan nilai VPC pengenal, tetapi paling berguna bila digunakan sebagai variabel yang dikombinasikan dengan kunci aws:SourceVpc
konteks. Kunci aws:SourceVpc
konteks disertakan dalam konteks permintaan, hanya jika pemohon menggunakan VPC titik akhir untuk membuat permintaan. Menggunakan aws:Ec2InstanceSourceVpc
dengan aws:SourceVpc
memungkinkan Anda untuk menggunakan aws:Ec2InstanceSourceVpc
lebih luas karena membandingkan nilai yang biasanya berubah bersama.
catatan
Kunci kondisi ini tidak tersedia di EC2 -Classic.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSameVPC", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
Pada contoh di atas, akses ditolak jika aws:SourceVpc
nilainya tidak sama dengan aws:Ec2InstanceSourceVpc
nilainya. Pernyataan kebijakan dibatasi hanya pada peran yang digunakan sebagai peran EC2 instans Amazon dengan menguji keberadaan kunci ec2:SourceInstanceARN
kondisi.
Kebijakan ini digunakan aws:ViaAWSService
AWS untuk mengizinkan otorisasi permintaan saat permintaan dibuat atas nama peran EC2 instans Amazon Anda. Misalnya, saat Anda membuat permintaan dari EC2 instans Amazon ke bucket Amazon S3 terenkripsi, Amazon S3 melakukan panggilan atas nama Anda. AWS KMS Beberapa kunci tidak ada saat permintaan dibuat AWS KMS.
AWS: EC2 InstanceSourcePrivate IPv4
Kunci ini mengidentifikasi IPv4 alamat pribadi dari elastisitas network interface utama tempat kredensi EC2 IAM peran Amazon dikirimkan. Anda harus menggunakan kunci kondisi ini dengan kunci pendampingnya aws:Ec2InstanceSourceVpc
untuk memastikan bahwa Anda memiliki kombinasi VPC ID dan IP pribadi sumber yang unik secara global. Gunakan kunci ini aws:Ec2InstanceSourceVpc
untuk memastikan bahwa permintaan dibuat dari alamat IP pribadi yang sama dengan yang dikirimkan kredensialnya.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi EC2 peran Amazon. Ini dapat digunakan dalam IAM kebijakan, kebijakan kontrol layanan, kebijakan VPC titik akhir, dan kebijakan sumber daya.
-
Tipe data — alamat IP
-
Jenis nilai - Bernilai tunggal
penting
Kunci ini tidak boleh digunakan sendiri dalam sebuah Allow
pernyataan. Alamat IP pribadi menurut definisi tidak unik secara global. Anda harus menggunakan aws:Ec2InstanceSourceVpc
kunci setiap kali Anda menggunakan aws:Ec2InstanceSourcePrivateIPv4
kunci untuk menentukan kredensi EC2 instans Amazon VPC Anda dapat digunakan.
catatan
Kunci kondisi ini tidak tersedia di EC2 -Classic.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
aws: SourceIdentity
Gunakan kunci ini untuk membandingkan identitas sumber yang ditetapkan oleh prinsipal dengan identitas sumber yang Anda tentukan dalam kebijakan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setelah identitas sumber diatur saat peran diasumsikan menggunakan CLI perintah atau operasi AWS STS assume-role. AWS STS
AssumeRole
API -
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci ini dalam kebijakan untuk mengizinkan tindakan AWS berdasarkan prinsipal yang sudah menetapkan identitas sumber ketika mengasumsikan peran. Aktivitas untuk identitas sumber yang ditentukan peran muncul diAWS CloudTrail. Ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran dalam AWS.
Tidak seperti sts:RoleSessionName, setelah identitas sumber diatur, nilai tidak dapat diubah. Ini terdapat dalam konteks permintaan untuk semua tindakan yang diambil oleh peran. Nilai tetap ada dalam sesi peran berikutnya saat Anda menggunakan kredenal sesi untuk mengasumsikan peran lain. Mengasumsikan satu peran dari peran lain disebut rantai peran.
sts:SourceIdentityKuncinya hadir dalam permintaan ketika prinsipal awalnya menetapkan identitas sumber sambil mengasumsikan peran menggunakan perintah peran apa pun AWS STS , atau operasiCLI. AWS STS
AssumeRole
API Kunci aws:SourceIdentity
tersedia dalam permintaan untuk tindakan apa pun yang diambil dengan sesi peran yang menetapkan identitas sumber.
Kebijakan kepercayaan peran berikut untuk CriticalRole
dalam akun 111122223333
berisi kondisi untuk aws:SourceIdentity
yang mencegah prinsipal tanpa identitas sumber yang diatur ke Saanvi atau Diego dari mengasumsikan peran.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }
Untuk informasi selengkapnya tentang menggunakan informasi identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.
EC2: RoleDelivery
Gunakan kunci ini untuk membandingkan versi layanan metadata instans dalam permintaan yang ditandatangani dengan kredenal IAM peran untuk Amazon. EC2 Layanan metadata instans membedakan antara IMDSv1 dan IMDSv2 permintaan berdasarkan apakah, untuk permintaan tertentu, baik itu GET
header PUT
atau yang unik untukIMDSv2, ada dalam permintaan itu.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh EC2 instans Amazon.
-
Tipe data - Numerik
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh - 1.0, 2.0
Anda dapat mengonfigurasi Layanan Metadata Instance (IMDS) pada setiap instans sehingga harus digunakan oleh kode lokal atau pengguna. IMDSv2 Saat Anda menentukan yang IMDSv2 harus digunakan, IMDSv1 tidak lagi berfungsi.
-
Layanan Metadata Instans Versi 1 (IMDSv1) - Metode permintaan/tanggapan
-
Layanan Metadata Instans Versi 2 (IMDSv2) — metode berorientasi sesi
Untuk informasi tentang cara mengonfigurasi instans yang akan digunakanIMDSv2, lihat Mengonfigurasi opsi metadata instans.
Dalam contoh berikut, akses ditolak jika RoleDelivery nilai ec2: dalam konteks permintaan adalah 1.0 (IMDSv1). Pernyataan kebijakan ini dapat diterapkan secara umum karena, jika permintaan tidak ditandatangani oleh kredensi EC2 peran Amazon, tidak ada dampak yang terjadi.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireAllEc2RolesToUseV2", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NumericLessThan": { "ec2:RoleDelivery": "2.0" } } } ] }
Untuk informasi lebih lanjut, lihat Contoh kebijakan dalam bekerja dengan metadata instans.
EC2: SourceInstanceArn
Gunakan kunci ini untuk membandingkan contoh dari mana sesi peran dihasilkan. ARN
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh EC2 instans Amazon.
-
Tipe data - ARN
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh — arn:aws: :us-west- 2:1111111111111111:instance/instance-id
Untuk contoh kebijakan, lihat Pengabulan sebuah instans tertentu untuk melihat sumber daya di AWS layanan lainnya.
lem: RoleAssumedBy
AWS Glue Layanan menetapkan kunci kondisi ini untuk setiap AWS API permintaan di mana AWS Glue membuat permintaan menggunakan peran layanan atas nama pelanggan (bukan oleh pekerjaan atau titik akhir pengembang, tetapi langsung oleh AWS Glue layanan). Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue layanan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat AWS Glue mengajukan permintaan menggunakan peran layanan atas nama pelanggan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh - Kunci ini selalu diatur ke
glue.amazonaws.com
.
Contoh berikut menambahkan kondisi untuk mengizinkan AWS Glue layanan mendapatkan objek dari bucket Amazon S3.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }
lem: CredentialIssuingService
AWS Glue Layanan menetapkan kunci ini untuk setiap AWS API permintaan menggunakan peran layanan yang berasal dari pekerjaan atau titik akhir pengembang. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue pekerjaan atau titik akhir pengembang.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat AWS Glue membuat permintaan yang berasal dari titik akhir pekerjaan atau pengembang.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh - Kunci ini selalu diatur ke
glue.amazonaws.com
.
Contoh berikut menambahkan kondisi yang melekat pada IAM peran yang digunakan oleh AWS Glue pekerjaan. Ini memastikan tindakan tertentu diizinkan/ditolak berdasarkan apakah sesi peran digunakan untuk lingkungan runtime AWS Glue pekerjaan.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }
lambda: SourceFunctionArn
Gunakan kunci ini untuk mengidentifikasi fungsi Lambda tempat ARN kredensil IAM peran dikirimkan. Layanan Lambda menetapkan kunci ini untuk setiap AWS API permintaan yang berasal dari lingkungan eksekusi fungsi Anda. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari kode fungsi Lambda tertentu. Lambda juga menetapkan kunci ini untuk beberapa permintaan yang datang dari luar lingkungan eksekusi, seperti menulis log ke CloudWatch dan mengirim jejak ke X-Ray.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali kode fungsi Lambda dipanggil.
-
Tipe data - ARN
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh - arn:aws:lambda:us-east- 1:123456789012:function: TestFunction
Contoh berikut memungkinkan satu fungsi Lambda tertentu untuk s3:PutObject
mengakses bucket yang ditentukan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnEquals": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }
Untuk informasi selengkapnya, lihat Bekerja dengan kredenal lingkungan eksekusi Lambda di Panduan Pengembang.AWS Lambda
ssm: SourceInstanceArn
Gunakan kunci ini untuk mengidentifikasi instance AWS Systems Manager terkelola ARN yang dikirimkan ke kredensil IAM peran. Kunci kondisi ini tidak ada saat permintaan berasal dari instans yang dikelola dengan IAM peran yang terkait dengan profil EC2 instans Amazon.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika kredensi peran dikirimkan ke instans AWS Systems Manager terkelola.
-
Tipe data - ARN
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh — arn:aws: :us-west- 2:1111111111111111:instance/instance-id
toko identitas: UserId
Gunakan kunci ini untuk membandingkan IAM identitas tenaga kerja Pusat Identitas dalam permintaan yang ditandatangani dengan identitas yang ditentukan dalam kebijakan.
-
Ketersediaan — Kunci ini disertakan ketika pemanggil permintaan adalah pengguna di Pusat IAM Identitas.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
-
Nilai contoh — 94482488-3041-7026-18f3-be45837cd0e4
Anda dapat menemukan pengguna di Pusat IAM Identitas dengan membuat permintaan untuk GetUserIdAPImenggunakan AWS CLI, AWS API, atau AWS SDK. UserId
Properti jaringan
Gunakan tombol kondisi berikut untuk membandingkan detail tentang jaringan tempat permintaan berasal atau diteruskan dengan properti jaringan yang Anda tentukan dalam kebijakan.
aws: SourceIp
Gunakan kunci ini untuk membandingkan alamat IP pemohon dengan alamat IP yang Anda tentukan dalam kebijakan. Kunci kondisi aws:SourceIp
hanya dapat digunakan untuk rentang alamat IP publik.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, kecuali saat pemohon menggunakan VPC titik akhir untuk membuat permintaan.
-
Tipe data — alamat IP
-
Jenis nilai - Bernilai tunggal
Kunci kondisi aws:SourceIp
dapat digunakan dalam kebijakan yang memungkinkan prinsipal hanya membuat permintaan dari rentang IP yang ditetapkan.
catatan
aws:SourceIp
mendukung keduanya IPv4 dan IPv6 alamat atau rentang alamat IP. Untuk daftar dukungan Layanan AWS tersebutIPv6, lihat dukungan Layanan AWS tersebut IPv6 di Panduan VPC Pengguna Amazon.
Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke peran. IAM Kebijakan ini memungkinkan pengguna memasukkan objek ke dalam bucket amzn-s3-demo-bucket3
Amazon S3 jika mereka membuat panggilan dari rentang IPv4 alamat tertentu. Kebijakan ini juga memungkinkan AWS layanan yang digunakan Teruskan sesi akses untuk melakukan operasi ini atas nama Anda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": "
203.0.113.0/24
" } } } ] }
Jika Anda perlu membatasi akses dari jaringan yang mendukung keduanya IPv4 dan IPv6 pengalamatan, Anda dapat menyertakan IPv4 dan IPv6 alamat atau rentang alamat IP dalam kondisi IAM kebijakan. Kebijakan berbasis identitas berikut akan memungkinkan pengguna untuk memasukkan objek ke dalam bucket amzn-s3-demo-bucket3
Amazon S3 jika pengguna melakukan panggilan dari rentang yang ditentukan atau alamat. IPv4 IPv6 Sebelum Anda memasukkan rentang IPv6 alamat dalam IAM kebijakan Anda, verifikasi bahwa Layanan AWS Anda bekerja dengan dukunganIPv6. Untuk daftar dukungan Layanan AWS tersebutIPv6, lihat dukungan Layanan AWS tersebut IPv6 di Panduan VPC Pengguna Amazon.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "
203.0.113.0/24
", "2001:DB8:1234:5678::/64
" ] } } } ] }
Jika permintaan berasal dari host yang menggunakan VPC titik akhir Amazon, aws:SourceIp
kunci tidak tersedia. Sebagai gantinya, Anda harus menggunakan kunci VPC -specific seperti aws: VpcSourceIp. Untuk informasi selengkapnya tentang penggunaan VPC titik akhir, lihat Identitas dan manajemen akses untuk layanan VPC titik akhir dan VPC titik akhir di Panduan.AWS PrivateLink
aws: SourceVpc
Gunakan kunci ini untuk memeriksa apakah permintaan berjalan melalui VPC titik akhir VPC yang disematkan. Dalam kebijakan, Anda dapat menggunakan kunci ini untuk memungkinkan akses hanya ke kunci tertentuVPC. Untuk informasi selengkapnya, lihat Membatasi Akses ke Spesifik VPC di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan VPC titik akhir untuk membuat permintaan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Dalam kebijakan, Anda dapat menggunakan kunci ini untuk memungkinkan atau membatasi akses ke kunci tertentuVPC.
Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke IAM peran yang akan ditolak PutObject
ke bucket amzn-s3-demo-bucket3
Amazon S3, kecuali permintaan dibuat dari VPC ID yang ditentukan atau dengan Layanan AWS itu gunakan sesi akses teruskan (FAS) untuk membuat permintaan atas nama peran. Berbeda denganaws: SourceIp, Anda harus menggunakan AWS: V iaAWSService atau aws: CalledVia mengizinkan FAS permintaan, karena VPC sumber permintaan awal tidak dipertahankan.
catatan
Kebijakan ini tidak mengizinkan tindakan apa pun. Gunakan kebijakan ini bersama dengan kebijakan lain yang mengizinkan tindakan tertentu.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutObjectIfNotVPCID", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-1234567890abcdef0" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
Untuk contoh cara menerapkan kunci ini dalam kebijakan berbasis sumber daya, lihat Membatasi akses ke spesifik di VPC Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
aws: SourceVpce
Gunakan kunci ini untuk membandingkan pengidentifikasi VPC endpoint dari permintaan dengan ID titik akhir yang Anda tentukan dalam kebijakan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan VPC titik akhir untuk membuat permintaan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Dalam kebijakan, Anda dapat menggunakan kunci ini untuk membatasi akses ke titik VPC akhir tertentu. Untuk informasi selengkapnya, lihat Membatasi akses ke yang spesifik VPC di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Sama halnya dengan menggunakanaws: SourceVpc, Anda harus menggunakan AWS: V iaAWSService atau aws: CalledVia mengizinkan permintaan yang dibuat dengan Layanan AWS menggunakan sesi akses teruskan (FAS). Ini karena VPC titik akhir sumber permintaan awal tidak dipertahankan.
aws: VpcSourceIp
Gunakan kunci ini untuk membandingkan alamat IP tempat permintaan dibuat dengan alamat IP yang Anda tentukan dalam kebijakan. Dalam kebijakan, kunci hanya cocok jika permintaan berasal dari alamat IP tertentu dan melalui titik VPC akhir.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika permintaan dibuat menggunakan VPC titik akhir.
-
Tipe data — alamat IP
-
Jenis nilai - Bernilai tunggal
Untuk informasi selengkapnya, lihat Mengontrol akses ke VPC titik akhir menggunakan kebijakan titik akhir di VPCPanduan Pengguna Amazon. Sama halnya dengan menggunakanaws: SourceVpc, Anda harus menggunakan AWS: V iaAWSService atau aws: CalledVia mengizinkan permintaan yang dibuat dengan Layanan AWS menggunakan sesi akses teruskan (FAS). Ini karena IP sumber dari permintaan awal yang dibuat menggunakan VPC titik akhir tidak disimpan dalam FAS permintaan.
catatan
aws:VpcSourceIp
mendukung keduanya IPv4 dan IPv6 alamat atau rentang alamat IP. Untuk daftar dukungan Layanan AWS tersebutIPv6, lihat dukungan Layanan AWS tersebut IPv6 di Panduan VPC Pengguna Amazon.
Kunci aws:VpcSourceIp
kondisi harus selalu digunakan bersama dengan salah satu aws:SourceVpc
atau tombol aws:SourceVpce
kondisi. Jika tidak, ada kemungkinan API panggilan dari yang tidak terduga VPC yang menggunakan IP CIDR yang sama atau tumpang tindih diizinkan oleh kebijakan. Hal ini dapat terjadi karena IP CIDRs dari dua yang tidak terkait VPCs bisa sama atau tumpang tindih. Sebaliknya, VPC IDs atau VPC Endpoint IDs harus digunakan dalam kebijakan karena mereka memiliki pengidentifikasi unik secara global. Pengidentifikasi unik ini memastikan bahwa hasil yang tidak terduga tidak akan terjadi.
Properti dari sumber daya
Gunakan kunci kondisi berikut untuk membandingkan detail sumber daya yang merupakan target permintaan dengan properti sumber daya yang Anda sebutkan dalam kebijakan.
aws: ResourceAccount
Gunakan kunci ini untuk membandingkan Akun AWS ID pemilik sumber daya yang diminta dengan akun sumber daya dalam kebijakan. Anda kemudian dapat mengizinkan atau menolak akses ke sumber daya tersebut berdasarkan akun yang memiliki sumber daya tersebut.
-
Ketersediaan — Kunci ini selalu disertakan dalam konteks permintaan untuk sebagian besar tindakan layanan. Tindakan berikut tidak mendukung kunci ini:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Block Store - Semua tindakan
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Layanan Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
catatan
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori Contoh Kebijakan Perimeter Data
Kunci ini sama dengan Akun AWS ID untuk akun dengan sumber daya yang dievaluasi dalam permintaan.
Untuk sebagian besar sumber daya di akun Anda, ARNberisi ID akun pemilik untuk sumber daya tersebut. Untuk sumber daya tertentu, seperti bucket Amazon S3, sumber daya ARN tidak menyertakan ID akun. Dua contoh berikut menunjukkan perbedaan antara sumber daya dengan ID akun diARN, dan Amazon S3 ARN tanpa ID akun:
-
arn:aws:iam::123456789012:role/AWSExampleRole
— IAM peran dibuat dan dimiliki dalam akun 123456789012. -
arn:aws:s3:::amzn-s3-demo-bucket2
- Bucket Amazon S3 dibuat dan dimiliki di dalam akun111122223333
, tidak ditampilkan di. ARN
Gunakan AWS konsol, atau, atau APICLI, untuk menemukan semua sumber daya Anda dan yang sesuaiARNs.
Anda menulis kebijakan yang menolak izin ke sumber daya berdasarkan ID akun pemilik sumber daya. Misalnya, kebijakan berbasis identitas berikut menolak akses ke sumber daya yang ditentukan jika sumber daya bukan milik akun yang ditentukan.
Untuk menggunakan kebijakan ini, ganti teks placeholder cetak miring dengan informasi akun Anda.
penting
Kebijakan ini tidak mengizinkan tindakan apa pun. Sebaliknya, ia menggunakan Deny
efek yang secara tegas menghalangi akses ke semua sumber daya yang tercantum dalam pernyataan yang bukan milik akun yang terdaftar. Gunakan kebijakan ini bersama dengan kebijakan lain yang mengizinkan akses ke sumber daya tertentu.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service
:region
:account
:*
" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account
" ] } } } ] }
Kebijakan ini menolak akses ke semua sumber daya untuk AWS layanan tertentu kecuali yang ditentukan Akun AWS memiliki sumber daya.
catatan
Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceAccount
dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.
AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan elemen aws:ResourceAccount
dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan.
Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat dokumentasi layanan Anda untuk informasi lebih lanjut.
aws: ResourceOrgPaths
Gunakan kunci ini untuk membandingkan jalur AWS Organizations untuk sumber daya yang diakses dengan jalur dalam kebijakan. Dalam kebijakan, kunci kondisi ini memastikan bahwa sumber daya milik anggota akun dalam akar organisasi atau unit organisasi (OUs) yang ditentukan di AWS Organizations. Jalur AWS Organizations adalah representasi teks dari struktur suatu entitas Organizations. Untuk informasi selengkapnya tentang cara menggunakan dan memahami jalur, lihat Memahami jalur entitas AWS Organizations
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika akun yang memiliki sumber daya merupakan anggota dari suatu organisasi. Kunci kepatuhan global ini tidak mendukung tindakan berikut:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Block Store - Semua tindakan
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Layanan Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
catatan
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori Contoh Kebijakan Perimeter Data
aws:ResourceOrgPaths
adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan ForAnyValue
atau ForAllValues
mengatur operator dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.
Misalnya, kondisi berikut mengembalikan True
sumber daya milik organisasio-a1b2c3d4e5
. Ketika Anda menyertakan wildcard, Anda harus menggunakan operator StringLikekondisi.
"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }
Kondisi berikut mengembalikan True
sumber daya dengan ID OUou-ab12-11111111
. Ini akan cocok dengan sumber daya yang dimiliki oleh akun yang dilampirkan pada OU ou-ab12-11111111 atau salah satu anak. OUs
"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}
Kondisi berikut mengembalikan sumber daya True
yang dimiliki oleh akun yang dilampirkan langsung ke ID OUou-ab12-22222222
, tetapi bukan anakOUs. Contoh berikut menggunakan operator StringEqualskondisi untuk menentukan persyaratan kecocokan yang tepat untuk ID OU dan bukan pencocokan wildcard.
"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
catatan
Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceOrgPaths
dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.
AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan aws:ResourceOrgPaths
kunci dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan. Anda dapat membuat kebijakan serupa untuk membatasi akses ke sumber daya dalam unit organisasi (OU) menggunakan aws:ResourceOrgPaths
kunci, sambil memperhitungkan sumber daya milik layanan.
Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat dokumentasi layanan Anda untuk informasi lebih lanjut.
aws: ResourceOrg ID
Gunakan kunci ini untuk membandingkan pengidentifikasi AWS organisasi di Organizations yang mana sumber daya yang diminta berada dengan pengidentifikasi yang ditentukan dalam kebijakan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika akun yang memiliki sumber daya merupakan anggota dari suatu organisasi. Kunci kepatuhan global ini tidak mendukung tindakan berikut:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Block Store - Semua tindakan
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Layanan Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
catatan
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori Contoh Kebijakan Perimeter Data
Kunci global ini mengembalikan ID organisasi sumber daya untuk permintaan yang diberikan. Ini memungkinkan Anda untuk membuat aturan yang berlaku untuk semua sumber daya dalam organisasi yang ditentukan dalam Resource
elemen kebijakan berbasis identitas. Anda dapat menentukan ID organisasi dalam elemen kondisi. Saat Anda menambah dan menghapus akun, kebijakan yang mencakup aws:ResourceOrgID
kunci akan secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbaruinya secara manual.
Misalnya, kebijakan berikut mencegah prinsipal menambahkan objek ke policy-genius-dev
sumber daya kecuali sumber daya Amazon S3 milik organisasi yang sama dengan prinsipal yang membuat permintaan.
penting
Kebijakan ini tidak mengizinkan tindakan apa pun. Sebaliknya, ia menggunakan Deny
efek yang secara tegas menghalangi akses ke semua sumber daya yang tercantum dalam pernyataan yang bukan milik akun yang terdaftar. Gunakan kebijakan ini bersama dengan kebijakan lain yang mengizinkan akses ke sumber daya tertentu.
{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:
partition
:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }
catatan
Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceOrgID
dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.
AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan aws:ResourceOrgID
kunci dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan. Anda dapat membuat kebijakan serupa untuk membatasi akses ke sumber daya dalam organisasi Anda menggunakan aws:ResourceOrgID
kunci, sambil memperhitungkan sumber daya milik layanan.
Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat dokumentasi layanan Anda untuk informasi lebih lanjut.
Dalam video berikut, pelajari selengkapnya tentang cara menggunakan kunci kondisi aws:ResourceOrgID
dalam kebijakan.
aws:ResourceTag/tag-kunci
Gunakan kunci ini untuk membandingkan pasangan nilai kunci tag yang Anda tentukan dalam kebijakan dengan pasangan nilai kunci yang disematkan ke sumber daya. Misalnya, Anda dapat meminta agar akses ke sumber daya hanya diperbolehkan jika sumber daya memiliki kunci tanda yang dilampirkan "Dept"
dengan nilai "Marketing"
. Untuk informasi selengkapnya, lihat Mengontrol akses ke sumber daya AWS.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan ketika sumber daya yang diminta sudah memiliki tag terlampir atau dalam permintaan yang membuat sumber daya dengan tag yang diminta sudah memiliki tag terlampir. Kunci ini hanya dikembalikan untuk sumber daya yang mendukung otorisasi berdasarkan tanda. Ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Kunci konteks ini diformat "aws:ResourceTag/
jika tag-key
":"tag-value
"tag-key
and tag-value
adalah kunci tag dan pasangan nilai. Kunci dan nilai tag tidak peka dengan huruf besar atau kecil. Ini berarti jika Anda menentukan "aws:ResourceTag/TagKey1": "Value1"
dalam elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda sumber daya bernama TagKey1
atau tagkey1
, tetapi tidak keduanya.
Untuk contoh menggunakan aws:ResourceTag
kunci untuk mengontrol akses ke IAM sumber daya, lihatMengontrol akses ke sumber daya AWS.
Untuk contoh menggunakan aws:ResourceTag
kunci untuk mengontrol akses ke AWS sumber daya lain, lihatMengontrol akses ke AWS sumber daya menggunakan tag.
Untuk tutorial tentang menggunakan kunci aws:ResourceTag
kondisi untuk atribut based access control (ABAC), lihatIAMtutorial: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag.
Properti permintaan
Gunakan kunci kondisi berikut untuk membandingkan detail permintaan itu sendiri dan konten permintaan dengan properti permintaan yang Anda sebutkan dalam kebijakan.
Daftar Isi
aws: CalledVia
Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan yang mengajukan permintaan atas nama IAM prinsipal (pengguna atau peran). Saat penanggung jawab mengajukan permintaan ke AWS layanan, layanan tersebut mungkin menggunakan kredensi penanggung jawab untuk melakukan permintaan selanjutnya ke layanan lain. Kunci aws:CalledVia
berisi daftar yang dipesan dari setiap layanan dalam rantai yang membuat permintaan atas nama utama.
Misalnya, Anda dapat menggunakan AWS CloudFormation untuk membaca dan menulis dari tabel Amazon DynamoDB. Kemudian DynamoDB akan menggunakan enkripsi yang disediakan AWS Key Management Service oleh ().AWS KMS
-
Ketersediaan — Kunci ini tersedia dalam permintaan saat layanan yang mendukung
aws:CalledVia
menggunakan kredenal IAM prinsipal untuk mengajukan permintaan ke layanan lain. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung. -
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
Untuk menggunakan kunci aws:CalledVia
kondisi dalam kebijakan, Anda harus menyediakan prinsipal layanan untuk mengizinkan atau menolak AWS permintaan layanan. AWS mendukung menggunakan prinsip layanan berikut dengan. aws:CalledVia
Pemimpin layanan |
---|
aoss.amazonaws.com |
athena.amazonaws.com |
backup.amazonaws.com |
cloud9.amazonaws.com |
cloudformation.amazonaws.com |
databrew.amazonaws.com |
dataexchange.amazonaws.com |
dynamodb.amazonaws.com |
imagebuilder.amazonaws.com |
kms.amazonaws.com |
mgn.amazonaws.com |
nimble.amazonaws.com |
omics.amazonaws.com |
ram.amazonaws.com |
robomaker.amazonaws.com |
servicecatalog-appregistry.amazonaws.com |
sqlworkbench.amazonaws.com |
ssm-guiconnect.amazonaws.com |
Untuk memungkinkan atau menolak akses ketika setiap layanan membuat permintaan dengan menggunakan kredensial prinsipal, gunakan kunci kondisi AWS: V iaAWSService
. Kunci kondisi mendukung AWS layanan.
Kunci aws:CalledVia
adalah tombol multinilai. Namun, Anda tidak dapat menerapkan perintah menggunakan kunci ini dalam suatu kondisi. Dengan menggunakan contoh di atas, Pengguna 1 membuat permintaan ke AWS CloudFormation, yang memanggil DynamoDB, yang memanggil. AWS KMS Ini adalah tiga permintaan terpisah. Panggilan terakhir AWS KMS dilakukan oleh Pengguna 1 melalui AWS CloudFormation lalu DynamoDB.
Dalam kasus ini, kunci aws:CalledVia
dalam konteks permintaan mencakup cloudformation.amazonaws.com
dan dynamodb.amazonaws.com
, dalam urutan tersebut. Jika Anda peduli bahwa panggilan telepon dilakukan melalui DynamoDB pada suatu bagian dalam rantai permintaan, Anda dapat menggunakan kunci kondisi ini dalam kebijakan Anda.
Misalnya, kebijakan berikut memungkinkan Anda mengelola AWS KMS kunci yang disebutkanmy-example-key
, tetapi hanya jika DynamoDB merupakan salah satu layanan yang meminta. Operator ForAnyValue:StringEquals
kondisi memastikan bahwa DynamoDB adalah salah satu layanan panggilan. Jika prinsipal langsung memanggil AWS KMS
, kondisi akan memberikan false
dan permintaan tersebut tidak diizinkan oleh kebijakan ini.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }
Jika Anda ingin memberlakukan layanan mana yang membuat panggilan pertama atau terakhir dalam rantai, Anda dapat menggunakan kunci aws:CalledViaFirst
dan aws:CalledViaLast
. Misalnya, kebijakan berikut memungkinkan pengelolaan kunci yang disebutkan my-example-key
dalam AWS KMS. AWS KMS Operasi ini hanya diperbolehkan jika beberapa permintaan disertakan dalam rantai. Permintaan pertama harus dilakukan melalui AWS CloudFormation dan yang terakhir melalui DynamoDB. Jika layanan lain membuat permintaan di tengah rantai, operasi masih diizinkan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }
aws:CalledViaLast
Kunci aws:CalledViaFirst
dan tersedia dalam permintaan ketika layanan menggunakan kredensi IAM prinsipal untuk menghubungi layanan lain. Mereka menunjukkan layanan pertama dan terakhir yang melakukan panggilan dalam rantai permintaan. Misalnya, asumsikan bahwa AWS CloudFormation panggilan layanan lain yang disebutkanX Service
, yang memanggil DynamoDB, yang kemudian memanggil. AWS KMS Panggilan terakhir ke AWS KMS dilakukan oleh User 1
via AWS CloudFormation, kemudianX Service
, dan kemudian DynamoDB. Ini pertama kali dipanggil melalui AWS CloudFormation dan terakhir dipanggil melalui DynamoDB.
aws: CalledViaFirst
Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan pertama yang mengajukan permintaan atas nama IAM prinsipal (pengguna atau peran). Untuk informasi selengkapnya, lihat aws:CalledVia
.
-
Ketersediaan — Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredenal dari IAM prinsipal untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
aws: CalledViaLast
Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan terakhir yang mengajukan permintaan atas nama IAM prinsipal (pengguna atau peran). Untuk informasi selengkapnya, lihat aws:CalledVia
.
-
Ketersediaan — Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredenal dari IAM prinsipal untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
AWS: V iaAWSService
Gunakan kunci ini untuk memeriksa apakah Layanan AWS membuat permintaan ke layanan lain atas nama Anda menggunakan sesi akses teruskan (FAS).
Kunci konteks permintaan ditampilkan true
saat layanan menggunakan sesi akses ke depan untuk mengajukan permintaan atas nama IAM prinsipal asli. Kunci konteks permintaan juga memberikan false
saat prisipal langsung memanggil.
-
Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.
-
Tipe data — Boolean
-
Jenis nilai - Bernilai tunggal
aws: CurrentTime
Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dengan tanggal dan waktu yang Anda sebutkan dalam kebijakan. Untuk melihat contoh kebijakan yang menggunakan kunci kondisi ini, lihat AWS: Mengizinkan akses berdasarkan tanggal dan waktu.
-
Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.
-
Tipe data - Tanggal
-
Jenis nilai - Bernilai tunggal
aws: EpochTime
Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dalam epoch atau waktu Unix dengan nilai yang Anda tentukan dalam kebijakan. Kunci ini juga menerima jumlah detik sejak 1 Januari 1970.
aws:referer
Gunakan kunci ini untuk membandingkan siapa yang mereferensikan permintaan di browser klien denga perujuk yang Anda tentukan dalam kebijakan. Nilai konteks aws:referer
permintaan diberikan oleh penelepon dalam HTTP header. Header Referer
disertakan dalam permintaan browser web saat Anda memilih tautan di halaman web. Referer
Header berisi halaman web tempat tautan dipilih. URL
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika permintaan AWS sumber daya dipanggil dengan menautkan dari halaman web URL di browser. Kunci ini tidak disertakan untuk permintaan terprogram karena tidak menggunakan tautan browser untuk mengakses sumber daya AWS .
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Misalnya, Anda dapat mengakses objek Amazon S3 secara langsung menggunakan URL atau menggunakan invokasi langsungAPI. Untuk informasi lebih lanjut, lihat APIOperasi Amazon S3 secara langsung menggunakan browser web. Saat Anda mengakses objek Amazon S3 dari URL yang ada di halaman web, dari halaman web, dari halaman web, URL dari halaman web sumber digunakan di. aws:referer
Ketika Anda mengakses objek Amazon S3 dengan mengetikkan URL ke peramban Anda, tidak aws:referer
tersedia. Saat Anda meminta secara API langsung, aws:referer
juga tidak ada. Anda dapat menggunakan kunci kondisi aws:referer
dalam kebijakan untuk memungkinkan permintaan yang dibuat dari perujuk spesifik, seperti tautan di halaman web dalam domain perusahaan Anda.
Awas
Kunci ini harus digunakan dengan hati-hati. Menyertakan nilai header perujuk yang diketahui publik bukanlah sesuatu yang aman. Pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan nilai aws:referer
yang mereka pilih. Sebagai hasilnya, tidak aws:referer
boleh digunakan untuk mencegah pihak yang tidak berwenang melakukan AWS permintaan langsung. Ini ditawarkan untuk memungkinkan pelanggan melindungi konten digital mereka, seperti konten yang disimpan di Amazon S3, agar tidak dirujuk pada pihak ketiga yang tidak berwenang.
aws: RequestedRegion
Gunakan kunci ini untuk membandingkan AWS Wilayah yang disebutkan dalam permintaan dengan Wilayah yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci kondisi global ini untuk mengontrol Wilayah mana yang dapat diminta. Untuk melihat AWS Wilayah untuk setiap layanan, lihat Titik akhir dan kuota Layanan di. Referensi Umum Amazon Web Services
-
Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Beberapa layanan global, sepertiIAM, memiliki satu titik akhir. Karena titik akhir ini berada secara fisik di Wilayah Timur AS (N. Virginia), IAM panggilan selalu dilakukan ke Wilayah us-east-1. Misalnya, jika Anda membuat kebijakan yang menolak akses ke semua layanan jika Wilayah yang diminta bukan wilayah us-west-2, panggilan selalu gagal. IAM Untuk melihat contoh cara bekerja di sekitar ini, lihat NotAction dengan Penolakan.
catatan
Kunci kondisi aws:RequestedRegion
ini memungkinkan Anda mengontrol titik akhir layanan yang dipilih tetapi tidak mengendalikan dampak operasi. Beberapa layanan memiliki dampak lintas Wilayah..
Misalnya, Amazon S3 memiliki API operasi yang mencakup seluruh wilayah.
-
Anda dapat meminta
s3:PutBucketReplication
di satu Wilayah (yang dipengaruhi oleh kunci kondisiaws:RequestedRegion
, tetapi Wilayah lainnya dipengaruhi berdasarkan pengaturan konfigurasi replikasi. -
Anda dapat memanggil
s3:CreateBucket
untuk membuat bucket di wilayah lain, dan menggunakan tombols3:LocationConstraint
kondisi untuk mengontrol wilayah yang berlaku.
Anda dapat menggunakan kunci konteks ini untuk membatasi akses ke AWS layanan dalam serangkaian Wilayah tertentu. Misalnya, kebijakan berikut memungkinkan pengguna untuk melihat semua EC2 instans Amazon di AWS Management Console. Namun, hal ini hanya memungkinkan mereka untuk membuat perubahan pada instans di Irlandia (eu-west-1), London (eu-west-2), atau Paris (eu-west-3).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }
aws:RequestTag/tag-kunci
Gunakan kunci ini untuk membandingkan pasangan nilai kunci tanda yang diteruskan dalam permintaan dengan pasangan tanda yang Anda sebutkan dalam kebijakan. Misalnya, Anda dapat memeriksa apakah permintaan tersebut menyertakan kunci tanda "Dept"
dan memiliki nilai "Accounting"
. Untuk informasi selengkapnya, lihat Mengontrol akses selama permintaan AWS.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika pasangan nilai kunci tanda diteruskan dalam permintaan. Ketika beberapa tanda diteruskan dalam permintaan, ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Kunci konteks ini diformat "aws:RequestTag/
jika tag-key
":"tag-value
"tag-key
and tag-value
adalah kunci tag dan pasangan nilai. Kunci dan nilai tag tidak peka dengan huruf besar atau kecil. Ini berarti jika Anda menentukan "aws:RequestTag/TagKey1": "Value1"
elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda permintaan bernama salah satu TagKey1
atautagkey1
, tetapi tidak keduanya.
Contoh ini menunjukkan bahwa meskipun kuncinya bernilai tunggal, Anda masih dapat menggunakan beberapa pasangan nilai kunci dalam permintaan jika kuncinya berbeda.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }
aws: TagKeys
Gunakan kunci ini untuk membandingkan kunci tanda dalam permintaan dengan kunci yang Anda sebutkan dalam kebijakan. Kami sarankan saat Anda menggunakan kebijakan untuk mengontrol akses menggunakan tag, gunakan kunci aws:TagKeys
kondisi untuk menentukan tipe kunci tanda yang diizinkan. Untuk contoh kebijakan dan informasi selengkapnya, lihat Mengontrol akses berdasarkan kunci tanda.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika operasi mendukung penerusan tag dalam permintaan.
-
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
Kunci konteks ini diformat "aws:TagKeys":"
jika tag-key
"tag-key
adalah daftar kunci tag tanpa nilai (misalnya, ["Dept","Cost-Center"]
).
Karena Anda dapat memasukkan beberapa pasangan nilai kunci tanda dalam permintaan, konten permintaan dapat berupa permintaan multinilai. Dalam hal ini, Anda harus menggunakan operator kumpulan ForAllValues
atau ForAnyValue
. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi.
Beberapa layanan mendukung penandaan dengan operasi sumber daya, seperti membuat, mengubah, atau menghapus sumber daya. Untuk memungkinkan penandaan dan operasi sebagai satu panggilan, Anda harus membuat kebijakan yang mencakup tindakan penandaan dan tindakan pemodifikasian sumber daya. Kemudian, Anda dapat menggunakan kunci kondisi aws:TagKeys
untuk menerapkan penggunaan kunci tanda tertentu dalam permintaan. Misalnya, untuk membatasi tag saat seseorang membuat EC2 snapshot Amazon, Anda harus menyertakan tindakan ec2:CreateSnapshot
pembuatan dan tindakan ec2:CreateTags
penandaan dalam kebijakan. Untuk melihat kebijakan skenario yang digunakan iniaws:TagKeys
, lihat Membuat Snapshot dengan Tag di Panduan EC2 Pengguna Amazon.
aws: SecureTransport
Gunakan kunci ini untuk memeriksa apakah permintaan dikirim menggunakanTLS. Konteks permintaan mengembalikan true
atau false
. Dalam kebijakan, Anda dapat mengizinkan tindakan tertentu hanya jika permintaan dikirim menggunakanTLS.
-
Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.
-
Tipe data — Boolean
-
Jenis nilai - Bernilai tunggal
aws: SourceAccount
Gunakan kunci ini untuk membandingkan ID akun sumber daya yang membuat service-to-service permintaan dengan ID akun yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang konfigurasi memicu service-to-service permintaan. Layanan panggilan melewati ID akun sumber daya asli ke layanan yang dipanggil.
catatan
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan hanya dapat mengakses sumber daya jika permintaan berasal dari akun tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya berikut (RCP) untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali jika dipicu oleh sumber daya di akun yang ditentukan. Kebijakan ini menerapkan kontrol hanya pada permintaan oleh service principals ("Bool": {"aws:PrincipalIsAWSService": "true"}
) yang memiliki aws:SourceAccount
key present ("Null": {"aws:SourceAccount":
"false"}
), sehingga integrasi layanan yang tidak memerlukan penggunaan kunci ini dan panggilan oleh prinsipal Anda tidak terpengaruh. Jika aws:SourceAccount
kunci hadir dalam konteks permintaan, Null
kondisi akan dievaluasitrue
, menyebabkan aws:SourceAccount
kunci ditegakkan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceAccount": "111122223333" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
Dalam kebijakan berbasis sumber daya di mana prinsipal adalah Layanan AWS prinsipal, gunakan kunci untuk membatasi izin yang diberikan kepada layanan. Misalnya, saat bucket Amazon S3 dikonfigurasi untuk mengirim pemberitahuan ke SNS topik Amazon, layanan Amazon S3 meminta operasi untuk semua peristiwa yang sns:Publish
API dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish
pengoperasian, tetapkan nilai kunci kondisi ke ID akun bucket Amazon S3.
aws: SourceArn
Gunakan kunci ini untuk membandingkan Amazon Resource Name (ARN) dari sumber daya yang membuat service-to-service permintaan dengan ARN yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Ketika sumber ARN menyertakan ID akun, tidak perlu digunakan aws:SourceAccount
denganaws:SourceArn
.
Kunci ini tidak bekerja dengan prinsipal yang membuat permintaan. ARN Sebaliknya, gunakan aws: PrincipalArn
.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang konfigurasi memicu service-to-service permintaan. Layanan panggilan melewati sumber ARN daya asli ke layanan yang dipanggil.
catatan
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.
-
Tipe data - ARN
AWS merekomendasikan agar Anda menggunakan ARNoperator alih-alih operator string saat membandingkanARNs.
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari sumber daya tertentu. Saat menggunakan kebijakan berbasis sumber daya dengan Layanan AWS prinsipal sebagaiPrincipal
, setel nilai kunci kondisi ini ke sumber daya yang ingin Anda ARN batasi aksesnya. Misalnya, saat bucket Amazon S3 dikonfigurasi untuk mengirim pemberitahuan ke SNS topik Amazon, layanan Amazon S3 meminta operasi untuk semua peristiwa yang sns:Publish
API dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish
pengoperasian, tetapkan nilai kunci kondisi ke ARN bucket Amazon S3. Untuk rekomendasi tentang kapan menggunakan kunci kondisi ini dalam kebijakan berbasis sumber daya, lihat dokumentasi untuk yang Anda gunakan. Layanan AWS
aws: SourceOrg ID
Gunakan kunci ini untuk membandingkan ID organisasi sumber daya yang membuat service-to-service permintaan dengan ID organisasi yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Saat Anda menambah dan menghapus akun ke organisasi AWS Organizations, kebijakan yang mencakup aws:SourceOrgID
kunci akan secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbarui kebijakan secara manual.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati ID organisasi sumber daya asli ke layanan yang dipanggil.
catatan
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari organisasi tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya berikut (RCP) untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali jika dipicu oleh sumber daya di organisasi yang ditentukan. AWS Kebijakan ini menerapkan kontrol hanya pada permintaan oleh service principals ("Bool": {"aws:PrincipalIsAWSService":
"true"}
) yang memiliki aws:SourceAccount
key present ("Null": {"aws:SourceAccount": "false"}
), sehingga integrasi layanan yang tidak memerlukan penggunaan kunci dan panggilan oleh prinsipal Anda tidak terpengaruh. Jika aws:SourceAccount
kunci hadir dalam konteks permintaan, Null
kondisi akan dievaluasitrue
, menyebabkan aws:SourceOrgID
kunci ditegakkan. Kami menggunakan operator aws:SourceAccount
bukan aws:SourceOrgID
dalam Null
kondisi sehingga kontrol masih berlaku jika permintaan berasal dari akun yang bukan milik organisasi.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "o-xxxxxxxxxx" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
aws: SourceOrgPaths
Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang membuat service-to-service permintaan dengan jalur organisasi yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Jalur Organizations adalah representasi teks dari struktur suatu entitas Organizations. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat Memahami jalur AWS Organizations entitas.
-
Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati jalur organisasi sumber daya asli ke layanan yang dipanggil.
catatan
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.
-
Tipe data - String (daftar)
-
Jenis nilai — Multivalued
Gunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari unit organisasi (OU) tertentu. AWS Organizations
Demikian pulaaws:SourceOrgID
, untuk membantu mencegah dampak pada integrasi layanan yang tidak memerlukan penggunaan kunci ini, gunakan operator Null
aws:SourceAccount
kondisi dengan kunci kondisi sehingga kontrol tetap berlaku jika permintaan berasal dari akun yang bukan milik organisasi.
{ "Condition": { "ForAllValues:StringNotLikeIfExists": { "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }
aws:SourceOrgPaths
adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan ForAnyValue
atau ForAllValues
mengatur operator dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.
aws: UserAgent
Gunakan kunci ini untuk membandingkan aplikasi klien pemohon dan aplikasi yang Anda tentukan dalam kebijakan.
-
Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.
-
Tipe data - String
-
Jenis nilai - Bernilai tunggal
Awas
Kunci ini harus digunakan dengan hati-hati. Karena aws:UserAgent
nilai diberikan oleh pemanggil di HTTP header, pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan aws:UserAgent
nilai apa pun yang mereka pilih. Sebagai hasilnya, tidak aws:UserAgent
boleh digunakan untuk mencegah pihak yang tidak berwenang melakukan AWS permintaan langsung. Anda dapat menggunakannya hanya untuk mengizinkan aplikasi klien tertentu, dan hanya setelah menguji kebijakan Anda.
Kunci kondisi lintas layanan lainnya
AWS STS mendukung kunci kondisi federasi SAML berbasis dan kunci kondisi lintas layanan untuk OIDCfederasi. Kunci ini tersedia saat pengguna yang digabungkan menggunakan SAML melakukan AWS operasi di layanan lainnya.