View a markdown version of this page

AWS kunci konteks kondisi global - AWS Identity and Access Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS kunci konteks kondisi global

Ketika kepala sekolah membuat permintaan ke AWS, AWS mengumpulkan informasi permintaan ke dalam konteks Komponen permintaan permintaan. Anda dapat menggunakan elemen Condition dari kebijakan JSON 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 yang diminta, 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 prinsi AWS pal layanan. Untuk mempelajari lebih lanjut tentang keadaan di mana kunci global disertakan dalam konteks permintaan, lihat Informasi Ketersediaan untuk setiap kunci.

Beberapa layanan individual membuat kunci kondisi mereka sendiri yang tersedia dalam konteks permintaan untuk layanan lain. Cross-service kunci kondisi adalah jenis kunci kondisi global yang menyertakan awalan yang cocok dengan nama layanan, seperti ec2: ataulambda:, tetapi tersedia di layanan lain.

Service-specific kunci kondisi didefinisikan untuk digunakan dengan AWS layanan individual. 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 khusus layanan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk Layanan dan pilih AWS layanan yang kuncinya ingin Anda lihat.

catatan

Jika Anda menggunakan kunci kondisi yang hanya tersedia dalam beberapa keadaan, Anda dapat menggunakan versi IfExists dari operator kondisi. Jika kunci kondisi hilang dari konteks permintaan, kebijakan dapat gagal dalam evaluasi. Misalnya, gunakan blok berikut dengan operator ...IfExists untuk mencocokkan saat permintaan berasal dari rentang IP tertentu atau dari VPC tertentu. 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 cara kebijakan dievaluasi ketika kunci tidak ada untuk operator lain, lihat Oper ator 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 multivalue. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Untuk informasi selengkapnya, lihat Mengatur operator untuk kunci konteks multinilai.

Kunci kondisi sensitif

Kunci kondisi berikut dianggap sensitif. Penggunaan wildcard dalam kunci kondisi ini tidak memiliki kasus penggunaan yang valid, bahkan dengan substring nilai kunci dengan wildcard. Ini karena wildcard mungkin cocok dengan kunci kondisi dengan nilai apa pun, yang dapat menimbulkan risiko keamanan.

Properti prinsipal

Gunakan kunci kondisi berikut untuk membandingkan detail tentang prinsipal yang membuat permintaan dengan properti utama yang Anda tentukan dalam kebijakan. Untuk daftar kepala sekolah yang dapat membuat permintaan, lihatCara menentukan prinsipal.

aws: PrincipalArn

Gunakan kunci ini untuk membandingkan Amazon Resource Name (ARN) prinsipal yang melakukan permintaan layanan ke layanan dengan ARN yang Anda tentukan dalam kebijakan. Untuk peran IAM, konteks permintaan memberikan ARN peran, bukan ARN pengguna 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:

    • IAM Role

    • Pengguna IAM

    • AWS STS prinsipal pengguna federasi

    • Akun AWS pengguna root

  • Tipe data — ARN

    AWS merekomendasikan agar Anda menggunakan operator ARN al ih-alih operator string saat membandingkan ARN.

  • Jenis nilai — Single-valued

  • Contoh nilai Daftar berikut menunjukkan nilai konteks permintaan yang dikembalikan untuk berbagai jenis prinsipal yang dapat Anda tentukan dalam kunci aws:PrincipalArn kondisi:

    • Peran IAM — Konteks permintaan berisi nilai berikut untuk kunci aws:PrincipalArn kondisi. Jangan tentukan sesi peran yang diasumsikan ARN sebagai nilai untuk kunci kondisi ini. Untuk informasi selengkapnya tentang prinsipal sesi peran yang diasumsikan, lihatPrinsip sesi peran.

      arn:aws:iam::123456789012:role/role-name
    • Pengguna IAM — Konteks permintaan berisi nilai berikut untuk kunci aws:PrincipalArn kondisi.

      arn:aws:iam::123456789012:user/user-name
    • AWS STS prinsipal pengguna federasi — Konteks permintaan berisi nilai berikut untuk kunci kondisi. aws:PrincipalArn

      arn:aws:sts::123456789012:federated-user/user-name
    • Akun AWS pengguna root — Konteks permintaan berisi nilai berikut untuk kunci kondisiaws:PrincipalArn. Ketika Anda menentukan pengguna root ARN sebagai nilai untuk kunci aws: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 otoritas ke. Akun AWS Untuk informasi selengkapnya tentang menentukan ARN pengguna root dalam elemen utama kebijakan berbasis sumber daya, lihat. Akun AWS utama

      arn:aws:iam::123456789012:root

Anda dapat menentukan ARN pengguna root sebagai nilai untuk kunci kondisi aws:PrincipalArn dalam kebijakan kontrol AWS Organizations layanan (SCP). SCP adalah jenis kebijakan organisasi yang digunakan untuk mengelola izin di organisasi Anda dan hanya memengaruhi akun anggota di organisasi. SCP membatasi izin untuk pengguna dan peran IAM dalam akun anggota, termasuk pengguna akun anggota. Untuk informasi selengkapnya tentang efek SCP pada izin, lihat Efek SCP pada izin di Panduan AWS Organizations Pengguna.

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 kembalianonymous.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.

  • Tipe data String

  • Jenis nilai — Single-valued

Dalam contoh berikut, akses ditolak kecuali untuk kepala sekolah dengan nomor 123456789012 akun.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:us-east-1:111122223333:resource" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }

aws: PrincipalOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur untuk kepala sekolah yang membuat permintaan ke jalur dalam kebijakan. Prinsip tersebut dapat berupa pengguna IAM, peran IAM, prinsipal pengguna AWS STS federasi, atau. Pengguna root akun AWS Dalam kebijakan, kunci kondisi ini memastikan pemohon adalah anggota akun dalam akar organisasi atau unit organisasi (OU) yang ditentukan di AWS Organizations. Jal AWS Organizations ur adalah representasi teks dari struktur AWS Organizations entitas. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat Memahami AWS Organizations jalur entitas.

  • 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 — Multivalue

catatan

ID organisasi unik secara global, tetapi ID OU dan ID akar hanya unik dalam organisasinya. 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 dikembalikan true untuk prinsipal di akun yang dilampirkan langsung ke ou-ab12-22222222 OU, tetapi tidak di OU turunannya.

"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}

Kondisi berikut dikembalikan true untuk prinsipal dalam akun yang dilampirkan langsung ke OU atau OU turunannya. 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 dikembalikan true untuk kepala sekolah dalam akun yang dilampirkan langsung ke salah satu OU anak, tetapi tidak langsung ke OU induk. 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 multivalue 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 Mengatur operator untuk kunci konteks multinilai.

"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 AWS Organizations kepala sekolah 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 — Single-valued

Kunci global ini menyediakan alternatif untuk mendaftar semua ID akun untuk semua akun AWS di 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.

JSON
{ "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 untuk akun manajemen 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 cara memberikan akses AWS layanan dengan aman, lihataws: PrincipalIsAWSService.

Untuk informasi selengkapnya AWS Organizations, lihat Apa itu AWS Organizations? dalam Panduan AWS Organizations Pengguna.

aw:PrincipalTag/kunci tag

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 tag yang disematkan, konteks permintaan mencakup satu kunci aws:PrincipalTag untuk setiap kunci tag yang disematkan.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan jika prinsipal menggunakan pengguna IAM dengan tag yang disematkan. Ini disertakan untuk prinsipal yang menggunakan peran IAM dengan tag yang disematkan atau tag sesi. Permintaan anonim tidak menyertakan kunci ini.

  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menambahkan atribut khusus ke pengguna atau peran dalam bentuk pasangan nilai kunci. Untuk informasi selengkapnya tentang tag IAM, lihat Tag untuk AWS Identity and Access Management sumber daya. Anda dapat menggunakan aws:PrincipalTag untuk mengontrol akses untuk prinsipal AWS .

Contoh ini menunjukkan cara membuat kebijakan berbasis identitas yang memungkinkan pengguna dengan department=hr tag mengelola pengguna, grup, atau peran IAM. Untuk menggunakan kebijakan ini, ganti kebijakan italicized placeholder text dalam contoh dengan informasi Anda sendiri. Lalu, ikuti petunjuk di buat kebijakan atau ubah kebijakan.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:Get*", "iam:List*", "iam:Generate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/department": "hr" } } } ] }

aws: PrincipalIsAWSService

Gunakan kunci ini untuk memeriksa apakah panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS sekolah layanan. Misalnya, AWS CloudTrail menggunakan prinsip 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 disetel ke false jika layanan menggunakan kredenSIAL dari prinsipal IAM untuk membuat permintaan atas nama kepala sekolah. Ini juga disetel ke false jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah.

  • Ketersediaan — Kunci ini hadir dalam konteks permintaan untuk semua permintaan API yang ditandatangani yang menggunakan AWS kredenSIAL. Permintaan anonim tidak menyertakan kunci ini.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk membatasi akses ke identitas tepercaya dan lokasi jaringan yang diharapkan sambil memberikan akses ke AWS layanan dengan aman.

Dalam contoh kebijakan bucket Amazon S3 berikut, akses ke bucket dibatasi kecuali permintaan berasal dari vpc-111bbb22 atau berasal dari prinsipal layanan, seperti CloudTrail.

JSON
{ "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:PrincipalServiceNameberisi nama prinsipal layanan. Misalnya, nama utama AWS CloudTrail layanan adalahcloudtrail.amazonaws.com.

  • Ketersediaan — Kunci ini hadir dalam permintaan saat panggilan dilakukan oleh kepala AWS sekolah layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:

    • Jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah.

    • Jika layanan menggunakan kredenSIAL prinsipal IAM untuk membuat permintaan atas nama kepala sekolah.

    • Jika panggilan dilakukan langsung oleh kepala sekolah IAM.

    • Jika panggilan dilakukan oleh pemohon anonim.

  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk membatasi akses ke identitas tepercaya dan lokasi jaringan yang diharapkan sambil memberikan akses ke AWS layanan dengan aman.

Dalam contoh kebijakan bucket Amazon S3 berikut, akses ke bucket dibatasi kecuali permintaan berasal dari vpc-111bbb22 atau berasal dari prinsipal layanan, seperti CloudTrail.

JSON
{ "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" } } } ] }

