AWS Kunci konteks kondisi - 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

Ketika kepala sekolah membuat permintaan AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan. Anda dapat menggunakan Condition elemen JSON kebijakan untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Informasi permintaan disediakan oleh sumber yang berbeda, termasuk prinsipal yang membuat permintaan, sumber daya permintaan dibuat terhadap, dan metadata tentang permintaan itu sendiri.

Kunci kondisi global dapat digunakan di semua AWS layanan. Meskipun kunci kondisi ini dapat digunakan di semua kebijakan, kunci tidak tersedia di setiap konteks permintaan. Misalnya, kunci aws:SourceAccount kondisi hanya tersedia ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan. Untuk mempelajari lebih lanjut tentang keadaan saat kunci global disertakkan dalam konteks permintaan, lihat informasi Ketersediaan untuk setiap kunci.

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

Kunci kondisi khusus layanan didefinisikan untuk digunakan dengan layanan individual AWS . Misalnya, Amazon S3 memungkinkan Anda menulis kebijakan dengan kunci s3:VersionId kondisi untuk membatasi akses ke versi tertentu dari objek Amazon S3. Kunci kondisi ini unik untuk layanan, artinya hanya berfungsi dengan permintaan ke layanan Amazon S3. Untuk kunci kondisi yang spesifik layanan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan dan pilih layanan yang kuncinya ingin Anda lihat.

catatan

Jika Anda menggunakan kunci kondisi yang hanya tersedia dalam beberapa keadaan, Anda dapat menggunakan IfExistsversi operator kondisi. Jika kunci kondisi hilang dari konteks permintaan, kebijakan dapat gagal dalam evaluasi. Misalnya, gunakan blok berikut dengan ...IfExists operator untuk mencocokkan saat permintaan berasal dari rentang IP tertentu atau dari yang spesifikVPC. Jika salah satu atau kedua kunci tidak disertakan dalam konteks permintaan, kondisi masih akan mengembalikan true. Nilai hanya diperiksa jika kunci yang ditentukan disertakan dalam konteks permintaan. Untuk informasi selengkapnya tentang bagaimana kebijakan dievaluasi ketika kunci tidak ada untuk operator lain, lihat Operator kondisi.

"Condition": { "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] }, "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} }
penting

Untuk membandingkan kondisi Anda terhadap konteks permintaan dengan beberapa nilai kunci, Anda harus menggunakan operator kumpulan ForAllValues atau ForAnyValue. Gunakan operator set hanya dengan kunci kondisi multi-nilai. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi.

Kunci kondisi sensitif

Kunci kondisi berikut dianggap sensitif karena nilainya dihasilkan oleh mesin. Penggunaan wildcard dalam kunci kondisi ini tidak memiliki kasus penggunaan yang valid, bahkan dengan substring dari nilai kunci dengan wildcard. Ini karena wildcard dapat mencocokkan kunci kondisi dengan nilai apa pun, yang dapat menimbulkan risiko keamanan.

Sifat-sifat kepala sekolah

Gunakan kunci kondisi berikut untuk membandingkan detail prinsipal yang mengajukan permintaan dengan properti utama yang Anda sebutkan dalam kebijakan. Untuk daftar kepala sekolah yang dapat membuat permintaan, lihat. Cara menentukan kepala sekolah

aws: PrincipalArn

Gunakan kunci ini untuk membandingkan Amazon Resource Name (ARN) prinsipal yang mengajukan permintaan dengan ARN yang Anda sebutkan dalam kebijakan. Untuk IAM peran, konteks permintaan ARN memberikan peran, bukan pengguna ARN yang mengambil peran tersebut.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan untuk semua permintaan yang ditandatangani. Permintaan anonim tidak menyertakan kunci ini. Anda dapat menentukan jenis prinsipal berikut dalam kunci kondisi ini:

    • IAMperan

    • IAMpengguna

    • AWS STS Sesi pengguna gabungan

    • Akun AWS pengguna root

  • Tipe data - ARN

    AWS merekomendasikan agar Anda menggunakan ARNoperator alih-alih operator string saat membandingkanARNs.

  • Jenis nilai - Bernilai tunggal

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

    • IAMperan - Konteks permintaan berisi nilai berikut untuk kunci kondisiaws:PrincipalArn. Jangan tentukan sesi peran yang diasumsikan ARN sebagai nilai untuk kunci kondisi ini. Untuk informasi lebih lanjut tentang prinsipal sesi peran, lihatKepala sesi peran.

      arn:aws:iam::123456789012:role/role-name
    • IAMuser - Konteks permintaan berisi nilai berikut untuk kunci kondisiaws:PrincipalArn.

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

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

      arn:aws:iam::123456789012:root

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

aws: PrincipalAccount

Gunakan kunci ini untuk membandingkan akun yang memiliki prinsipal yang meminta dengan pengenal akun yang Anda tentukan dalam kebijakan. Untuk permintaan anonim, konteks permintaan akan ditampilkananonymous.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Dalam contoh berikut, akses ditolak kecuali ke kepala sekolah dengan nomor rekening. 123456789012

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

aws: PrincipalOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur untuk prinsipal yang membuat permintaan ke jalur dalam kebijakan. Prinsipal tersebut dapat menjadi IAM pengguna, IAM peran, pengguna gabungan, atau Pengguna root akun AWS. Dalam kebijakan, kunci kondisi ini memastikan bahwa pemohon adalah anggota akun dalam akar organisasi atau unit organisasi (OUs) yang ditentukan di AWS Organizations. AWS Organizations Jalur adalah representasi teks dari struktur entitas Organizations. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat Memahami jalur entitas AWS Organizations.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

catatan

Organisasi unik IDs secara global tetapi OU IDs dan root IDs hanya unik dalam suatu organisasi. Ini berarti bahwa tidak ada dua organisasi yang memiliki ID organisasi yang sama. Namun, organisasi lain mungkin memiliki OU atau root dengan ID yang sama seperti milik Anda. Kami merekomendasikan agar Anda selalu menyertakan ID organisasi saat menentukan OU atau root.

Misalnya, kondisi berikut memberikan prinsipal di akun yang disematkan langsung ke ou-ab12-22222222 OU, tetapi tidak dalam anakannya. true OUs

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

Kondisi berikut memberikan true prinsipal di akun yang dilampirkan langsung ke OU atau salah satu anaknya. OUs Ketika Anda menyertakan wildcard, Anda harus menggunakan operator kondisi StringLike.

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

Kondisi berikut memberikan prinsipal di akun yang disematkan langsung ke salah satu anakOUs, tetapi tidak langsung ke OU induk. true Kondisi sebelumnya ditujukan untuk OU atau turunannya. Kondisi berikut hanya ditujukan untuk turunannya (dan turunan dari turunan tersebut).

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

Kondisi berikut memungkinkan akses untuk setiap prinsipal dalam organisasi o-a1b2c3d4e5, terlepas dari OU indukannya.

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

aws:PrincipalOrgPaths adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Saat Anda menggunakan beberapa nilai dengan operator kondisi ForAnyValue, jalur prinsipal harus sesuai dengan salah satu jalur yang tercantum dalam kebijakan. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.

"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }

aws: PrincipalOrg ID

Gunakan kunci ini untuk membandingkan pengidentifikasi organisasi tempat prinsipal AWS Organizations yang meminta berada dengan pengidentifikasi yang ditentukan dalam kebijakan.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Kunci global ini menyediakan alternatif untuk mendaftar semua akun IDs untuk semua AWS akun di suatu organisasi. Anda dapat menggunakan tombol kondisi ini untuk menyederhanakan penentuan elemen Principal dalam kebijakan berbasis sumber daya. Anda dapat menentukan ID organisasi dalam elemen kondisi. Saat Anda menambah dan menghapus akun, kebijakan yang mencakup kunci aws:PrincipalOrgID akan secara otomatis menyertakan akun yang benar dan tidak memerlukan pembaruan manual.