aw: 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 hadir dalam permintaan saat panggilan dilakukan oleh kepala AWS sekolah layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:

    • Jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah.

    • Jika layanan menggunakan kredenSIAL prinsipal IAM untuk membuat permintaan atas nama kepala sekolah.

    • Jika panggilan dilakukan langsung oleh kepala sekolah IAM.

    • Jika panggilan dilakukan oleh pemohon anonim.

  • Tipe data String (daftar)

  • Jenis nilai — Multivalue

aws:PrincipalServiceNamesList adalah kunci kondisi multinilai. Kunci multivalue dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan operator ForAnyValue atau ForAllValues set dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Mengatur operator untuk kunci konteks multinilai.

aw: 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 prinsipal. 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 — Single-valued

aws:userid

Gunakan kunci ini untuk membandingkan pengenal prinsipal pemohon dengan ID yang Anda tentukan dalam kebijakan. Untuk pengguna IAM, nilai konteks permintaan adalah ID pengguna. Untuk peran IAM, format nilai ini dapat bervariasi. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat Cara menentukan prinsipal. 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 — Single-valued

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 prinsipal. Untuk contoh spesifik dari nilai-nilai principal kunci, lihatNilai-nilai kunci utama.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan untuk pengguna IAM. Permintaan dan permintaan anonim yang dibuat menggunakan peran Pengguna root akun AWS atau IAM tidak menyertakan kunci ini. Permintaan yang dibuat menggunakan kredentif Pusat Identitas IAM tidak menyertakan kunci ini dalam konteks.

  • Tipe data String

  • Jenis nilai — Single-valued

Properti sesi peran

Gunakan kunci kondisi berikut untuk membandingkan properti sesi peran pada saat sesi dibuat. Kunci kondisi ini hanya tersedia ketika permintaan dibuat oleh kepala sekolah dengan sesi peran atau kredentif utama pengguna federasi. Nilai untuk kunci kondisi ini disematkan dalam token sesi peran.

Peran adalah jenis prinsipal. Anda juga dapat menggunakan kunci kondisi dari Properti prinsipal bagian untuk mengevaluasi properti peran saat peran membuat permintaan.

aw: AssumedRoot

Gunakan kunci ini untuk memeriksa apakah permintaan dibuat menggunakan AssumeRoot. AssumeRootmengembalikan kredentif 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 Mengelola akses root secara terpusat untuk akun anggota.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika kepala sekolah menggunakan kredenSIAL AssumeRoot untuk membuat permintaan.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

Dalam contoh berikut, ketika digunakan sebagai kebijakan kontrol layanan, menolak penggunaan kredenSIAL jangka panjang pengguna root di akun AWS Organizations anggota. Kebijakan ini tidak menolak AssumeRoot sesi melakukan tindakan yang diizinkan oleh AssumeRoot sesi.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":"*", "Resource": "*", "Condition":{ "ArnLike":{ "aws:PrincipalArn":[ "arn:aws:iam::*:root" ] }, "Null":{ "aws:AssumedRoot":"true" } } } ] }

aw: FederatedProvider

Gunakan kunci ini untuk membandingkan penyedia identitas penerbit (IdP) kepala sekolah dengan IdP yang Anda tentukan dalam kebijakan. Ini berarti bahwa peran IAM diasumsikan menggunakan AssumeRoleWithWebIdentity AWS STS operasi. Ketika kredentif sementara sesi peran yang dihasilkan digunakan untuk membuat permintaan, konteks permintaan mengidentifikasi IdP yang mengautentikasi identitas federasi asli.

  • Ketersediaan — Kunci ini hadir dalam sesi peran peran yang diasumsikan menggunakan penyedia OpenID Connect (OIDC), dan dalam kebijakan kepercayaan peran saat penyedia OIDC digunakan untuk memanggil. AssumeRoleWithWebIdentity

  • Tipe data String *

  • Jenis nilai — Single-valued

* Jenis data tergantung pada IdP Anda:

  • Jika Anda menggunakan AWS IdP bawaan, seperti Amazon Cognito, nilai kuncinya akan berupa string. Nilai kuncinya mungkin terlihat seperti:cognito-identity.amazonaws.com.

  • Jika Anda menggunakan IdP yang tidak terintegrasi ke AWS, seperti GitHub atau Amazon EKS, nilai kuncinya adalah AR N. Nilai kuncinya mungkin terlihat seperti:arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID.

Untuk informasi lebih lanjut tentang eksternal IdPs danAssumeRoleWithWebIdentity, lihatSkenario umum. Untuk informasi selengkapnya, lihat Prinsip sesi peran.

aw: 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. Kunci tidak ada dalam permintaan AWS CLI, AWS API, atau AWS SDK yang dibuat menggunakan kunci akses.

  • Tipe data Tanggal

  • Jenis nilai — Single-valued

Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat AWS layanan yang bekerja dengan IAM.

aw: SignInSessionArn

Gunakan tombol ini untuk membandingkan AWS Sign-In OAuth sesi Anda dengan sesi yang Anda tentukan dalam kebijakan.

Saat Anda menggunakan alur OAuth berbasis seperti AWS CLI login (aws login) atau AWS MCP Server, ser AWS Sign-In takan sesi masuk ARN dalam kredensional yang dikeluarkan. AWS Sign-In menyebarkan ARN itu ke permintaan berikutnya yang dibuat menggunakan token OAuth akses. Dengan kunci ini, Anda dapat menghubungkan aktivitas API dengan sesi masuk asal dan menerapkan kebijakan IAM ke sesi individual.

Untuk alur OAuth interaktif, token penyegaran menentukan siklus hidup ARN sesi masuk. Token akses baru yang dikeluarkan selama penyegaran terus membawa sesi masuk yang sama ARN.

Untuk alur non- OAuth interaktif, token akses menentukan siklus hidup ARN sesi masuk. Setiap token akses baru berisi sesi masuk baru ARN.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat permintaan berasal dari AWS Sign-In OAuth sesi. Kunci ini tidak tersedia untuk sesi konsol.

  • Tipe data ARN

  • Jenis nilai — Single-valued

Gunakan operator ARN alih-alih operator string saat Anda membandingkan ARN.

Kebijakan berikut menolak semua tindakan yang terkait dengan AWS Sign-In sesi tertentu, meskipun permintaan dari sesi aktif lainnya terus berlanjut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenySpecificSignInSession", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:SignInSessionArn": "arn:aws:signin:us-east-1:111122223333:session/session-id" } } } ] }

aw: MultiFactorAuthAge

Gunakan kunci ini untuk membandingkan jumlah detik sejak prinsipal yang meminta diberi kewenangan menggunakan MFA dengan nomor yang Anda sebutkan dalam kebijakan. Untuk informasi selengkapnya tentang MFA, lihat AWS Multi-factor otentikasi di IAM.

penting

Kunci kondisi ini tidak ada untuk identitas federasi atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani permintaan AWS CLI, AWS API, atau AWS SDK. Untuk mempelajari selengkapnya tentang menambahkan perlindungan MFA ke operasi API dengan kredenSIAL keamanan sementara, lihatAkses API aman dengan MFA.

Untuk memeriksa apakah MFA digunakan untuk memvalidasi identitas federasi IAM, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke AWS sebagai tag sesi. Lihat perinciannya di Lewati tag sesi di AWS STS. Untuk menerapkan MFA untuk identitas Pusat Identitas IAM, Anda dapat mengaktifkan atribut untuk kontrol akses untuk meneruskan klaim pernyataan SAML dengan metode otentikasi dari penyedia identitas Anda ke Pusat Identitas IAM.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika kepala sekolah menggunakan kredenSIAL keamanan sementara untuk membuat permintaan. Kebijakan dengan kondisi MFA dapat dilampirkan ke:

    • Pengguna atau grup IAM

    • Sumber daya seperti bucket Amazon S3, antrean Amazon Amazon SQS, atau topik Amazon SNS

    • Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna

  • Tipe data Numerik

  • Jenis nilai — Single-valued

aw: MultiFactorAuthPresent

Gunakan kunci ini untuk memeriksa apakah otentikasi multi-faktor (MFA) digunakan untuk memvalidasi kreden tif keamanan sementara yang membuat permintaan.

penting

Kunci kondisi ini tidak ada untuk identitas federasi atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani permintaan AWS CLI, AWS API, atau AWS SDK. Untuk mempelajari selengkapnya tentang menambahkan perlindungan MFA ke operasi API dengan kredenSIAL keamanan sementara, lihatAkses API aman dengan MFA.

Untuk memeriksa apakah MFA digunakan untuk memvalidasi identitas federasi IAM, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke AWS sebagai tag sesi. Lihat perinciannya di Lewati tag sesi di AWS STS. Untuk menerapkan MFA untuk identitas Pusat Identitas IAM, Anda dapat mengaktifkan atribut untuk kontrol akses untuk meneruskan klaim pernyataan SAML 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 kondisi MFA dapat dilampirkan ke:

    • Pengguna atau grup IAM

    • Sumber daya seperti bucket Amazon S3, antrean Amazon Amazon SQS, atau topik Amazon SNS

    • Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna

  • Tipe data Boolean

  • Jenis nilai — Single-valued

KredenSIAL sementara digunakan untuk mengotentikasi peran IAM dan pengguna IAM dengan token sementara dari AssumeRole atau GetSessionToken, dan pengguna. Konsol Manajemen AWS

Kunci akses pengguna IAM adalah kredenSIAL jangka panjang, tetapi dalam beberapa kasus, AWS membuat kredenSIAL sementara atas nama pengguna IAM 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:

  • Pengguna IAM secara Konsol Manajemen AWS tidak sadar menggunakan kredenSIAL 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 pengguna IAM melakukan panggilan ke AWS layanan, layanan menggunakan kembali kredentif pengguna untuk membuat permintaan lain ke layanan lain. Misalnya, saat memanggil Athena untuk mengakses bucket Amazon S3, atau saat menggunakan CloudFormation untuk membuat instans Amazon EC2. Untuk permintaan berikutnya, gunakan kre AWS denSIAL sementara.

Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat AWS layanan yang bekerja dengan IAM.

Kunci aws:MultiFactorAuthPresent tidak tersedia ketika perintah API atau CLI disebut kredensial jangka panjang, seperti pasangan access key pengguna. Oleh karena itu, kami merekomendasikan bahwa ketika Anda memeriksa kunci ini, Anda menggunakan versi ...IfExists dari operator kondisi.

Penting untuk dipahami bahwa elemen Condition bukan merupakan suatu cara yang andal untuk memastikan apakah permintaan diautentikasi menggunakan MFA.

##### WARNING: NOT RECOMMENDED ##### "Effect" : "Deny", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }

Kombinasi dari efek Deny, elemen Bool, dan nilai false menolak permintaan yang dapat diautentikasi menggunakan MFA, tetapi tidak. Ini hanya berlaku untuk kredensial sementara yang mendukung penggunaan MFA. Pernyataan ini tidak menolak akses ke permintaan yang dilakukan menggunakan kredensial jangka panjang, atau permintaan yang diautentikasi menggunakan MFA. Gunakan contoh ini dengan hati-hati karena logikanya rumit dan tidak menguji apakah MFA-authentication 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 operator BoolIfExists untuk memastikan permintaan teraotentikasi menggunakan MFA ataukah tidak.

"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }

Kombinasi dari Deny, BoolIfExists, dan false menolak permintaan yang tidak diautentikasi menggunakan MFA. Secara khusus, operator ini menolak permintaan dari kredensial sementara yang tidak menyertakan MFA. Ini juga menolak permintaan yang dibuat menggunakan kredenSIAL jangka panjang, seperti AWS CLI atau operasi AWS API yang dibuat 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 yang tidak diautentikasi menggunakan MFA. Ini lebih aman, tetapi dapat merusak kode atau skrip apa pun yang menggunakan kunci akses untuk mengakses AWS API AWS CLI atau.

Kombinasi Alternatif

Anda juga dapat menggunakan BoolIfExists operator untuk mengizinkan MFA-authenticated permintaan AWS CLI dan/atau permintaan AWS API yang dibuat menggunakan kredenSIAL jangka panjang.

"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }

Kondisi ini cocok jika kunci ada dan tersedia atau jika kunci tidak ada. Kombinasi dari Allow, BoolIfExists, dan true mengaktifkan permintaan yang diautentikasi menggunakan MFA, atau permintaan yang tidak dapat diautentikasi menggunakan MFA. Ini berarti bahwa AWS CLI, operasi AWS API, dan AWS SDK diizinkan ketika pemohon menggunakan kunci akses jangka panjangnya. Kombinasi ini tidak memungkinkan permintaan dari kredensial sementara yang bisa, tetapi tidak menyertakan MFA.

Saat Anda membuat kebijakan menggunakan editor visual konsol IAM dan memilih MFA yang diperlukan, kombinasi ini akan diterapkan. Pengaturan ini memerlukan MFA untuk akses konsol, tetapi memungkinkan akses terprogram tanpa MFA.

Atau, Anda dapat menggunakan operator Bool hanya untuk permintaan terprogram dan konsol saat diautentikasi menggunakan MFA.

"Effect" : "Allow", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }

Kombinasi ini dariAllow,Bool, dan hanya true mengizinkan MFA-authenticated permintaan. Ini hanya berlaku untuk kredensial 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 kredensial sementara tanpa MFA.

Jangan gunakan susunan kebijakan yang serupa dengan yang berikut ini untuk memastikan adanya kunci MFA atau tidak:

##### WARNING: USE WITH CAUTION ##### "Effect" : "Allow", "Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }

Kombinasi dari efek Allow, elemen Null, dan nilai false hanya memungkinkan permintaan yang dapat diautentikasi menggunakan MFA, 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.

aw: ChatbotSourceArn

Gunakan kunci ini untuk membandingkan konfigurasi obrolan sumber ARN yang ditetapkan oleh prinsipal dengan ARN konfigurasi obrolan yang Anda tentukan dalam kebijakan peran IAM yang terkait dengan konfigurasi saluran Anda. Anda dapat mengotorisasi permintaan berdasarkan sesi peran asumsi yang diprakarsai oleh Amazon Q Developer di aplikasi obrolan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan oleh Pengembang Amazon Q dalam layanan aplikasi obrolan setiap kali sesi peran diasumsikan. Nilai kuncinya adalah konfigurasi obrolan ARN, seperti ketika Anda menjalankan AWS CLI perintah dari saluran obrolan.

  • Tipe data ARN

  • Jenis nilai — Single-valued

  • Nilai contoh arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel

Kebijakan berikut menolak permintaan menempatkan Amazon S3 pada bucket yang ditentukan untuk semua permintaan yang berasal dari saluran Slack.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ExampleS3Deny", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnLike": { "aws:ChatbotSourceArn": "arn:aws:chatbot::*:chat-configuration/slack-channel/*" } } } ] }

aw: Ec2InstanceSourceVpc

Kunci ini mengidentifikasi VPC tempat kredentif peran Amazon EC2 IAM dikirimkan. Anda dapat menggunakan kunci ini dalam kebijakan dengan kunci aws:SourceVPC global untuk memeriksa apakah panggilan dibuat dari VPC (aws:SourceVPC) yang cocok dengan VPC tempat kredensia dikirimkan ke (). aws:Ec2InstanceSourceVpc

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi peran Amazon EC2. Ini dapat digunakan dalam kebijakan IAM, kebijakan kontrol layanan, kebijakan titik akhir VPC, dan kebijakan sumber daya.

  • Tipe data String

  • Jenis nilai — Single-valued

Kunci ini dapat digunakan dengan nilai pengenal VPC, tetapi paling berguna ketika digunakan sebagai variabel yang dikombinasikan dengan kunci aws:SourceVpc konteks. K aws:SourceVpc unci konteks disertakan dalam konteks permintaan hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan. Menggunakan aws:Ec2InstanceSourceVpc dengan aws:SourceVpc memungkinkan Anda untuk menggunakan aws:Ec2InstanceSourceVpc lebih luas karena membandingkan nilai-nilai yang biasanya berubah bersama.

JSON
{ "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" } } } ] }

Dalam contoh di atas, akses ditolak jika aws:SourceVpc nilainya tidak sama dengan aws:Ec2InstanceSourceVpc nilai. Pernyataan kebijakan dibatasi hanya pada peran yang digunakan sebagai peran instans Amazon EC2 dengan menguji keberadaan kunci ec2:SourceInstanceARN kondisi.

Kebijakan ini digunakan aws:ViaAWSService untuk mengiz AWS inkan permintaan otorisasi saat permintaan dibuat atas nama peran instans Amazon EC2 Anda. Misalnya, saat Anda membuat permintaan dari instans Amazon EC2 ke bucket Amazon S3 terenkripsi, Amazon S3 melakukan AWS KMS panggilan atas nama Anda. Beberapa kunci tidak ada saat permintaan dibuat AWS KMS.

aws: Ec2InstanceSourcePrivateIPv4

Kunci ini mengidentifikasi alamat IPv4 pribadi dari antarmuka jaringan elastis utama tempat kredentif peran IAM Amazon EC2 dikirimkan. Anda harus menggunakan kunci kondisi ini dengan kunci pendampingnya aws:Ec2InstanceSourceVpc untuk memastikan bahwa Anda memiliki kombinasi unik global antara ID VPC dan IP pribadi sumber. Gunakan kunci ini aws:Ec2InstanceSourceVpc untuk memastikan bahwa permintaan dibuat dari alamat IP pribadi yang sama dengan yang dikirimkan kredenSIAL.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi peran Amazon EC2. Ini dapat digunakan dalam kebijakan IAM, kebijakan kontrol layanan, kebijakan titik akhir VPC, dan kebijakan sumber daya.

  • Tipe data — alamat IP

  • Jenis nilai — Single-valued

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 menggunakan aws:Ec2InstanceSourcePrivateIPv4 kunci untuk menentukan VPC dari mana kredentif instans Amazon EC2 Anda dapat digunakan.