Misalnya, kebijakan bucket Amazon S3 berikut memungkinkan anggota akun mana pun di organisasi o-xxxxxxxxxxx untuk menambahkan objek ke dalam bucket amzn-s3-demo-bucket.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
catatan

Kondisi global ini juga berlaku pada akun manajemen dari suatu AWS organisasi. Kebijakan ini mencegah semua kepala sekolah di luar organisasi tertentu mengakses bucket Amazon S3. Ini termasuk AWS layanan apa pun yang berinteraksi dengan sumber daya internal Anda, seperti AWS CloudTrail mengirim data log ke bucket Amazon S3 Anda. Untuk mempelajari bagaimana Anda dapat memberikan akses AWS layanan dengan aman, lihataws: PrincipalIs AWSService.

Untuk informasi lebih lanjut tentang AWS Organizations, lihat Apa itu AWS Organizations? dalam AWS Organizations User Guide.

aws:PrincipalTag/tag-kunci

Gunakan kunci ini untuk membandingkan tanda yang dilampirkan ke prinsipal yang mengajukan permintaan dengan tanda yang Anda tentukan dalam kebijakan. Jika prinsipal memiliki lebih dari satu tanda yang dilampirkan, konteks permintaan mencakup satu kunci aws:PrincipalTag untuk setiap kunci tanda yang dilampirkan.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

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

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

aws: PrincipalIs AWSService

Gunakan kunci ini untuk memeriksa apakah panggilan ke sumber daya Anda sedang dilakukan secara langsung oleh prinsipal AWS layanan. Misalnya, AWS CloudTrail gunakan prinsipal layanan cloudtrail.amazonaws.com untuk menulis log ke bucket Amazon S3 Anda. Kunci konteks permintaan diatur ke benar ketika layanan menggunakan prinsipal layanan untuk melakukan tindakan langsung pada sumber daya Anda. Kunci konteks diatur ke salah jika layanan menggunakan kredensi IAM prinsipal untuk membuat permintaan atas nama prinsipal. Itu juga diatut ke salah jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.

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

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }

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

aws: PrincipalServiceName

Gunakan kunci ini untuk membandingkan nama prinsipal layanan dalam kebijakan dengan prinsipal layanan yang membuat permintaan untuk sumber daya Anda. Anda dapat menggunakan kunci ini untuk memeriksa apakah panggilan ini dibuat oleh prinsipal layanan tertentu. Ketika prinsipal layanan membuat permintaan langsung ke sumber daya Anda,kunci aws:PrincipalServiceNameberisi nama prinsipal layanan. Misalnya, nama utama AWS CloudTrail layanan adalahcloudtrail.amazonaws.com.

  • Ketersediaan — Kunci ini tersedia dalam permintaan saat panggilan dibuat oleh prinsipal AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:

    • Jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.

    • Jika layanan menggunakan kredensil IAM prinsipal untuk mengajukan permintaan atas nama prinsipal.

    • Jika panggilan dilakukan secara langsung oleh IAM prinsipal.

    • Jika panggilan dilakukan oleh pemohon anonim.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/AWS Logs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }

aws: PrincipalServiceNamesList

Kunci ini menyediakan daftar semua nama prinsipal layanan yang termasuk dalam layanan. Ini adalah kunci kondisi lanjutan. Anda dapat menggunakannya untuk membatasi layanan dari mengakses sumber daya Anda hanya dari Wilayah tertentu. Beberapa layanan dapat membuat prinsipal layanan Regional untuk menunjukkan instans layanan tertentu dalam Wilayah tertentu. Anda dapat membatasi akses ke sumber daya untuk instans layanan tertentu. Saat prinsipal layanan membuat permintaan langsung ke sumber daya Anda, aws:PrincipalServiceNamesList berisi daftar seluruh nama prinsipal layanan yang tidak diurutkan yang terkait dengan instans Regional layanan.

  • Ketersediaan — Kunci ini tersedia dalam permintaan saat panggilan dibuat oleh prinsipal AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:

    • Jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.

    • Jika layanan menggunakan kredensil IAM prinsipal untuk mengajukan permintaan atas nama prinsipal.

    • Jika panggilan dilakukan secara langsung oleh IAM prinsipal.

    • Jika panggilan dilakukan oleh pemohon anonim.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

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

aws: PrincipalType

Gunakan kunci ini untuk membandingkan tipe prinsipal yang membuat permintaan dengan tipe prinsipal yang Anda sebutkan dalam kebijakan. Untuk informasi selengkapnya, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal kunci, lihatNilai-nilai kunci utama.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws:userid

Gunakan kunci ini untuk membandingkan pengenal prinsipal pemohon dengan ID yang Anda tentukan dalam kebijakan. Untuk IAM pengguna, nilai konteks permintaan adalah ID pengguna. Untuk IAM peran, format nilai ini dapat bervariasi. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal kunci, lihatNilai-nilai kunci utama.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws:username

Gunakan kunci ini untuk membandingkan nama pengguna pemohon dengan nama pengguna yang Anda sebutkan dalam kebijakan. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat Cara menentukan kepala sekolah. Untuk contoh spesifik dari nilai-nilai principal kunci, lihatNilai-nilai kunci utama.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Properti sesi peran

Gunakan tombol kondisi berikut untuk membandingkan properti sesi peran pada saat sesi dibuat. Kunci kondisi ini hanya tersedia jika permintaan dibuat oleh prinsipal dengan sesi peran atau kredenal pengguna gabungan. Nilai untuk kunci kondisi ini disematkan dalam token sesi peran.

Peran adalah jenis kepala sekolah. Anda juga dapat menggunakan kunci kondisi dari Sifat-sifat kepala sekolah bagian untuk mengevaluasi properti peran saat peran membuat permintaan.

aws: AssumedRoot

Gunakan kunci ini untuk memeriksa apakah permintaan dilakukan menggunakan AssumeRoot. AssumeRootmengembalikan kredensi jangka pendek untuk sesi pengguna root istimewa yang dapat Anda gunakan untuk mengambil tindakan istimewa pada akun anggota di organisasi Anda. Untuk informasi selengkapnya, lihat Kelola akses root untuk akun anggota secara terpusat.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredenal dari AssumeRootuntuk membuat permintaan.

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

Dalam contoh berikut, kebijakan tersebut menolak AssumeRoot sesi menghapus kebijakan bucket Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAssumeRoot", "Effect": "Deny", "Action": "s3:DeleteBucketPolicy", "Resource": "*", "Condition": { "StringEqualsIfExists": { "aws:AssumedRoot": "true" } } } ] }

aws: FederatedProvider

Gunakan kunci ini untuk membandingkan penyedia identitas penerbit (iDP) dengan idP yang Anda sebutkan dalam kebijakan. Ini berarti bahwa IAM peran diasumsikan menggunakan AssumeRoleWithWebIdentity AWS STS operasi. Bila kredensi sementara sesi peran yang dihasilkan digunakan untuk membuat permintaan, konteks permintaan mengidentifikasi IDP yang mengautentikasi identitas federasi asli.

  • Ketersediaan — Kunci ini hadir ketika prinsipal adalah kepala sesi peran dan sesi itu dikeluarkan ketika peran diasumsikanAssumeRoleWithWebIdentity.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Misalnya, jika pengguna diautentikasi melalui Amazon Cognito, konteks permintaan mencakup nilai. cognito-identity.amazonaws.com Demikian pula, jika pengguna diautentikasi melalui Login with Amazon, konteks permintaan mencakup nilaiwww.amazon.com.