Contoh berikut adalah kebijakan kontrol layanan (SCP) yang menolak akses ke semua sumber daya kecuali permintaan tiba melalui Titik Akhir VPC di VPC yang sama dengan kredenSIAL peran. Dalam contoh ini, aws:Ec2InstanceSourcePrivateIPv4 membatasi sumber kredensi ke instance tertentu berdasarkan IP sumber.

JSON
{ "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 ditetapkan ketika peran diasumsikan menggunakan perintah asumsi- AWS STS role CLI, atau AWS STS AssumeRole operasi API.

  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci ini dalam kebijakan untuk mengizinkan tindakan AWS oleh prinsipal yang telah menetapkan identitas sumber saat mengambil peran. Aktivitas untuk identitas sumber yang ditentukan peran muncul diAWS CloudTrail. Ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran 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.

K sts:SourceIdentity unci hadir dalam permintaan ketika prinsipal awalnya menetapkan identitas sumber sambil mengambil peran menggunakan perintah asumsi- AWS STS role CLI, atau AWS STS AssumeRole operasi 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.

JSON
{ "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 kredentif peran IAM untuk Amazon EC2. Layanan metadata instans membedakan antara permintaan IMDSv1 dan IMDSv2 berdasarkan apakah, untuk permintaan tertentu, baik itu header PUT atau, GET yang unik untuk IMDSv2, ada dalam permintaan itu.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh instans Amazon EC2.

  • Tipe data Numerik

  • Jenis nilai — Single-valued

  • Contoh nilai — 1.0, 2.0

Anda dapat mengonfigurasi Layanan Metadata Instans (IMDS) pada setiap instans yang mengharuskan kode atau pengguna lokal untuk menggunakan IMDSv2. Saat Anda menentukan bahwa IMDSv2 harus digunakan, maka IMDSv1 tidak lagi berfungsi.

  • Layanan Metadata Instance Versi 1 (IMDSv1) — Sebuah metode request/response

  • Layanan Metadata Instans Versi 2 (IMDSv2) - metode berorientasi sesi

Untuk informasi tentang cara mengonfigurasi instance Anda untuk menggunakan IMDSv2, lihat Meng onfigurasi 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 kredentif peran Amazon EC2, itu tidak berpengaruh.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RequireAllEc2RolesToUseV2", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NumericLessThan": { "ec2:RoleDelivery": "2.0" } } } ] }

Untuk informasi selengkapnya, lihat Contoh kebijakan untuk bekerja dengan metadata instans.

ec2: SourceInstanceArn

Gunakan kunci ini untuk membandingkan ARN dari instance dari mana sesi peran dihasilkan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh instans Amazon EC2.

  • Tipe data ARN

  • Jenis nilai — Single-valued

  • Nilai contoh — arn:aws:ec2:us-west- 2:111111111111: -id instance/instance

Untuk contoh kebijakan, lihat Men gizinkan instance tertentu untuk melihat sumber daya di AWS layanan lain.

lem: RoleAssumedBy

AWS Glue Layanan menetapkan kunci kondisi ini untuk setiap permintaan AWS API 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 membuat permintaan menggunakan peran layanan atas nama pelanggan.

  • Tipe data String

  • Jenis nilai — Single-valued

  • Nilai contoh — Kunci ini selalu disetel keglue.amazonaws.com.

Contoh berikut menambahkan kondisi untuk memungkinkan 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 permintaan AWS API 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 pekerjaan atau titik akhir pengembang.

  • Tipe data String

  • Jenis nilai — Single-valued

  • Nilai contoh — Kunci ini selalu disetel keglue.amazonaws.com.

Contoh berikut menambahkan kondisi yang dilampirkan ke peran IAM yang digunakan oleh AWS Glue pekerjaan. Ini memastikan tindakan tertentu allowed/denied didasarkan pada 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" } } }

pembuatan kode: BuildArn

Kunci ini mengidentifikasi CodeBuild build ARN tempat kredentif peran IAM dikirimkan. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari CodeBuild build tertentu.

catatan

Nilai penuh tidak codebuild:BuildArn diketahui sebelumnya karena berisi ID build yang dihasilkan secara dinamis.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali permintaan dibuat oleh peran yang diasumsikan oleh CodeBuild.

  • Tipe data ARN

  • Jenis nilai — Single-valued

  • Nilai contoh — arn:aws:codebuild:us-east- 1:123456789012:: 12345678-1234-1234-1234-1234-123456789012 build/MyBuildProject

Contoh berikut memungkinkan CodeBuild build tertentu untuk memiliki s3:GetObject akses ke bucket yang ditentukan.

{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnLike": { "codebuild:BuildArn": "arn:aws:codebuild:us-east-1:123456789012:build/MyBuildProject:*" } } }

pembuatan kode: ProjectArn

Kunci ini mengidentifikasi CodeBuild proyek ARN yang kredenSIAL peran IAM dikirimkan ke CodeBuild build. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari CodeBuild proyek tertentu.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali permintaan dibuat oleh peran yang diasumsikan oleh CodeBuild.

  • Tipe data ARN

  • Jenis nilai — Single-valued

  • Nilai contoh — arn:aws:codebuild:us-east- 1:123456789012: project/MyBuildProject

Contoh berikut memungkinkan setiap build dari CodeBuild proyek tertentu untuk memiliki s3:GetObject akses ke bucket yang ditentukan.

{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnEquals": { "codebuild:ProjectArn": "arn:aws:codebuild:us-east-1:123456789012:project/MyBuildProject" } } }

Lambda: SourceFunctionArn

Gunakan kunci ini untuk mengidentifikasi fungsi Lambda ARN tempat kredentif peran IAM dikirimkan. Layanan Lambda menetapkan kunci ini untuk setiap permintaan AWS API 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 — Single-valued

  • Nilai contoh — arn:aws:lambda:us-east- 1:123456789012:function: TestFunction

Contoh berikut memungkinkan satu fungsi Lambda tertentu untuk memiliki s3:PutObject akses bucket yang ditentukan.

JSON
{ "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 Bek erja dengan kredentif lingkungan eksekusi Lambda di Panduan Peng AWS Lambda embang.

SSM: SourceInstanceArn

Gunakan kunci ini untuk mengidentifikasi ARN inst AWS Systems Manager ans terkelola tempat kredentif peran IAM dikirimkan. Kunci kondisi ini tidak ada saat permintaan berasal dari instans terkelola dengan peran IAM yang terkait dengan profil instans Amazon EC2.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali kredentif peran dikirimkan ke instance AWS Systems Manager terkelola.

  • Tipe data ARN

  • Jenis nilai — Single-valued

  • Nilai contoh — arn:aws:ec2:us-west- 2:111111111111: -id instance/instance

toko identitas: UserId

Gunakan kunci ini untuk membandingkan identitas tenaga kerja Pusat Identitas IAM dalam permintaan yang ditandatangani dengan identitas yang ditentukan dalam kebijakan.

  • Ketersediaan — Kunci ini disertakan ketika pemanggil permintaan adalah pengguna di Pusat Identitas IAM.

  • Tipe data String

  • Jenis nilai — Single-valued

  • Nilai contoh — 94482488-3041-7026-18f3-be45837cd0e4

Anda dapat menemukan pengguna di Pusat Identitas IAM dengan membuat permintaan ke GetUserId API menggunakan AWS CLI, AWS API, atau AWS SDK. UserId

Properti jaringan

Gunakan kunci kondisi berikut untuk membandingkan detail tentang jaringan tempat permintaan berasal atau dilewati 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 titik akhir VPC untuk membuat permintaan.

  • Tipe data — alamat IP

  • Jenis nilai — Single-valued

Kunci kondisi aws:SourceIp dapat digunakan dalam kebijakan yang memungkinkan prinsipal hanya membuat permintaan dari rentang IP yang ditetapkan.

catatan

aws:SourceIpmendukung alamat IPv4 dan IPv6 atau rentang alamat IP. Untuk daftar Layanan AWS dukungan IPv6, lihat Layanan AWS yang mendukung IPv6 di Panduan Pengguna Amazon VPC.

Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke peran IAM. Kebijakan ini memungkinkan pengguna untuk memasukkan objek ke dalam bucket amzn-s3-demo-bucket3 Amazon S3 jika mereka melakukan panggilan dari rentang alamat IPv4 yang ditentukan. Kebijakan ini juga mengiz AWS inkan layanan yang menggunakan Teruskan sesi akses untuk melakukan operasi ini atas nama Anda.

JSON
{ "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 pengalamatan IPv4 dan IPv6, Anda dapat menyertakan alamat IPv4 dan IPv6 atau rentang alamat IP dalam kondisi kebijakan IAM. 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 alamat IPv4 atau IPv6 yang ditentukan. Sebelum menyertakan rentang alamat IPv6 dalam kebijakan IAM, verifikasi bahwa alamat yang Layanan AWS Anda gunakan mendukung IPv6. Untuk daftar Layanan AWS dukungan IPv6, lihat Layanan AWS yang mendukung IPv6 di Panduan Pengguna Amazon VPC.

JSON
{ "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 titik akhir VPC Amazon, maka kunci aws:SourceIp tidak tersedia. Sebagai gantinya, Anda harus menggunakan VPC-specific kunci seperti aws: VpcSourceIp. Untuk informasi selengkapnya tentang menggunakan titik akhir VPC, lihat Identitas dan manajemen akses untuk titik akhir VPC dan layanan titik akhir VPC di Panduan. AWS PrivateLink

catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

aws: SourceVpc

Gunakan kunci ini untuk memeriksa apakah permintaan berjalan melalui VPC tempat titik akhir VPC dilampirkan. Dalam kebijakan, Anda dapat menggunakan kunci ini untuk memungkinkan akses hanya ke VPC tertentu. Untuk informasi selengkapnya, lihat Membatasi Akses ke VPC Tertentu di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan.

  • Tipe data String

  • Jenis nilai — Single-valued

Dalam kebijakan, Anda dapat menggunakan kunci ini untuk mengizinkan atau membatasi akses ke VPC tertentu.

Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke peran IAM untuk ditolak PutObject ke bucket amzn-s3-demo-bucket3 Amazon S3, kecuali permintaan dibuat dari ID VPC Layanan AWS yang ditentukan atau menggunakan sesi akses maju (FAS) untuk membuat permintaan atas nama peran tersebut. Tidak seperti denganaws: SourceIp, Anda harus menggunakan aws:ViaAWSService atau aws: CalledVia mengizinkan permintaan FAS, karena VPC sumber dari permintaan awal tidak dipertahankan.

catatan

Kebijakan ini tidak mengizinkan tindakan apa pun. Gunakan kebijakan ini bersama dengan kebijakan lain yang mengizinkan tindakan tertentu.

JSON
{ "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" } } } ] }
catatan

AWS merekomendasikan untuk menggunakan aws:SourceVpcArn alih aws:SourceVpc -alih jika aws:SourceVpcArn didukung oleh layanan yang Anda targetkan. Silakan merujuk ke aws: SourceVpcArn untuk daftar layanan yang didukung.

catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

aws: SourceVpcArn

Gunakan kunci ini untuk memverifikasi ARN VPC yang melaluinya permintaan dibuat melalui titik akhir VPC. Kunci ini mengembalikan ARN VPC tempat titik akhir VPC dilampirkan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan untuk layanan yang didukung saat permintaan dibuat melalui titik akhir VPC. Kunci tidak disertakan untuk permintaan yang dibuat melalui titik akhir layanan publik. Layanan berikut mendukung kunci ini:

  • Tipe data — ARN

    AWS merekomendasikan agar Anda menggunakan operator ARN al ih-alih operator string saat membandingkan ARN.

  • Jenis nilai — Single-valued

  • Nilai contoh arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE

Berikut ini adalah contoh kebijakan bucket yang menolak akses ke amzn-s3-demo-bucket dan objeknya dari mana saja di luar VPCvpc-1a2b3c4d.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "Access-to-specific-VPC-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*"], "Condition": { "ArnNotEquals": { "aws:SourceVpcArn": "arn:aws:ec2:us-east-1:*:vpc/vpc-1a2b3c4d" } } } ] }
catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu akan disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