Anda dapat menggunakan kunci kondisi bernilai tunggal apa pun sebagai variabel. Contoh kebijakan berbasis sumber daya berikut menggunakan aws:FederatedProvider kunci sebagai variabel kebijakan dalam sumber daya. ARN Kebijakan ini memungkinkan prinsipal mana pun yang melakukan autentikasi menggunakan IdP agar objek keluar dari bucket Amazon S3 dengan jalur yang spesifik untuk penyedia identitas yang menerbitkan.

aws: TokenIssueTime

Gunakan kunci ini untuk membandingkan tanggal dan waktu saat kredensial keamanan sementara dikeluarkan dengan tanggal dan waktu yang Anda tentukan dalam kebijakan.

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kuncinya tidak ada di AWS CLI, AWS API, atau AWS SDK permintaan yang dibuat menggunakan kunci akses.

  • Tipe data - Tanggal

  • Jenis nilai - Bernilai tunggal

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

aws: MultiFactorAuthAge

Gunakan kunci ini untuk membandingkan jumlah detik sejak prinsipal yang meminta diberi kewenangan menggunakan nomor MFA yang Anda sebutkan dalam kebijakan. Untuk informasi lebih lanjut tentangMFA, lihatAWS Otentikasi multi-faktor di IAM.

penting

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

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

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredenal keamanan sementara untuk membuat permintaan. Kebijakan dengan MFA ketentuan dapat dilampirkan ke:

    • Pengguna atau grup IAM

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

    • Kebijakan kepercayaan dari IAM peran yang dapat diasumsikan oleh pengguna

  • Tipe data - Numerik

  • Jenis nilai - Bernilai tunggal

aws: MultiFactorAuthPresent

Gunakan kunci ini untuk memeriksa apakah Multi-Factor Authentication (MFA) digunakan untuk memvalidasi kredenal keamanan sementara yang membuat permintaan.

penting

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

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

  • Ketersediaan – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kebijakan dengan MFA ketentuan dapat dilampirkan ke:

    • Pengguna atau grup IAM

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

    • Kebijakan kepercayaan dari IAM peran yang dapat diasumsikan oleh pengguna

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

Kredensi sementara digunakan untuk mengautentikasi IAM peran dan IAM pengguna dengan token sementara dari AssumeRoleatau GetSessionToken, dan pengguna. AWS Management Console

IAMKunci akses pengguna merupakan kredensi jangka panjang, tetapi dalam beberapa kasus, AWS membuat kredenal sementara atas nama IAM pengguna untuk melakukan operasi. Dalam kasus ini, kunci aws:MultiFactorAuthPresent tersedia dalam permintaan dan diatur ke nilai false. Ada dua kasus umum hal ini bisa terjadi:

  • IAMPengguna di tempat AWS Management Console tanpa sengaja menggunakan kredensi sementara. Pengguna masuk ke konsol menggunakan nama pengguna dan kata sandi yang merupakan kredensial jangka panjang. Namun, di latar belakang, konsol membuat kredensial sementara atas nama pengguna.

  • Jika IAM pengguna melakukan panggilan ke AWS layanan, layanan akan menggunakan kembali kredensi pengguna untuk membuat permintaan lain ke layanan lain. Misalnya, saat menghubungi Athena untuk mengakses bucket Amazon S3, atau saat AWS CloudFormation menggunakan untuk membuat instans Amazon. EC2 Untuk permintaan selanjutnya, AWS gunakan kredensi sementara.

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

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

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

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

Kombinasi dari Deny efek, Bool elemen, dan false nilai ini menghalangi permintaan yang dapat diautentikasi menggunakanMFA, tetapi tidak. Ini hanya berlaku untuk kredensi sementara yang mendukung penggunaan. MFA Pernyataan ini tidak menolak akses ke permintaan yang dibuat menggunakan kredensi jangka panjang, atau permintaan yang diautentikasi menggunakan. MFA Gunakan contoh ini dengan hati-hati karena logikanya rumit dan tidak menguji apakah MFA autentikasi benar-benar digunakan.

Jangan juga menggunakan kombinasi efek Deny, elemen Null, dan true karena contoh berperilaku dengan cara yang sama dan logikanya bahkan lebih rumit.

Kombinasi yang Direkomendasikan

Kami sarankan Anda menggunakan BoolIfExistsoperator untuk memeriksa apakah permintaan teraotentikasi menggunakanMFA.

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

Kombinasi iniDeny,BoolIfExists, dan false menolak permintaan yang tidak diautentikasi menggunakan. MFA Secara khusus, operator ini menolak permintaan dari kredensil sementara yang tidak disertakan. MFA Operator ini juga menolak permintaan yang dibuat menggunakan kredensi jangka panjang, seperti AWS API operasi AWS CLI atau operasi yang dilakukan menggunakan kunci akses. Operator *IfExists memeriksa keberadaan kunci aws:MultiFactorAuthPresent dan apakah bisa tersedia atau tidak, sebagaimana yang ditunjukkan oleh keberadaannya. Gunakan ini saat Anda ingin menolak permintaan apa pun yang tidak diautentikasi menggunakanMFA. Tindakan ini lebih aman, tetapi dapat memecahkan kode atau skrip apa pun yang menggunakan kunci akses untuk mengakses AWS CLI atau AWS API.

Kombinasi Alternatif

Anda juga dapat menggunakan BoolIfExistsoperator untuk mengizinkan permintaan yang MFA diautentikasi dan AWS CLI atau AWS API permintaan yang dibuat menggunakan kredensi jangka panjang.

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

Kondisi ini cocok jika kunci ada dan tersedia atau jika kunci tidak ada. KombinasiAllow,BoolIfExists, dan true memungkinkan permintaan yang diautentikasi menggunakanMFA, atau permintaan yang tidak dapat diautentikasi menggunakan. MFA Ini berarti bahwa AWS CLI, AWS API, dan AWS SDK operasi diperbolehkan ketika pemohon menggunakan kunci akses jangka panjang mereka. Kombinasi ini tidak memungkinkan permintaan dari kredensil sementara yang bisa, tetapi tidak mencakup. MFA

Saat Anda membuat kebijakan menggunakan editor visual IAM konsol dan memilih yang MFAdiperlukan, kombinasi ini akan diterapkan. Pengaturan ini membutuhkan MFA akses konsol, tetapi memungkinkan akses terprogram tanpaMFA.

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

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

Kombinasi dariAllow,Bool, dan hanya true memungkinkan permintaan yang MFA diautentikasi. Ini hanya berlaku untuk kredensi sementara yang mendukung penggunaan. MFA Pernyataan ini tidak memungkinkan akses ke permintaan yang dilakukan menggunakan access key jangka panjang, atau untuk permintaan yang dilakukan menggunakan kredenal sementara tanpa. MFA

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

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

Kombinasi dari Allow efek, Null elemen, dan false nilai ini hanya memungkinkan permintaan yang dapat diautentikasi menggunakanMFA, terlepas dari apakah permintaan tersebut benar-benar diautentikasi. Ini memungkinkan semua permintaan yang dibuat menggunakan kredensial sementara, dan menolak akses untuk kredensial jangka panjang. Gunakan contoh ini dengan hati-hati karena tidak menguji apakah MFA -authentication benar-benar digunakan.

aws: ChatbotSourceArn

Gunakan kunci ini untuk membandingkan konfigurasi obrolan sumber yang ARN diatur oleh prinsipal ke konfigurasi obrolan yang ARN Anda sebutkan dalam kebijakan IAM peran yang terkait dengan konfigurasi channel. Anda dapat mengotorisasi permintaan berdasarkan sesi peran asumsikan yang dimulai oleh. AWS Chatbot

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan oleh AWS Chatbot layanan setiap kali sesi peran diasumsikan. Nilai kuncinya adalah konfigurasi obrolanARN, seperti saat Anda menjalankan AWS CLI perintah dari saluran obrolan.

  • Tipe data - ARN

  • Jenis nilai - Bernilai tunggal

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

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

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