aws: SourceVpce

Gunakan kunci ini untuk membandingkan pengidentifikasi VPC endpoint dari permintaan dengan ID titik akhir yang Anda sebutkan dalam kebijakan.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan.

  • Tipe data String

  • Jenis nilai — Single-valued

Dalam kebijakan, Anda dapat menggunakan kunci ini untuk membatasi akses ke VPC endpoint tertentu. Untuk informasi selengkapnya, lihat Membatasi akses ke VPC tertentu di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Sama seperti menggunakanaws: SourceVpc, Anda harus menggunakan aws:ViaAWSService atau mengi aws: CalledVia zinkan permintaan yang dibuat dengan Layanan AWS menggunakan sesi akses maju (FAS). Ini karena titik akhir VPC sumber dari permintaan awal tidak dipertahankan.

catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu akan disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

aws: VpceAccount

Gunakan kunci ini untuk membandingkan ID AWS akun yang memiliki titik akhir VPC tempat permintaan dibuat dengan ID akun yang Anda tentukan dalam kebijakan. Kunci kondisi ini membantu Anda menetapkan kontrol perimeter jaringan dengan memastikan permintaan datang melalui titik akhir VPC yang dimiliki oleh akun tertentu.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat permintaan dibuat melalui titik akhir VPC. Kunci tidak disertakan untuk permintaan yang dibuat melalui titik akhir layanan publik.

    Layanan berikut mendukung kunci ini:

  • Tipe data String

  • Jenis nilai — Single-valued

  • Nilai contoh 123456789012

Anda dapat menggunakan kunci kondisi ini untuk membatasi akses ke sumber daya sehingga permintaan harus datang melalui titik akhir VPC yang dimiliki oleh akun Anda. Contoh kebijakan bucket Amazon S3 berikut memungkinkan akses saat permintaan datang melalui titik akhir VPC yang dimiliki oleh akun tertentu:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVpceAccountOnly", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleName" }, "Action": "s3:GetObject", "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "StringEquals": { "aws:VpceAccount": "111122223333" } } } ] }
catatan

Kunci kondisi ini saat ini didukung untuk serangkaian AWS layanan tertentu. Menggunakan kunci ini dengan layanan yang tidak didukung dapat menyebabkan hasil otorisasi yang tidak diinginkan. Selalu cantumkan kunci kondisi untuk layanan yang didukung dalam kebijakan Anda.

Beberapa AWS layanan mengakses sumber daya Anda dari jaringan mereka ketika mereka bertindak atas nama Anda. Jika Anda menggunakan layanan tersebut, Anda perlu mengedit contoh kebijakan di atas untuk mengizinkan AWS layanan mengakses sumber daya Anda dari luar jaringan Anda. Untuk informasi selengkapnya tentang pola akses yang perlu diperhitungkan saat menerapkan kontrol akses berdasarkan asal permintaan, lihatTetapkan pagar pembatas izin dengan menggunakan perimeter data.

aws: VpceOrg ID

Gunakan kunci ini untuk membandingkan pengidentifikasi organisasi AWS Organizations yang memiliki titik akhir VPC tempat permintaan dibuat dengan pengidentifikasi yang Anda tentukan dalam kebijakan. Kunci kondisi ini menyediakan pendekatan yang paling dapat diskalakan untuk kontrol perimeter jaringan, secara otomatis menyertakan semua titik akhir VPC yang dimiliki oleh akun dalam organisasi Anda.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat permintaan dibuat melalui titik akhir VPC dan akun pemilik titik akhir VPC adalah anggota organisasi AWS . Kunci tidak disertakan untuk permintaan yang dibuat melalui jalur jaringan lain atau ketika akun pemilik titik akhir VPC bukan bagian dari organisasi.

    Layanan berikut mendukung kunci ini:

  • Tipe data String

  • Jenis nilai — Single-valued

  • Contoh nilai o-a1b2c3d4e5

Contoh kebijakan kontrol sumber daya berikut menolak akses ke Amazon S3 dan AWS Key Management Service sumber daya kecuali permintaan datang melalui titik akhir VPC yang dimiliki oleh organisasi tertentu atau dari jaringan AWS layanan yang bertindak atas nama Anda. Beberapa organisasi mungkin perlu mengedit kebijakan ini lebih lanjut untuk memenuhi kebutuhan organisasi mereka, misalnya, mengizinkan akses mitra pihak ketiga. Untuk informasi selengkapnya tentang pola akses yang perlu diperhitungkan saat menerapkan kontrol akses berdasarkan asal permintaan, lihatTetapkan pagar pembatas izin dengan menggunakan perimeter data.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceNetworkPerimeterVpceOrgID", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*", "kms:*" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:PrincipalIsAWSService": "false", "aws:ViaAWSService": "false" }, "StringNotEqualsIfExists": { "aws:VpceOrgID": "o-abcdef0123", "aws:PrincipalTag/network-perimeter-exception": "true" } } } ] }
catatan

Kunci kondisi ini saat ini didukung untuk serangkaian AWS layanan tertentu. Menggunakan kunci ini dengan layanan yang tidak didukung dapat menyebabkan hasil otorisasi yang tidak diinginkan. Selalu cantumkan kunci kondisi untuk layanan yang didukung dalam kebijakan Anda.

catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

aws: VpceOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur titik akhir VPC tempat permintaan dibuat dengan jalur yang Anda tentukan dalam kebijakan. Kunci kondisi ini memungkinkan Anda untuk mengimplementasikan kontrol perimeter jaringan di tingkat unit organisasi (OU), secara otomatis menskalakan dengan penggunaan titik akhir VPC Anda saat Anda menambahkan titik akhir baru dalam OU yang ditentukan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat permintaan dibuat melalui titik akhir VPC dan akun pemilik titik akhir VPC adalah anggota organisasi. Kunci tidak disertakan untuk permintaan yang dibuat melalui jalur jaringan lain atau ketika akun pemilik titik akhir VPC bukan bagian dari organisasi.

    Layanan berikut mendukung kunci ini:

  • Tipe data String (daftar)

  • Jenis nilai — Multivalue

  • Contoh nilai o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/

Karena aws:VpceOrgPaths merupakan kunci kondisi multinilai, Anda harus menggunakan operator ForAnyValue atau ForAllValues set dengan operator kondisi string untuk kunci ini. Contoh kebijakan bucket Amazon S3 berikut mengizinkan akses hanya ketika permintaan datang melalui titik akhir VPC yang dimiliki oleh akun di unit organisasi tertentu:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessFromSpecificOrgPaths", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleName" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "ForAnyValue:StringLike": { "aws:VpceOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-33333333/*" ] } } } ] }
catatan