AWS: EC2 InstanceSourceVpc

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

catatan

Kunci kondisi ini tidak tersedia di EC2 -Classic.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSameVPC", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

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

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

AWS: EC2 InstanceSourcePrivate IPv4

Kunci ini mengidentifikasi IPv4 alamat pribadi dari elastisitas network interface utama tempat kredensi EC2 IAM peran Amazon dikirimkan. Anda harus menggunakan kunci kondisi ini dengan kunci pendampingnya aws:Ec2InstanceSourceVpc untuk memastikan bahwa Anda memiliki kombinasi VPC ID dan IP pribadi sumber yang unik secara global. Gunakan kunci ini aws:Ec2InstanceSourceVpc untuk memastikan bahwa permintaan dibuat dari alamat IP pribadi yang sama dengan yang dikirimkan kredensialnya.

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

  • Tipe dataalamat IP

  • Jenis nilai - Bernilai tunggal

penting

Kunci ini tidak boleh digunakan sendiri dalam sebuah Allow pernyataan. Alamat IP pribadi menurut definisi tidak unik secara global. Anda harus menggunakan aws:Ec2InstanceSourceVpc kunci setiap kali Anda menggunakan aws:Ec2InstanceSourcePrivateIPv4 kunci untuk menentukan kredensi EC2 instans Amazon VPC Anda dapat digunakan.

catatan

Kunci kondisi ini tidak tersedia di EC2 -Classic.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

aws: SourceIdentity

Gunakan kunci ini untuk membandingkan identitas sumber yang ditetapkan oleh prinsipal dengan identitas sumber yang Anda tentukan dalam kebijakan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setelah identitas sumber diatur saat peran diasumsikan menggunakan CLI perintah atau operasi AWS STS assume-role. AWS STS AssumeRole API

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci ini dalam kebijakan untuk mengizinkan tindakan AWS berdasarkan prinsipal yang sudah menetapkan identitas sumber ketika mengasumsikan peran. Aktivitas untuk identitas sumber yang ditentukan peran muncul diAWS CloudTrail. Ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran dalam AWS.

Tidak seperti sts:RoleSessionName, setelah identitas sumber diatur, nilai tidak dapat diubah. Ini terdapat dalam konteks permintaan untuk semua tindakan yang diambil oleh peran. Nilai tetap ada dalam sesi peran berikutnya saat Anda menggunakan kredenal sesi untuk mengasumsikan peran lain. Mengasumsikan satu peran dari peran lain disebut rantai peran.

sts:SourceIdentityKuncinya hadir dalam permintaan ketika prinsipal awalnya menetapkan identitas sumber sambil mengasumsikan peran menggunakan perintah peran apa pun AWS STS , atau operasiCLI. AWS STS AssumeRole API Kunci aws:SourceIdentity tersedia dalam permintaan untuk tindakan apa pun yang diambil dengan sesi peran yang menetapkan identitas sumber.

Kebijakan kepercayaan peran berikut untuk CriticalRole dalam akun 111122223333 berisi kondisi untuk aws:SourceIdentity yang mencegah prinsipal tanpa identitas sumber yang diatur ke Saanvi atau Diego dari mengasumsikan peran.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }

Untuk informasi selengkapnya tentang menggunakan informasi identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.

EC2: RoleDelivery

Gunakan kunci ini untuk membandingkan versi layanan metadata instans dalam permintaan yang ditandatangani dengan kredenal IAM peran untuk Amazon. EC2 Layanan metadata instans membedakan antara IMDSv1 dan IMDSv2 permintaan berdasarkan apakah, untuk permintaan tertentu, baik itu GET header PUT atau yang unik untukIMDSv2, ada dalam permintaan itu.

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

  • Tipe data - Numerik

  • Jenis nilai - Bernilai tunggal

  • Nilai contoh - 1.0, 2.0

Anda dapat mengonfigurasi Layanan Metadata Instance (IMDS) pada setiap instans sehingga harus digunakan oleh kode lokal atau pengguna. IMDSv2 Saat Anda menentukan yang IMDSv2 harus digunakan, IMDSv1 tidak lagi berfungsi.

  • Layanan Metadata Instans Versi 1 (IMDSv1) - Metode permintaan/tanggapan

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

Untuk informasi tentang cara mengonfigurasi instans yang akan digunakanIMDSv2, lihat Mengonfigurasi opsi metadata instans.

Dalam contoh berikut, akses ditolak jika RoleDelivery nilai ec2: dalam konteks permintaan adalah 1.0 (IMDSv1). Pernyataan kebijakan ini dapat diterapkan secara umum karena, jika permintaan tidak ditandatangani oleh kredensi EC2 peran Amazon, tidak ada dampak yang terjadi.

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

Untuk informasi lebih lanjut, lihat Contoh kebijakan dalam bekerja dengan metadata instans.

EC2: SourceInstanceArn

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

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

  • Tipe data - ARN

  • Jenis nilai - Bernilai tunggal

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

Untuk contoh kebijakan, lihat Pengabulan sebuah instans tertentu untuk melihat sumber daya di AWS layanan lainnya.

lem: RoleAssumedBy

AWS Glue Layanan menetapkan kunci kondisi ini untuk setiap AWS API permintaan di mana AWS Glue membuat permintaan menggunakan peran layanan atas nama pelanggan (bukan oleh pekerjaan atau titik akhir pengembang, tetapi langsung oleh AWS Glue layanan). Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue layanan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat AWS Glue mengajukan permintaan menggunakan peran layanan atas nama pelanggan.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

  • Nilai contoh - Kunci ini selalu diatur keglue.amazonaws.com.

Contoh berikut menambahkan kondisi untuk mengizinkan AWS Glue layanan mendapatkan objek dari bucket Amazon S3.

{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }

lem: CredentialIssuingService

AWS Glue Layanan menetapkan kunci ini untuk setiap AWS API permintaan menggunakan peran layanan yang berasal dari pekerjaan atau titik akhir pengembang. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue pekerjaan atau titik akhir pengembang.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan saat AWS Glue membuat permintaan yang berasal dari titik akhir pekerjaan atau pengembang.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

  • Nilai contoh - Kunci ini selalu diatur keglue.amazonaws.com.

Contoh berikut menambahkan kondisi yang melekat pada IAM peran yang digunakan oleh AWS Glue pekerjaan. Ini memastikan tindakan tertentu diizinkan/ditolak berdasarkan apakah sesi peran digunakan untuk lingkungan runtime AWS Glue pekerjaan.

{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }

lambda: SourceFunctionArn

Gunakan kunci ini untuk mengidentifikasi fungsi Lambda tempat ARN kredensil IAM peran dikirimkan. Layanan Lambda menetapkan kunci ini untuk setiap AWS API permintaan yang berasal dari lingkungan eksekusi fungsi Anda. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari kode fungsi Lambda tertentu. Lambda juga menetapkan kunci ini untuk beberapa permintaan yang datang dari luar lingkungan eksekusi, seperti menulis log ke CloudWatch dan mengirim jejak ke X-Ray.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan setiap kali kode fungsi Lambda dipanggil.

  • Tipe data - ARN

  • Jenis nilai - Bernilai tunggal

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnEquals": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }

Untuk informasi selengkapnya, lihat Bekerja dengan kredenal lingkungan eksekusi Lambda di Panduan Pengembang.AWS Lambda

ssm: SourceInstanceArn

Gunakan kunci ini untuk mengidentifikasi instance AWS Systems Manager terkelola ARN yang dikirimkan ke kredensil IAM peran. Kunci kondisi ini tidak ada saat permintaan berasal dari instans yang dikelola dengan IAM peran yang terkait dengan profil EC2 instans Amazon.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika kredensi peran dikirimkan ke instans AWS Systems Manager terkelola.

  • Tipe data - ARN

  • Jenis nilai - Bernilai tunggal

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

toko identitas: UserId

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

Anda dapat menemukan pengguna di Pusat IAM Identitas dengan membuat permintaan untuk GetUserIdAPImenggunakan AWS CLI, AWS API, atau AWS SDK. UserId

Properti jaringan

Gunakan tombol kondisi berikut untuk membandingkan detail tentang jaringan tempat permintaan berasal atau diteruskan dengan properti jaringan yang Anda tentukan dalam kebijakan.

aws: SourceIp

Gunakan kunci ini untuk membandingkan alamat IP pemohon dengan alamat IP yang Anda tentukan dalam kebijakan. Kunci kondisi aws:SourceIp hanya dapat digunakan untuk rentang alamat IP publik.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan, kecuali saat pemohon menggunakan VPC titik akhir untuk membuat permintaan.

  • Tipe dataalamat IP

  • Jenis nilai - Bernilai tunggal

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

catatan

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } } } ] }

Jika Anda perlu membatasi akses dari jaringan yang mendukung keduanya IPv4 dan IPv6 pengalamatan, Anda dapat menyertakan IPv4 dan IPv6 alamat atau rentang alamat IP dalam kondisi IAM kebijakan. Kebijakan berbasis identitas berikut akan memungkinkan pengguna untuk memasukkan objek ke dalam bucket amzn-s3-demo-bucket3 Amazon S3 jika pengguna melakukan panggilan dari rentang yang ditentukan atau alamat. IPv4 IPv6 Sebelum Anda memasukkan rentang IPv6 alamat dalam IAM kebijakan Anda, verifikasi bahwa Layanan AWS Anda bekerja dengan dukunganIPv6. Untuk daftar dukungan Layanan AWS tersebutIPv6, lihat dukungan Layanan AWS tersebut IPv6 di Panduan VPC Pengguna Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678::/64" ] } } } ] }

Jika permintaan berasal dari host yang menggunakan VPC titik akhir Amazon, aws:SourceIp kunci tidak tersedia. Sebagai gantinya, Anda harus menggunakan kunci VPC -specific seperti aws: VpcSourceIp. Untuk informasi selengkapnya tentang penggunaan VPC titik akhir, lihat Identitas dan manajemen akses untuk layanan VPC titik akhir dan VPC titik akhir di Panduan.AWS PrivateLink

aws: SourceVpc

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Dalam kebijakan, Anda dapat menggunakan kunci ini untuk memungkinkan atau membatasi akses ke kunci tertentuVPC.

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

catatan

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutObjectIfNotVPCID", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-1234567890abcdef0" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }

Untuk contoh cara menerapkan kunci ini dalam kebijakan berbasis sumber daya, lihat Membatasi akses ke spesifik di VPC Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

aws: SourceVpce

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

aws: VpcSourceIp

Gunakan kunci ini untuk membandingkan alamat IP tempat permintaan dibuat dengan alamat IP yang Anda tentukan dalam kebijakan. Dalam kebijakan, kunci hanya cocok jika permintaan berasal dari alamat IP tertentu dan melalui titik VPC akhir.

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

  • Tipe dataalamat IP

  • Jenis nilai - Bernilai tunggal

Untuk informasi selengkapnya, lihat Mengontrol akses ke VPC titik akhir menggunakan kebijakan titik akhir di VPCPanduan Pengguna Amazon. Sama halnya dengan menggunakanaws: SourceVpc, Anda harus menggunakan AWS: V iaAWSService atau aws: CalledVia mengizinkan permintaan yang dibuat dengan Layanan AWS menggunakan sesi akses teruskan (FAS). Ini karena IP sumber dari permintaan awal yang dibuat menggunakan VPC titik akhir tidak disimpan dalam FAS permintaan.

catatan

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

Kunci aws:VpcSourceIp kondisi harus selalu digunakan bersama dengan salah satu aws:SourceVpc atau tombol aws:SourceVpce kondisi. Jika tidak, ada kemungkinan API panggilan dari yang tidak terduga VPC yang menggunakan IP CIDR yang sama atau tumpang tindih diizinkan oleh kebijakan. Hal ini dapat terjadi karena IP CIDRs dari dua yang tidak terkait VPCs bisa sama atau tumpang tindih. Sebaliknya, VPC IDs atau VPC Endpoint IDs harus digunakan dalam kebijakan karena mereka memiliki pengidentifikasi unik secara global. Pengidentifikasi unik ini memastikan bahwa hasil yang tidak terduga tidak akan terjadi.

Properti dari sumber daya

Gunakan kunci kondisi berikut untuk membandingkan detail sumber daya yang merupakan target permintaan dengan properti sumber daya yang Anda sebutkan dalam kebijakan.

aws: ResourceAccount

Gunakan kunci ini untuk membandingkan Akun AWS ID pemilik sumber daya yang diminta dengan akun sumber daya dalam kebijakan. Anda kemudian dapat mengizinkan atau menolak akses ke sumber daya tersebut berdasarkan akun yang memiliki sumber daya tersebut.

  • Ketersediaan — Kunci ini selalu disertakan dalam konteks permintaan untuk sebagian besar tindakan layanan. Tindakan berikut tidak mendukung kunci ini:

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic Block Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

      • events:PutEvents— EventBridge PutEvents memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

catatan

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

Kunci ini sama dengan Akun AWS ID untuk akun dengan sumber daya yang dievaluasi dalam permintaan.

Untuk sebagian besar sumber daya di akun Anda, ARNberisi ID akun pemilik untuk sumber daya tersebut. Untuk sumber daya tertentu, seperti bucket Amazon S3, sumber daya ARN tidak menyertakan ID akun. Dua contoh berikut menunjukkan perbedaan antara sumber daya dengan ID akun diARN, dan Amazon S3 ARN tanpa ID akun:

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

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

Gunakan AWS konsol, atau, atau APICLI, untuk menemukan semua sumber daya Anda dan yang sesuaiARNs.

Anda menulis kebijakan yang menolak izin ke sumber daya berdasarkan ID akun pemilik sumber daya. Misalnya, kebijakan berbasis identitas berikut menolak akses ke sumber daya yang ditentukan jika sumber daya bukan milik akun yang ditentukan.

Untuk menggunakan kebijakan ini, ganti teks placeholder cetak miring dengan informasi akun Anda.

penting

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:account:*" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account" ] } } } ] }

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

catatan

Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceAccount dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.

AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan elemen aws:ResourceAccount dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan.

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

aws: ResourceOrgPaths

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

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika akun yang memiliki sumber daya merupakan anggota dari suatu organisasi. Kunci kepatuhan global ini tidak mendukung tindakan berikut:

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic Block Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

      • events:PutEvents— EventBridge PutEvents memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

catatan

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

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

Misalnya, kondisi berikut mengembalikan True sumber daya milik organisasio-a1b2c3d4e5. Ketika Anda menyertakan wildcard, Anda harus menggunakan operator StringLikekondisi.

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

Kondisi berikut mengembalikan True sumber daya dengan ID OUou-ab12-11111111. Ini akan cocok dengan sumber daya yang dimiliki oleh akun yang dilampirkan pada OU ou-ab12-11111111 atau salah satu anak. OUs

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

Kondisi berikut mengembalikan sumber daya True yang dimiliki oleh akun yang dilampirkan langsung ke ID OUou-ab12-22222222, tetapi bukan anakOUs. Contoh berikut menggunakan operator StringEqualskondisi untuk menentukan persyaratan kecocokan yang tepat untuk ID OU dan bukan pencocokan wildcard.

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

Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceOrgPaths dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.

AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan aws:ResourceOrgPaths kunci dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan. Anda dapat membuat kebijakan serupa untuk membatasi akses ke sumber daya dalam unit organisasi (OU) menggunakan aws:ResourceOrgPaths kunci, sambil memperhitungkan sumber daya milik layanan.

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

aws: ResourceOrg ID

Gunakan kunci ini untuk membandingkan pengidentifikasi AWS organisasi di Organizations yang mana sumber daya yang diminta berada dengan pengidentifikasi yang ditentukan dalam kebijakan.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan, hanya jika akun yang memiliki sumber daya merupakan anggota dari suatu organisasi. Kunci kepatuhan global ini tidak mendukung tindakan berikut:

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic Block Block Store - Semua tindakan

    • Amazon EC2

      • ec2:AcceptTransitGatewayPeeringAttachment

      • ec2:AcceptVpcEndpointConnections

      • ec2:AcceptVpcPeeringConnection

      • ec2:CopyImage

      • ec2:CopySnapshot

      • ec2:CreateTransitGatewayPeeringAttachment

      • ec2:CreateVolume

      • ec2:CreateVpcEndpoint

      • ec2:CreateVpcPeeringConnection

      • ec2:DeleteTransitGatewayPeeringAttachment

      • ec2:DeleteVpcPeeringConnection

      • ec2:RejectTransitGatewayPeeringAttachment

      • ec2:RejectVpcEndpointConnections

      • ec2:RejectVpcPeeringConnection

    • Amazon EventBridge

      • events:PutEvents— EventBridge PutEvents memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain di Panduan EventBridge Pengguna Amazon.

    • Amazon GuardDuty

      • guardduty:AcceptAdministratorInvitation

    • Amazon Macie

      • macie2:AcceptInvitation

    • OpenSearch Layanan Amazon

      • es:AcceptInboundConnection

    • Amazon Route 53

      • route53:AssociateVpcWithHostedZone

      • route53:CreateVPCAssociationAuthorization

      • route53:DeleteVPCAssociationAuthorization

      • route53:DisassociateVPCFromHostedZone

      • route53:ListHostedZonesByVPC

    • AWS Security Hub

      • securityhub:AcceptAdministratorInvitation

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

catatan

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

Kunci global ini mengembalikan ID organisasi sumber daya untuk permintaan yang diberikan. Ini memungkinkan Anda untuk membuat aturan yang berlaku untuk semua sumber daya dalam organisasi yang ditentukan dalam Resource elemen kebijakan berbasis identitas. Anda dapat menentukan ID organisasi dalam elemen kondisi. Saat Anda menambah dan menghapus akun, kebijakan yang mencakup aws:ResourceOrgID kunci akan secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbaruinya secara manual.

Misalnya, kebijakan berikut mencegah prinsipal menambahkan objek ke policy-genius-dev sumber daya kecuali sumber daya Amazon S3 milik organisasi yang sama dengan prinsipal yang membuat permintaan.

penting

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

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

Beberapa Layanan AWS memerlukan akses ke sumber daya yang AWS dimiliki yang di-host di tempat lain Akun AWS. Penggunaan aws:ResourceOrgID dalam kebijakan berbasis identitas Anda dapat memengaruhi kemampuan identitas Anda untuk mengakses sumber daya ini.

AWS Layanan tertentu, seperti AWS Data Exchange, mengandalkan akses ke sumber daya di luar Anda Akun AWS untuk operasi normal. Jika Anda menggunakan aws:ResourceOrgID kunci dalam kebijakan Anda, sertakan pernyataan tambahan untuk membuat pengecualian untuk layanan tersebut. Kebijakan contoh AWS: Tolak akses ke sumber daya Amazon S3 di luar akun Anda kecuali AWS Data Exchange menunjukkan cara menolak akses berdasarkan akun sumber daya sambil menentukan pengecualian untuk sumber daya milik layanan. Anda dapat membuat kebijakan serupa untuk membatasi akses ke sumber daya dalam organisasi Anda menggunakan aws:ResourceOrgID kunci, sambil memperhitungkan sumber daya milik layanan.

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

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

aws:ResourceTag/tag-kunci

Gunakan kunci ini untuk membandingkan pasangan nilai kunci tag yang Anda tentukan dalam kebijakan dengan pasangan nilai kunci yang disematkan ke sumber daya. Misalnya, Anda dapat meminta agar akses ke sumber daya hanya diperbolehkan jika sumber daya memiliki kunci tanda yang dilampirkan "Dept" dengan nilai "Marketing". Untuk informasi selengkapnya, lihat Mengontrol akses ke sumber daya AWS.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan ketika sumber daya yang diminta sudah memiliki tag terlampir atau dalam permintaan yang membuat sumber daya dengan tag yang diminta sudah memiliki tag terlampir. Kunci ini hanya dikembalikan untuk sumber daya yang mendukung otorisasi berdasarkan tanda. Ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Kunci konteks ini diformat "aws:ResourceTag/tag-key":"tag-value" jika tag-key and tag-value adalah kunci tag dan pasangan nilai. Kunci dan nilai tag tidak peka dengan huruf besar atau kecil. Ini berarti jika Anda menentukan "aws:ResourceTag/TagKey1": "Value1" dalam elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda sumber daya bernama TagKey1 atau tagkey1, tetapi tidak keduanya.

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

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

Untuk tutorial tentang menggunakan kunci aws:ResourceTag kondisi untuk atribut based access control (ABAC), lihatIAMtutorial: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag.

Properti permintaan

Gunakan kunci kondisi berikut untuk membandingkan detail permintaan itu sendiri dan konten permintaan dengan properti permintaan yang Anda sebutkan dalam kebijakan.

aws: CalledVia

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan yang mengajukan permintaan atas nama IAM prinsipal (pengguna atau peran). Saat penanggung jawab mengajukan permintaan ke AWS layanan, layanan tersebut mungkin menggunakan kredensi penanggung jawab untuk melakukan permintaan selanjutnya ke layanan lain. Kunci aws:CalledVia berisi daftar yang dipesan dari setiap layanan dalam rantai yang membuat permintaan atas nama utama.

Misalnya, Anda dapat menggunakan AWS CloudFormation untuk membaca dan menulis dari tabel Amazon DynamoDB. Kemudian DynamoDB akan menggunakan enkripsi yang disediakan AWS Key Management Service oleh ().AWS KMS

  • Ketersediaan — Kunci ini tersedia dalam permintaan saat layanan yang mendukung aws:CalledVia menggunakan kredenal IAM prinsipal untuk mengajukan permintaan ke layanan lain. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

Untuk menggunakan kunci aws:CalledVia kondisi dalam kebijakan, Anda harus menyediakan prinsipal layanan untuk mengizinkan atau menolak AWS permintaan layanan. AWS mendukung menggunakan prinsip layanan berikut dengan. aws:CalledVia

Pemimpin layanan
aoss.amazonaws.com
athena.amazonaws.com
backup.amazonaws.com
cloud9.amazonaws.com
cloudformation.amazonaws.com
databrew.amazonaws.com
dataexchange.amazonaws.com
dynamodb.amazonaws.com
imagebuilder.amazonaws.com
kms.amazonaws.com
mgn.amazonaws.com
nimble.amazonaws.com
omics.amazonaws.com
ram.amazonaws.com
robomaker.amazonaws.com
servicecatalog-appregistry.amazonaws.com
sqlworkbench.amazonaws.com
ssm-guiconnect.amazonaws.com

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

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

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 peduli bahwa panggilan telepon dilakukan melalui DynamoDB pada suatu bagian dalam rantai permintaan, Anda dapat menggunakan kunci kondisi ini dalam kebijakan Anda.