Kunci kondisi ini saat ini didukung untuk serangkaian AWS layanan tertentu. Menggunakan kunci ini dengan layanan yang tidak didukung dapat menyebabkan hasil otorisasi yang tidak diinginkan. Selalu cantumkan kunci kondisi untuk layanan yang didukung dalam kebijakan Anda.

Beberapa AWS layanan mengakses sumber daya Anda dari jaringan mereka ketika mereka bertindak atas nama Anda. Jika Anda menggunakan layanan tersebut, Anda perlu mengedit contoh kebijakan di atas untuk mengizinkan AWS layanan mengakses sumber daya Anda dari luar jaringan Anda. Untuk informasi selengkapnya tentang pola akses yang perlu diperhitungkan saat menerapkan kontrol akses berdasarkan asal permintaan, lihatTetapkan pagar pembatas izin dengan menggunakan perimeter data.

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 yang ditentukan dan melalui titik akhir VPC.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan, hanya jika permintaan dibuat menggunakan titik akhir VPC.

  • Tipe data — alamat IP

  • Jenis nilai — Single-valued

Untuk informasi selengkapnya, lihat Mengontrol akses ke titik akhir VPC menggunakan kebijakan titik akhir di Panduan Pengguna Amazon VPC. Sama seperti menggunakanaws: SourceVpc, Anda harus menggunakan aws:ViaAWSService atau mengi aws: CalledVia zinkan permintaan yang dibuat dengan Layanan AWS menggunakan sesi akses maju (FAS). Ini karena IP sumber dari permintaan awal yang dibuat menggunakan titik akhir VPC tidak dipertahankan dalam permintaan FAS.

catatan

aws:VpcSourceIpmendukung alamat IPv4 dan IPv6 atau rentang alamat IP. Untuk daftar Layanan AWS dukungan IPv6, lihat Layanan AWS yang mendukung IPv6 di Panduan Pengguna Amazon VPC.

Selalu gunakan tombol aws:VpcSourceIp kondisi dengan tombol aws:SourceVpcaws:SourceVpce,, atau aws:SourceVpcArn kondisi. Jika tidak, kebijakan mungkin mengizinkan panggilan API dari VPC tak terduga yang menggunakan CIDR IP yang sama atau tumpang tindih. Ini dapat terjadi karena IP CIDR dari dua VPC yang tidak terkait dapat sama atau tumpang tindih.

catatan

Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (panggilan layanan-ke-layanan), konteks otorisasi khusus jaringan tertentu akan disunting. Jika kebijakan Anda menggunakan kunci kondisi ini dengan Deny pernyataan, prinsipal Layanan AWS mungkin diblokir secara tidak sengaja. Layanan AWS Agar berfungsi dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsipal layanan dari Deny pernyataan Anda dengan menambahkan kunci aws:PrincipalIsAWSService kondisi dengan nilaifalse.

Properti dari sumber daya

Gunakan kunci kondisi berikut untuk membandingkan detail tentang sumber daya yang menjadi target permintaan dengan properti sumber daya yang Anda tentukan 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

    • AWS Directory Service

      • ds:AcceptSharedDirectory

    • Amazon Elastic Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

    • AWS Security Hub CSPM

      • securityhub:AcceptAdministratorInvitation

  • Tipe data String

  • Jenis nilai — Single-valued

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, ARN berisi ID akun pemilik untuk sumber daya tersebut. Untuk sumber daya tertentu, seperti bucket Amazon S3, ARN sumber daya tidak menyertakan ID akun. Dua contoh berikut menunjukkan perbedaan antara sumber daya dengan ID akun di ARN, dan Amazon S3 ARN tanpa ID akun:

  • arn:aws:iam::123456789012:role/AWSExampleRole— Peran IAM dibuat dan dimiliki dalam akun 123456789012.

  • arn:aws:s3:::amzn-s3-demo-bucket2— Bucket Amazon S3 dibuat dan dimiliki dalam akun111122223333, tidak ditampilkan di ARN.

Gunakan AWS konsol, atau API, atau CLI, untuk menemukan semua sumber daya Anda dan ARN yang sesuai.

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 plac eholder miring dengan informasi akun Anda.

penting

Kebijakan ini tidak mengizinkan tindakan apa pun. Sebaliknya, ia menggunakan Deny efek yang secara eksplisit menolak akses ke semua sumber daya yang tercantum dalam pernyataan yang bukan milik akun yang terdaftar. Gunakan kebijakan ini dalam kombinasi dengan kebijakan lain yang memungkinkan akses ke sumber daya tertentu.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:us-east-1:111122223333:*" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "111122223333" ] } } } ] }

Kebijakan ini menolak akses ke semua sumber daya untuk AWS layanan tertentu kecuali yang ditentukan Akun AWS memiliki sumber daya tersebut.

catatan

Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang dihosting 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, bergantung pada akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan elemen aws:ResourceAccount dalam kebijakan, 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 mendefinisikan pengecualian untuk sumber daya milik layanan.

Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat dokumentasi layanan Anda untuk informasi selengkapnya.

aws: ResourceOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang diakses dengan jalur dalam kebijakan. Dalam kebijakan, kunci kondisi ini memastikan bahwa sumber daya milik anggota akun dalam root organisasi atau unit organisasi (OU) yang ditentukan di AWS Organizations. Jal AWS Organizations ur adalah representasi teks dari struktur entitas Organisasi. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat Memahami AWS Organizations jalur entitas

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika akun yang memiliki sumber daya adalah anggota organisasi. Kunci kondisi global ini tidak mendukung tindakan berikut:

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • AWS Directory Service

      • ds:AcceptSharedDirectory

    • Amazon Elastic Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

    • AWS Security Hub CSPM

      • securityhub:AcceptAdministratorInvitation

  • Tipe data String (daftar)

  • Jenis nilai — Multivalue

catatan

Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori Contoh Kebijakan Perimeter Data.

aws:ResourceOrgPaths adalah kunci kondisi multinilai. Kunci multivalue dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan operator ForAnyValue atau ForAllValues set dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Mengatur operator untuk kunci konteks multinilai.

Misalnya, kondisi berikut dikembalikan True untuk sumber daya milik organisasio-a1b2c3d4e5. Ketika Anda menyertakan wildcard, Anda harus menggunakan operator kondisi StringLike.

"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }

Kondisi berikut dikembalikan True untuk sumber daya dengan ID OUou-ab12-11111111. Ini akan mencocokkan sumber daya yang dimiliki oleh akun yang dilampirkan ke OU ou-ab12-11111111 atau OU anak mana pun.

"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}

Kondisi berikut dikembalikan True untuk sumber daya yang dimiliki oleh akun yang dilampirkan langsung ke ID OUou-ab12-22222222, tetapi bukan OU turunan. Contoh berikut menggunakan operator StringEquals kondisi untuk menentukan persyaratan kecocokan yang tepat untuk ID OU dan bukan kecocokan 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 dihosting 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, bergantung pada 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 mendefinisikan 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 selengkapnya.

aws: ResourceOrg ID

Gunakan kunci ini untuk membandingkan pengidentifikasi organisasi tempat AWS Organizations 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 adalah anggota organisasi. Kunci kondisi global ini tidak mendukung tindakan berikut:

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • AWS Directory Service

      • ds:AcceptSharedDirectory

    • Amazon Elastic Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

    • AWS Security Hub CSPM

      • securityhub:AcceptAdministratorInvitation

  • Tipe data String

  • Jenis nilai — Single-valued

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 menambahkan dan menghapus akun, kebijakan yang menyertakan aws:ResourceOrgID kunci 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 kepala sekolah yang membuat permintaan.

penting

Kebijakan ini tidak mengizinkan tindakan apa pun. Sebaliknya, ia menggunakan Deny efek yang secara eksplisit menolak akses ke semua sumber daya yang tercantum dalam pernyataan yang bukan milik akun yang terdaftar. Gunakan kebijakan ini dalam kombinasi dengan kebijakan lain yang memungkinkan akses ke sumber daya tertentu.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }
catatan

Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang dihosting 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, bergantung pada 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 mendefinisikan 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 selengkapnya.

Dalam video berikut, pelajari selengkapnya tentang cara menggunakan kunci kondisi aws:ResourceOrgID dalam kebijakan.

aw:ResourceTag/kunci tag

Gunakan kunci ini untuk membandingkan pasangan kunci-nilai tag yang Anda tentukan dalam kebijakan dengan pasangan kunci-nilai yang dilampirkan 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 AWS sumber daya.

  • 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 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 — Single-valued

Kunci konteks ini diformat "aws:ResourceTag/tag-key":"tag-value" di mana tag-key dan tag-value merupakan kunci tag dan pasangan nilai. Kunci tag tidak peka huruf besar/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. Nilai dalam key/value pasangan tag ini peka huruf besar/kecil. Ini berarti bahwa jika Anda menentukan "aws:ResourceTag/TagKey1": "Production" dalam elemen kondisi kebijakan, kondisi tersebut cocok dengan nilai tag sumber daya yang diberi nama Production tetapi tidak akan cocok dengan production atauPRODUCTION.

Untuk contoh penggunaan aws:ResourceTag kunci untuk mengontrol akses ke sumber daya IAM, lihatMengontrol akses ke AWS sumber daya.

Untuk contoh penggunaan aws:ResourceTag kunci untuk mengontrol akses ke AWS sumber daya lain, lihatMengontrol akses ke AWS sumber daya menggunakan tag.

Untuk tutorial tentang menggunakan kunci kondisi aws:ResourceTag untuk kontrol akses berbasis atribut (ABAC), lihat Tutorial IAM: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag.