Misalnya, kebijakan berikut memungkinkan Anda mengelola AWS KMS kunci yang disebutkanmy-example-key, tetapi hanya jika DynamoDB merupakan salah satu layanan yang meminta. Operator ForAnyValue:StringEquals kondisi memastikan bahwa DynamoDB adalah salah satu layanan panggilan. Jika prinsipal langsung memanggil AWS KMS , kondisi akan memberikan false dan permintaan tersebut tidak diizinkan oleh kebijakan ini.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:111122223333:key/my-example-key", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }

Jika Anda ingin memberlakukan layanan mana yang membuat panggilan pertama atau terakhir dalam rantai, Anda dapat menggunakan kunci aws:CalledViaFirst dan aws:CalledViaLast. Misalnya, kebijakan berikut memungkinkan pengelolaan kunci yang disebutkan my-example-key dalam AWS KMS. AWS KMS Operasi ini hanya diperbolehkan jika beberapa permintaan disertakan dalam rantai. Permintaan pertama harus dilakukan melalui AWS CloudFormation dan yang terakhir melalui DynamoDB. Jika layanan lain membuat permintaan di tengah rantai, operasi masih diizinkan.

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

aws:CalledViaLastKunci aws:CalledViaFirst dan tersedia dalam permintaan ketika layanan menggunakan kredensi IAM prinsipal untuk menghubungi layanan lain. Mereka menunjukkan layanan pertama dan terakhir yang melakukan panggilan dalam rantai permintaan. Misalnya, asumsikan bahwa AWS CloudFormation panggilan layanan lain yang disebutkanX Service, yang memanggil DynamoDB, yang kemudian memanggil. AWS KMS Panggilan terakhir ke AWS KMS dilakukan oleh User 1 via AWS CloudFormation, kemudianX Service, dan kemudian DynamoDB. Ini pertama kali dipanggil melalui AWS CloudFormation dan terakhir dipanggil melalui DynamoDB.

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 IAM prinsipal (pengguna atau peran). Untuk informasi selengkapnya, lihat aws:CalledVia.

  • Ketersediaan — Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredenal dari IAM prinsipal untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws: CalledViaLast

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

  • Ketersediaan — Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredenal dari IAM prinsipal untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

AWS: V iaAWSService

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

Kunci konteks permintaan ditampilkan true saat layanan menggunakan sesi akses ke depan untuk mengajukan permintaan atas nama IAM prinsipal asli. Kunci konteks permintaan juga memberikan false saat prisipal langsung memanggil.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

aws: CurrentTime

Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dengan tanggal dan waktu yang Anda sebutkan dalam kebijakan. Untuk melihat contoh kebijakan yang menggunakan kunci kondisi ini, lihat AWS: Mengizinkan akses berdasarkan tanggal dan waktu.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data - Tanggal

  • Jenis nilai - Bernilai tunggal

aws: EpochTime

Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dalam epoch atau waktu Unix dengan nilai yang Anda tentukan dalam kebijakan. Kunci ini juga menerima jumlah detik sejak 1 Januari 1970.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data - Tanggal, Numerik

  • Jenis nilai - Bernilai tunggal

aws:referer

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Misalnya, Anda dapat mengakses objek Amazon S3 secara langsung menggunakan URL atau menggunakan invokasi langsungAPI. Untuk informasi lebih lanjut, lihat APIOperasi Amazon S3 secara langsung menggunakan browser web. Saat Anda mengakses objek Amazon S3 dari URL yang ada di halaman web, dari halaman web, dari halaman web, URL dari halaman web sumber digunakan di. aws:referer Ketika Anda mengakses objek Amazon S3 dengan mengetikkan URL ke peramban Anda, tidak aws:referer tersedia. Saat Anda meminta secara API langsung, aws:referer juga tidak ada. Anda dapat menggunakan kunci kondisi aws:referer dalam kebijakan untuk memungkinkan permintaan yang dibuat dari perujuk spesifik, seperti tautan di halaman web dalam domain perusahaan Anda.

Awas

Kunci ini harus digunakan dengan hati-hati. Menyertakan nilai header perujuk yang diketahui publik bukanlah sesuatu yang aman. Pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan nilai aws:referer yang mereka pilih. Sebagai hasilnya, tidak aws:referer boleh digunakan untuk mencegah pihak yang tidak berwenang melakukan AWS permintaan langsung. Ini ditawarkan untuk memungkinkan pelanggan melindungi konten digital mereka, seperti konten yang disimpan di Amazon S3, agar tidak dirujuk pada pihak ketiga yang tidak berwenang.

aws: RequestedRegion

Gunakan kunci ini untuk membandingkan AWS Wilayah yang disebutkan dalam permintaan dengan Wilayah yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci kondisi global ini untuk mengontrol Wilayah mana yang dapat diminta. Untuk melihat AWS Wilayah untuk setiap layanan, lihat Titik akhir dan kuota Layanan di. Referensi Umum Amazon Web Services

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Beberapa layanan global, sepertiIAM, memiliki satu titik akhir. Karena titik akhir ini berada secara fisik di Wilayah Timur AS (N. Virginia), IAM panggilan selalu dilakukan ke Wilayah us-east-1. Misalnya, jika Anda membuat kebijakan yang menolak akses ke semua layanan jika Wilayah yang diminta bukan wilayah us-west-2, panggilan selalu gagal. IAM Untuk melihat contoh cara bekerja di sekitar ini, lihat NotAction dengan Penolakan.

catatan

Kunci kondisi aws:RequestedRegion ini memungkinkan Anda mengontrol titik akhir layanan yang dipilih tetapi tidak mengendalikan dampak operasi. Beberapa layanan memiliki dampak lintas Wilayah..

Misalnya, Amazon S3 memiliki API operasi yang mencakup seluruh wilayah.

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

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

Anda dapat menggunakan kunci konteks ini untuk membatasi akses ke AWS layanan dalam serangkaian Wilayah tertentu. Misalnya, kebijakan berikut memungkinkan pengguna untuk melihat semua EC2 instans Amazon di AWS Management Console. Namun, hal ini hanya memungkinkan mereka untuk membuat perubahan pada instans di Irlandia (eu-west-1), London (eu-west-2), atau Paris (eu-west-3).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }

aws:RequestTag/tag-kunci

Gunakan kunci ini untuk membandingkan pasangan nilai kunci tanda yang diteruskan dalam permintaan dengan pasangan tanda yang Anda sebutkan dalam kebijakan. Misalnya, Anda dapat memeriksa apakah permintaan tersebut menyertakan kunci tanda "Dept" dan memiliki nilai "Accounting". Untuk informasi selengkapnya, lihat Mengontrol akses selama permintaan AWS.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Kunci konteks ini diformat "aws:RequestTag/tag-key":"tag-value" jika tag-key and tag-value adalah kunci tag dan pasangan nilai. Kunci dan nilai tag tidak peka dengan huruf besar atau kecil. Ini berarti jika Anda menentukan "aws:RequestTag/TagKey1": "Value1" elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda permintaan bernama salah satu TagKey1 atautagkey1, tetapi tidak keduanya.

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

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

aws: TagKeys

Gunakan kunci ini untuk membandingkan kunci tanda dalam permintaan dengan kunci yang Anda sebutkan dalam kebijakan. Kami sarankan saat Anda menggunakan kebijakan untuk mengontrol akses menggunakan tag, gunakan kunci aws:TagKeys kondisi untuk menentukan tipe kunci tanda yang diizinkan. Untuk contoh kebijakan dan informasi selengkapnya, lihat Mengontrol akses berdasarkan kunci tanda.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan jika operasi mendukung penerusan tag dalam permintaan.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

Kunci konteks ini diformat "aws:TagKeys":"tag-key" jika tag-key adalah daftar kunci tag tanpa nilai (misalnya, ["Dept","Cost-Center"]).