Properti permintaan

Gunakan kunci kondisi berikut untuk membandingkan detail tentang permintaan itu sendiri dan isi permintaan dengan properti permintaan yang Anda tentukan dalam kebijakan.

aws: CalledVia

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan, layanan yang membuat permintaan atas nama prinsipal IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke AWS layanan, layanan itu mungkin menggunakan kredenSIAL kepala sekolah untuk membuat permintaan selanjutnya ke layanan lain. Ketika permintaan dibuat menggunakan sesi akses maju (FAS), kunci ini diatur dengan nilai prinsipal layanan. Kunci aws:CalledVia berisi daftar yang dipesan dari setiap layanan dalam rantai yang membuat permintaan atas nama utama.

Untuk informasi selengkapnya, lihat Teruskan sesi akses.

  • Ketersedian – Kunci ini tersedia dalam permintaan saat layanan yang mendukung aws:CalledVia menggunakan kredensial prinsipal IAM untuk mengajukan permintaan ke layanan lain. Kunci ini tidak ada jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data String (daftar)

  • Jenis nilai — Multivalue

Untuk menggunakan kunci aws:CalledVia kondisi dalam kebijakan, Anda harus menyediakan prinsipal layanan untuk mengizinkan atau menolak permintaan AWS layanan. Misalnya, Anda dapat menggunakan AWS CloudFormation untuk membaca dan menulis dari tabel Amazon DynamoDB. DynamoDB kemudian menggunakan enkripsi yang disediakan oleh AWS Key Management Service ()AWS KMS.

Untuk memungkinkan atau menolak akses ketika setiap layanan membuat permintaan dengan menggunakan kredensial prinsipal, gunakan kunci kondisi aws:ViaAWSService. Kunci kondisi itu mendukung AWS layanan.

Kunci aws:CalledVia adalah tombol multinilai. Namun, Anda tidak dapat menerapkan perintah menggunakan kunci ini dalam suatu kondisi. Menggunakan contoh di atas, Pengguna 1 membuat permintaan ke CloudFormation, yang memanggil DynamoDB, yang memanggil. AWS KMS Ini adalah tiga permintaan terpisah. Panggilan terakhir AWS KMS dilakukan oleh Pengguna 1 melalui CloudFormation dan kemudian DynamoDB.

Contoh menggunakan aws:CalledVia.

Dalam kasus ini, kunci aws:CalledVia dalam konteks permintaan mencakup cloudformation.amazonaws.com dan dynamodb.amazonaws.com, dalam urutan tersebut. Jika Anda hanya peduli bahwa panggilan dilakukan melalui DynamoDB di suatu tempat dalam rantai permintaan, Anda dapat menggunakan kunci kondisi ini dalam kebijakan Anda.

Misalnya, kebijakan berikut memungkinkan pengelolaan AWS KMS kunci bernamamy-example-key, tetapi hanya jika DynamoDB adalah 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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1: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 di AWS KMS. AWS KMS Operasi ini hanya diperbolehkan jika beberapa permintaan disertakan dalam rantai. Permintaan pertama harus dibuat melalui CloudFormation dan terakhir melalui DynamoDB. Jika layanan lain membuat permintaan di tengah rantai, operasi masih diizinkan.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/my-example-key", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }

Kunci aws:CalledViaFirst dan aws:CalledViaLast tersedia dalam permintaan saat layanan menggunakan kredensial prisipal IAM untuk menghubungi layanan lain. Mereka menunjukkan layanan pertama dan terakhir yang melakukan panggilan dalam rantai permintaan. Misalnya, asumsikan bahwa CloudFormation memanggil layanan lain bernamaX Service, yang memanggil DynamoDB, yang kemudian memanggil. AWS KMS Panggilan terakhir AWS KMS dilakukan oleh User 1 via CloudFormation, thenX Service, dan kemudian DynamoDB. Ini pertama kali dipanggil melalui CloudFormation dan terakhir dipanggil melalui DynamoDB.

Contoh menggunakan aws: CalledViaFirst dan aws:CalledViaLast.

aws: CalledViaFirst

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan pertama yang mengajukan permintaan atas nama prinsipal IAM (pengguna atau peran). Untuk informasi selengkapnya, lihat aws:CalledVia.

  • Ketersediaan – Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredensial dari prinsipal IAM untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak ada jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data String

  • Jenis nilai — Single-valued

aw: CalledViaLast

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan terakhir yang mengajukan permintaan atas nama prinsipal IAM (pengguna atau peran). Untuk informasi selengkapnya, lihat aws:CalledVia.

  • Ketersediaan – Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredensial dari prinsipal IAM untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak ada jika layanan menggunakan peran layanan atau peran terkait layanan untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data String

  • Jenis nilai — Single-valued

aws:ViaAWSService

Gunakan kunci ini untuk memeriksa apakah seseorang Layanan AWS membuat permintaan ke layanan lain atas nama Anda menggunakan sesi akses maju (FAS).

Kunci konteks permintaan kembali true ketika layanan menggunakan sesi akses maju untuk membuat permintaan atas nama prinsipal IAM asli. Kunci konteks permintaan juga memberikan false saat prisipal langsung memanggil.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

aws: CalledVia AWSMCP

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan AWS MCP yang membuat permintaan atas nama prinsipal IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke layanan AWS MCP, layanan tersebut menggunakan kredenSIAL kepala sekolah untuk membuat permintaan selanjutnya ke layanan lain. Ketika permintaan dibuat menggunakan layanan AWS MCP, kunci ini diatur dengan nilai prinsipal layanan. K aws:CalledViaAWSMCP unci berisi nama prinsipal layanan dari layanan MCP yang membuat permintaan atas nama kepala sekolah.

  • Ketersediaan — Kunci ini hadir dalam permintaan ketika layanan AWS MCP menggunakan kredenSIAL dari prinsipal IAM untuk membuat permintaan ke layanan. AWS Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk mengizinkan atau menolak akses berdasarkan server MCP tertentu yang memulai permintaan. Misalnya, kebijakan berikut menolak operasi penghapusan sensitif saat diprakarsai melalui server MCP tertentu:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenySensitiveActionsViaSpecificMCP", "Effect": "Deny", "Action": [ "s3:DeleteBucket", "s3:DeleteObject", "dynamodb:DeleteTable" ], "Resource": "*", "Condition": { "StringEquals": { "aws:CalledViaAWSMCP": "aws-mcp.amazonaws.com" } } } ] }

AWS:melalui AWSMCPService

Gunakan kunci ini untuk memeriksa apakah layanan AWS MCP membuat permintaan ke AWS layanan lain atas nama Anda menggunakan sesi akses maju (FAS). Kunci konteks permintaan kembali true ketika layanan AWS MCP meneruskan permintaan ke AWS layanan atas nama prinsipal IAM asli. Kunci konteks permintaan juga memberikan false saat prisipal langsung memanggil.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan ketika server AWS MCP membuat permintaan ke AWS layanan hilir atas nama prinsipal IAM.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci ini untuk membatasi tindakan tertentu ketika mereka datang melalui server MCP. Misalnya, kebijakan berikut menolak operasi penghapusan sensitif saat dimulai melalui server AWS MCP apa pun:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenySensitiveActionsViaMCP", "Effect": "Deny", "Action": [ "s3:DeleteBucket", "s3:DeleteObject", "dynamodb:DeleteTable" ], "Resource": "*", "Condition": { "Bool": { "aws:ViaAWSMCPService": "true" } } } ] }

aw: 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 — Single-valued

aw: 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.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Jenis data - Tanggal, Numerik

  • Jenis nilai — Single-valued

aws:referer

Gunakan kunci ini untuk membandingkan siapa yang mereferensikan permintaan di browser klien denga perujuk yang Anda tentukan dalam kebijakan. Nilai konteks permintaan aws:referer diberikan oleh penelepon dalam header HTTP. Header Referer disertakan dalam permintaan browser web saat Anda memilih tautan di halaman web. Header Referer berisi URL halaman web tempat tautan dipilih.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika permintaan ke AWS sumber daya dipanggil dengan menautkan dari URL halaman web di browser. Kunci ini tidak disertakan untuk permintaan terprogram karena tidak menggunakan tautan browser untuk mengakses sumber daya AWS .

  • Tipe data String

  • Jenis nilai — Single-valued

Misalnya, Anda dapat mengakses objek Amazon S3 secara langsung menggunakan URL atau menggunakan invokasi API langsung. Untuk informasi lebih lanjut, lihat Operasi API Amazon S3 secara langsung menggunakan browser web. Saat Anda mengakses objek Amazon S3 dari URL yang ada di halaman web, URL halaman web sumber digunakan diaws:referer. Saat Anda mengakses objek Amazon S3 dengan mengetikkan URL ke browser Anda, tidak aws:referer ada. Saat Anda meminta API secara 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. Akibatnya, tidak aws:referer boleh digunakan untuk mencegah pihak yang tidak berwenang membuat 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.

aw: RequestedRegion

Gunakan kunci ini untuk membandingkan AWS Wilayah yang dipanggil 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 Wil AWS ayah untuk setiap layanan, lihat T itik akhir layanan dan kuota di Referensi Umum Amazon Web Services.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data String

  • Jenis nilai — Single-valued

Beberapa layanan global, seperti IAM, memiliki satu titik akhir. Karena titik akhir ini berada secara fisik di Wilayah Timur AS (N. Virginia), panggilan IAM 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, maka panggilan IAM selalu gagal. 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 operasi API yang meluas di seluruh wilayah.

  • Anda dapat meminta s3:PutBucketReplication di satu Wilayah (yang dipengaruhi oleh kunci kondisi aws:RequestedRegion, tetapi Wilayah lainnya dipengaruhi berdasarkan pengaturan konfigurasi replikasi.

  • Anda dapat memanggil s3:CreateBucket untuk membuat bucket di wilayah lain, dan menggunakan kunci s3:LocationConstraint kondisi untuk mengontrol wilayah yang berlaku.

Anda dapat menggunakan kunci konteks ini untuk membatasi akses ke AWS layanan dalam kumpulan Wilayah tertentu. Misalnya, kebijakan berikut memungkinkan pengguna untuk melihat semua instans Amazon EC2 di Konsol Manajemen AWS. 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).

JSON
{ "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" ] } } } ] }

aw:RequestTag/kunci tag

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 AWS permintaan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat pasangan kunci-nilai tag diteruskan dalam permintaan. Ketika beberapa tanda diteruskan dalam permintaan, ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.

  • Tipe data String

  • Jenis nilai — Single-valued

Kunci konteks ini diformat "aws:RequestTag/tag-key":"tag-value" di mana tag-key dan tag-value merupakan kunci tag dan pasangan nilai. Kunci tag tidak peka huruf besar/kecil. Ini berarti bahwa jika Anda menentukan "aws:RequestTag/TagKey1": "Value1" dalam elemen kondisi kebijakan, kondisi tersebut cocok dengan kunci tag permintaan bernama salah satu TagKey1 atautagkey1, tetapi tidak keduanya. Nilai dalam key/value pasangan tag ini peka huruf besar/kecil. Ini berarti bahwa jika Anda menentukan "aws:RequestTag/TagKey1": "Production" dalam elemen kondisi kebijakan, kondisi tersebut cocok dengan nilai tag permintaan yang diberi nama Production tetapi tidak akan cocok dengan production atauPRODUCTION.

Contoh ini menunjukkan bahwa meskipun kunci bernilai tunggal, Anda masih dapat menggunakan beberapa pasangan kunci-nilai dalam permintaan jika kuncinya berbeda.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2::111122223333:instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }

aw: TagKeys

Gunakan kunci ini untuk membandingkan kunci tanda dalam permintaan dengan kunci yang Anda sebutkan dalam kebijakan. Sebaiknya jika Anda menggunakan kebijakan untuk mengontrol akses menggunakan tag, gunakan kunci aws:TagKeys kondisi untuk menentukan kunci tag apa 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 — Multivalue

Kunci konteks ini diformat "aws:TagKeys":"tag-key" di mana 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 Mengatur operator untuk kunci konteks multinilai.

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 snapshot Amazon EC2 Anda harus menyertakan ec2:CreateSnapshot tindakan pembuatan dan ec2:CreateTags menandai tindakan di dalam kebijakan. Untuk melihat kebijakan untuk skenario yang digunakan iniaws:TagKeys, lihat Membuat Snapshot dengan Tag di Panduan Pengguna Amazon EC2.

aw: SecureTransport

Gunakan kunci ini untuk memeriksa apakah permintaan dikirim menggunakan TLS. Konteks permintaan mengembalikan true atau false. Dalam kebijakan, Anda dapat mengizinkan tindakan tertentu hanya jika permintaan dikirim menggunakan TLS.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

aw: SourceAccount

Gunakan kunci ini untuk membandingkan ID akun sumber daya yang membuat permintaan layanan-ke-layanan dengan ID akun yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh prinsipal layanan. AWS

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan secara langsung oleh kepala sekolah AWS layanan atas nama sumber daya yang konfigurasi memicu permintaan layanan-ke-layanan. Layanan panggilan meneruskan ID akun sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan di seluruh wilayah. 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 yang membingungkan lintas layanan.

    aws:SourceAccount.
  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari akun tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya (RCP) berikut untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali permintaan tersebut dipicu oleh sumber daya di akun yang ditentukan. Kebijakan ini menerapkan kontrol hanya pada permintaan oleh prinsipal layanan ("Bool": {"aws:PrincipalIsAWSService": "true"}) yang memiliki aws:SourceAccount kunci 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 dievaluasi ketrue, menyebabkan aws:SourceAccount kunci ditegakkan.

JSON
{ "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 prinsi Layanan AWS pal, gunakan kunci untuk membatasi izin yang diberikan kepada layanan. Misalnya, ketika bucket Amazon S3 dikonfigurasi untuk mengirim notifikasi ke topik Amazon SNS, layanan Amazon S3 memanggil operasi sns:Publish API untuk semua peristiwa yang dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish operasi, tetapkan nilai kunci kondisi ke ID akun bucket Amazon S3.

aw: SourceArn

Gunakan kunci ini untuk membandingkan Nama Sumber Daya Amazon (ARN) dari sumber daya yang membuat permintaan layanan-ke-layanan dengan ARN yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh prinsipal layanan. AWS Ketika ARN sumber menyertakan ID akun, itu tidak perlu digunakan aws:SourceAccount denganaws:SourceArn.

Kunci ini tidak bekerja dengan ARN dari prinsipal yang membuat permintaan. Sebaliknya, gunakan aws: PrincipalArn.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan secara langsung oleh kepala sekolah AWS layanan atas nama sumber daya yang konfigurasi memicu permintaan layanan-ke-layanan. Layanan panggilan meneruskan ARN dari sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan di seluruh wilayah. 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 yang membingungkan lintas layanan.

    aws:SourceArn.
  • Tipe data — ARN

    AWS merekomendasikan agar Anda menggunakan operator ARN al ih-alih operator string saat membandingkan ARN.

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari sumber daya tertentu. Saat menggunakan kebijakan berbasis sumber daya dengan prinsip Layanan AWS sebagaiPrincipal, tetapkan nilai kunci kondisi ini ke ARN sumber daya yang ingin Anda batasi aksesnya. Misalnya, ketika bucket Amazon S3 dikonfigurasi untuk mengirim notifikasi ke topik Amazon SNS, layanan Amazon S3 memanggil operasi sns:Publish API untuk semua peristiwa yang dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish operasi, 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 Layanan AWS Anda gunakan.

aws: SourceOrg ID

Gunakan kunci ini untuk membandingkan ID https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html organisasi sumber daya yang membuat permintaan layanan-ke-layanan dengan ID organisasi yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh prinsipal layanan. AWS Saat Anda menambahkan dan menghapus akun ke organisasi di AWS Organizations, kebijakan yang menyertakan aws:SourceOrgID kunci 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 secara langsung oleh kepala sekolah AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan meneruskan ID organisasi dari sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan di seluruh wilayah. 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 yang membingungkan lintas layanan.

    aws: SourceOrg ID.
  • Tipe data String

  • Jenis nilai — Single-valued

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari organisasi tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya (RCP) berikut untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali permintaan tersebut dipicu oleh sumber daya di organisasi yang ditentukan AWS . Kebijakan ini menerapkan kontrol hanya pada permintaan oleh prinsipal layanan ("Bool": {"aws:PrincipalIsAWSService": "true"}) yang memiliki aws:SourceAccount kunci 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 dievaluasi ketrue, menyebabkan aws:SourceOrgID kunci ditegakkan. Kami menggunakan aws:SourceOrgID al aws:SourceAccount ih-alih operator Null kondisi sehingga kontrol tetap berlaku jika permintaan berasal dari akun yang bukan milik organisasi.

JSON
{ "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" } } } ] }

aw: SourceOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang membuat permintaan layanan-ke-layanan dengan jalur organisasi yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh prinsipal layanan. AWS Jal AWS Organizations ur adalah representasi teks dari struktur AWS Organizations entitas. Untuk informasi selengkapnya tentang 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 secara langsung oleh kepala sekolah AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati jalur organisasi dari sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan di seluruh wilayah. 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 yang membingungkan lintas layanan.

    aws:SourceOrgPaths.
  • Tipe data String (daftar)

  • Jenis nilai — Multivalue

Gunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari unit organisasi tertentu (OU) di 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 multivalue dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan operator ForAnyValue atau ForAllValues set dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Mengatur operator untuk kunci konteks multinilai.

aw: 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 — Single-valued

Awas

Kunci ini harus digunakan dengan hati-hati. Sejak aws:UserAgent nilai disediakan oleh pemanggil dalam header HTTP, pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan nilai aws:UserAgent yang mereka pilih. Akibatnya, tidak aws:UserAgent boleh digunakan untuk mencegah pihak yang tidak berwenang membuat AWS permintaan langsung. Anda dapat menggunakannya hanya untuk mengizinkan aplikasi klien tertentu, dan hanya setelah menguji kebijakan Anda.

aw: IsMcpServiceAction

Gunakan kunci ini untuk memverifikasi bahwa tindakan yang diotorisasi adalah tindakan Layanan MCP. Kunci ini tidak mengacu pada tindakan yang diambil oleh layanan MCP ke AWS layanan lain.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan dan disetel ke True hanya ketika layanan MCP mengotorisasi tindakan layanan MCP.

  • Tipe data Boolean

  • Jenis nilai — Single-valued

Kunci kondisi lintas layanan lainnya

AWS STS mendukung kunci kondisi SAML-based federasi dan kunci kondisi lintas layanan untuk federasi OIDC. Kunci ini tersedia ketika pengguna yang digabungkan menggunakan OIDC atau SAML melakukan AWS operasi di layanan lain.