Karena Anda dapat memasukkan beberapa pasangan nilai kunci tanda dalam permintaan, konten permintaan dapat berupa permintaan multinilai. Dalam hal ini, Anda harus menggunakan operator kumpulan ForAllValues atau ForAnyValue. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi.

Beberapa layanan mendukung penandaan dengan operasi sumber daya, seperti membuat, mengubah, atau menghapus sumber daya. Untuk memungkinkan penandaan dan operasi sebagai satu panggilan, Anda harus membuat kebijakan yang mencakup tindakan penandaan dan tindakan pemodifikasian sumber daya. Kemudian, Anda dapat menggunakan kunci kondisi aws:TagKeys untuk menerapkan penggunaan kunci tanda tertentu dalam permintaan. Misalnya, untuk membatasi tag saat seseorang membuat EC2 snapshot Amazon, Anda harus menyertakan tindakan ec2:CreateSnapshot pembuatan dan tindakan ec2:CreateTags penandaan dalam kebijakan. Untuk melihat kebijakan skenario yang digunakan iniaws:TagKeys, lihat Membuat Snapshot dengan Tag di Panduan EC2 Pengguna Amazon.

aws: SecureTransport

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

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

aws: SourceAccount

Gunakan kunci ini untuk membandingkan ID akun sumber daya yang membuat service-to-service permintaan dengan ID akun yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan.

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

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.

    aws: SourceAccount
  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan hanya dapat mengakses sumber daya jika permintaan berasal dari akun tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya berikut (RCP) untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali jika dipicu oleh sumber daya di akun yang ditentukan. Kebijakan ini menerapkan kontrol hanya pada permintaan oleh service principals ("Bool": {"aws:PrincipalIsAWSService": "true"}) yang memiliki aws:SourceAccount key present ("Null": {"aws:SourceAccount": "false"}), sehingga integrasi layanan yang tidak memerlukan penggunaan kunci ini dan panggilan oleh prinsipal Anda tidak terpengaruh. Jika aws:SourceAccount kunci hadir dalam konteks permintaan, Null kondisi akan dievaluasitrue, menyebabkan aws:SourceAccount kunci ditegakkan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceAccount": "111122223333" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }

Dalam kebijakan berbasis sumber daya di mana prinsipal adalah Layanan AWS prinsipal, gunakan kunci untuk membatasi izin yang diberikan kepada layanan. Misalnya, saat bucket Amazon S3 dikonfigurasi untuk mengirim pemberitahuan ke SNS topik Amazon, layanan Amazon S3 meminta operasi untuk semua peristiwa yang sns:Publish API dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke ID akun bucket Amazon S3.

aws: SourceArn

Gunakan kunci ini untuk membandingkan Amazon Resource Name (ARN) dari sumber daya yang membuat service-to-service permintaan dengan ARN yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Ketika sumber ARN menyertakan ID akun, tidak perlu digunakan aws:SourceAccount denganaws:SourceArn.

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

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

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.

    aws: SourceArn
  • Tipe data - ARN

    AWS merekomendasikan agar Anda menggunakan ARNoperator alih-alih operator string saat membandingkanARNs.

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari sumber daya tertentu. Saat menggunakan kebijakan berbasis sumber daya dengan Layanan AWS prinsipal sebagaiPrincipal, setel nilai kunci kondisi ini ke sumber daya yang ingin Anda ARN batasi aksesnya. Misalnya, saat bucket Amazon S3 dikonfigurasi untuk mengirim pemberitahuan ke SNS topik Amazon, layanan Amazon S3 meminta operasi untuk semua peristiwa yang sns:Publish API dikonfigurasi. Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke ARN bucket Amazon S3. Untuk rekomendasi tentang kapan menggunakan kunci kondisi ini dalam kebijakan berbasis sumber daya, lihat dokumentasi untuk yang Anda gunakan. Layanan AWS

aws: SourceOrg ID

Gunakan kunci ini untuk membandingkan ID organisasi sumber daya yang membuat service-to-service permintaan dengan ID organisasi yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Saat Anda menambah dan menghapus akun ke organisasi AWS Organizations, kebijakan yang mencakup aws:SourceOrgID kunci akan secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbarui kebijakan secara manual.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati ID organisasi sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.

    aws: SourceOrg ID
  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk membantu memastikan layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari organisasi tertentu. Misalnya, Anda dapat melampirkan kebijakan kontrol sumber daya berikut (RCP) untuk menolak permintaan oleh prinsipal layanan terhadap bucket Amazon S3, kecuali jika dipicu oleh sumber daya di organisasi yang ditentukan. AWS Kebijakan ini menerapkan kontrol hanya pada permintaan oleh service principals ("Bool": {"aws:PrincipalIsAWSService": "true"}) yang memiliki aws:SourceAccount key present ("Null": {"aws:SourceAccount": "false"}), sehingga integrasi layanan yang tidak memerlukan penggunaan kunci dan panggilan oleh prinsipal Anda tidak terpengaruh. Jika aws:SourceAccount kunci hadir dalam konteks permintaan, Null kondisi akan dievaluasitrue, menyebabkan aws:SourceOrgID kunci ditegakkan. Kami menggunakan operator aws:SourceAccount bukan aws:SourceOrgID dalam Null kondisi sehingga kontrol masih berlaku jika permintaan berasal dari akun yang bukan milik organisasi.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "o-xxxxxxxxxx" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }

aws: SourceOrgPaths

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang membuat service-to-service permintaan dengan jalur organisasi yang Anda sebutkan dalam kebijakan, tetapi hanya jika permintaan dilakukan oleh prinsipal AWS layanan. Jalur Organizations adalah representasi teks dari struktur suatu entitas Organizations. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat Memahami jalur AWS Organizations entitas.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh kepala AWS layanan atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati jalur organisasi sumber daya asli ke layanan yang dipanggil.

    catatan

    Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.

    aws: SourceOrgPaths
  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

Gunakan kunci kondisi ini untuk membantu memastikan bahwa layanan panggilan dapat mengakses sumber daya Anda hanya jika permintaan berasal dari unit organisasi (OU) tertentu. AWS Organizations

Demikian pulaaws:SourceOrgID, untuk membantu mencegah dampak pada integrasi layanan yang tidak memerlukan penggunaan kunci ini, gunakan operator Null aws:SourceAccount kondisi dengan kunci kondisi sehingga kontrol tetap berlaku jika permintaan berasal dari akun yang bukan milik organisasi.

{ "Condition": { "ForAllValues:StringNotLikeIfExists": { "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }

aws:SourceOrgPaths adalah kunci kondisi multinilai. Kunci multi-nilai dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan ForAnyValue atau ForAllValues mengatur operator dengan operator kondisi string untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat Kunci konteks multivaluasi.

aws: UserAgent

Gunakan kunci ini untuk membandingkan aplikasi klien pemohon dan aplikasi yang Anda tentukan dalam kebijakan.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Awas

Kunci ini harus digunakan dengan hati-hati. Karena aws:UserAgent nilai diberikan oleh pemanggil di HTTP header, pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan aws:UserAgent nilai apa pun yang mereka pilih. Sebagai hasilnya, tidak aws:UserAgent boleh digunakan untuk mencegah pihak yang tidak berwenang melakukan AWS permintaan langsung. Anda dapat menggunakannya hanya untuk mengizinkan aplikasi klien tertentu, dan hanya setelah menguji kebijakan Anda.

Kunci kondisi lintas layanan lainnya

AWS STS mendukung kunci kondisi federasi SAML berbasis dan kunci kondisi lintas layanan untuk OIDCfederasi. Kunci ini tersedia saat pengguna yang digabungkan menggunakan SAML melakukan AWS operasi di layanan lainnya.