AWS kunci konteks kondisi global - AWS Identity and Access Management

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

AWS kunci konteks kondisi global

Ketika kepala sekolah membuat permintaan AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan. Anda dapat menggunakan elemen Condition dari kebijakan JSON untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Informasi permintaan disediakan oleh sumber yang berbeda, termasuk prinsipal yang membuat permintaan, sumber daya 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 di mana kunci global disertakan dalam konteks permintaan, lihat Informasi ketersediaan untuk setiap kunci.

Beberapa layanan individu membuat kunci kondisi mereka sendiri yang tersedia dalam konteks permintaan untuk layanan lain. 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 tombol 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 operator ...IfExists untuk mencocokkan saat permintaan berasal dari rentang IP tertentu atau dari VPC tertentu. Jika salah satu atau kedua kunci tidak disertakan dalam konteks permintaan, kondisi masih akan mengembalikan true. Nilai hanya diperiksa jika kunci yang ditentukan disertakan dalam konteks permintaan. Untuk informasi selengkapnya tentang cara kebijakan dievaluasi ketika kunci tidak ada untuk operator lain, lihat 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 multivalued. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi.

Sifat-sifat kepala sekolah

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

aws: PrincipalArn

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

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

    • Peran IAM

    • Pengguna IAM

    • AWS STS sesi pengguna federasi

    • Akun AWS pengguna root

  • Tipe data - ARN, String

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

  • 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

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

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

      arn:aws:iam::123456789012:user/user-name
    • AWS STS 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. Saat Anda menentukan ARN pengguna root sebagai nilai untuk kunci aws:PrincipalArn kondisi, itu membatasi izin hanya untuk pengguna root. Akun AWS Ini berbeda dengan menentukan ARN pengguna root dalam elemen utama kebijakan berbasis sumber daya, yang mendelegasikan wewenang ke. Akun AWS Untuk informasi selengkapnya tentang menentukan ARN pengguna root di elemen utama kebijakan berbasis sumber daya, lihat. Akun AWS kepala sekolah

      arn:aws:iam::123456789012:root

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

Gunakan kunci ini untuk membandingkan AWS Organizations jalur bagi kepala sekolah yang membuat permintaan ke jalur dalam kebijakan. Prinsipal itu dapat berupa pengguna IAM, peran IAM, pengguna federasi, atau. Pengguna root akun AWS Dalam kebijakan, kunci kondisi ini memastikan pemohon adalah anggota akun dalam akar organisasi atau unit organisasi (OU) yang ditentukan di AWS Organizations. AWS Organizations Path 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

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

Misalnya, kondisi berikut mengembalikan true prinsipal di akun yang dilampirkan langsung ke ou-ab12-22222222 OU, tetapi tidak pada OU anaknya.

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

Kondisi berikut kembali true untuk prinsipal dalam akun yang dilampirkan langsung ke OU atau salah satu OU anaknya. 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 kembali true untuk prinsipal dalam akun yang dilampirkan langsung ke salah satu OU anak, tetapi tidak langsung ke OU orang tua. 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 multivalued 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 pengenal organisasi tempat prinsipal permintaan berada dengan pengenal yang ditentukan dalam kebijakan. 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

  • Jenis nilai - Bernilai tunggal

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

Misalnya, kebijakan bucket Amazon S3 berikut memungkinkan anggota akun mana pun di organisasi o-xxxxxxxxxxx untuk menambahkan objek ke dalam bucket policy-ninja-dev.

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

Kondisi global ini juga berlaku untuk akun manajemen suatu AWS organisasi. Kebijakan ini mencegah semua kepala sekolah di luar organisasi tertentu mengakses bucket Amazon S3. Ini termasuk AWS layanan apa pun yang berinteraksi dengan sumber daya internal Anda, seperti AWS CloudTrail mengirim data log ke bucket Amazon S3 Anda. Untuk mempelajari 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 tag yang disematkan, konteks permintaan mencakup satu kunci aws:PrincipalTag untuk setiap kunci tag yang disematkan.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

Contoh ini menunjukkan cara membuat kebijakan berbasis identitas yang memungkinkan pengguna dengan department=hr tag mengelola pengguna, grup, atau peran IAM. Untuk menggunakan kebijakan ini, ganti teks placeholder yang dicetak miring dalam kebijakan contoh 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 dilakukan langsung oleh kepala AWS layanan. Misalnya, AWS CloudTrail menggunakan prinsip layanan cloudtrail.amazonaws.com untuk menulis log ke bucket Amazon S3 Anda. Kunci konteks permintaan diatur ke benar ketika layanan menggunakan prinsipal layanan untuk melakukan tindakan langsung pada sumber daya Anda. Kunci konteks disetel ke false jika layanan menggunakan kredensi prinsipal IAM untuk membuat permintaan atas nama kepala sekolah. Itu juga diatut ke salah jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal.

  • Ketersediaan — Kunci ini hadir dalam konteks permintaan untuk semua permintaan API yang ditandatangani yang menggunakan AWS kredensil. 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 sambil memberikan akses ke AWS layanan dengan aman.

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-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: PrincipalService Nama

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 ada dalam permintaan saat panggilan dilakukan oleh kepala 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 dari kepala sekolah IAM untuk mengajukan permintaan atas nama kepala sekolah.

    • Jika panggilan dilakukan langsung oleh kepala sekolah IAM.

    • 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 sambil memberikan akses ke layanan dengan aman. AWS

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/AWS Logs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }

aws: PrincipalService NamesList

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 ada dalam permintaan saat panggilan dilakukan oleh kepala 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 dari kepala sekolah IAM untuk mengajukan permintaan atas nama kepala sekolah.

    • Jika panggilan dilakukan langsung oleh kepala sekolah IAM.

    • Jika panggilan dilakukan oleh pemohon anonim.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

aws:PrincipalServiceNamesList adalah kunci kondisi multinilai. Kunci multivalued 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 Menentukan prinsipal. Untuk contoh spesifik dari nilai-nilai principal kunci, lihatNilai-nilai kunci utama.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws:userid

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

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

  • Tipe data - String

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

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

  • 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: FederatedProvider

Gunakan kunci ini untuk membandingkan penyedia identitas penerbit (iDP) prinsipal dengan iDP yang Anda tentukan dalam kebijakan. Ini berarti bahwa peran IAM 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 menyertakan nilainya. cognito-identity.amazonaws.com Demikian pula, jika pengguna diautentikasi melalui Login with Amazon, konteks permintaan menyertakan nilainyawww.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 di ARN sumber daya. Kebijakan ini memungkinkan setiap prinsipal yang melakukan autentikasi menggunakan iDP untuk mengeluarkan objek dari bucket Amazon S3 dengan jalur yang khusus untuk penyedia identitas penerbit.

aws: TokenIssue Waktu

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 dalam AWS CLI, AWS API, atau permintaan AWS SDK 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: MultiFactor AuthAge

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

penting

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

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

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

    • Pengguna atau grup IAM

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

    • Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna

  • Tipe data - Numerik

  • Jenis nilai - Bernilai tunggal

aws: MultiFactor AuthPresent

Gunakan kunci ini untuk memeriksa apakah otentikasi multi-faktor (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 permintaan AWS CLI, AWS API, atau SDK. AWS Untuk mempelajari selengkapnya tentang menambahkan perlindungan MFA ke operasi API dengan kredenal keamanan sementara, lihat. Mengonfigurasi akses API yang dilindungi MFA

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

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

    • Pengguna atau grup IAM

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

    • Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

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

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

  • Pengguna IAM secara AWS Management Console tidak sadar menggunakan kredensyal sementara. Pengguna masuk ke konsol menggunakan nama pengguna dan kata sandi yang merupakan kredensial jangka panjang. Namun, di latar belakang, konsol membuat kredensial sementara atas nama pengguna.

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

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

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

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

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

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

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

Kombinasi yang Direkomendasikan

Kami sarankan Anda menggunakan operator BoolIfExists untuk memastikan permintaan teraotentikasi menggunakan MFA ataukah tidak.

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

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

Kombinasi Alternatif

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

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

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

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

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

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

Kombinasi dari Allow, Bool, dan true hanya mengizinkan permintaan yang diautentikasi oleh MFA. Ini hanya berlaku untuk kredensial sementara yang mendukung penggunaan MFA. Pernyataan ini tidak memungkinkan akses ke permintaan yang dilakukan menggunakan access key jangka panjang, atau untuk permintaan yang dilakukan menggunakan kredensial sementara tanpa MFA.

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

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

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

AWS: EC2 Vpc InstanceSource

Kunci ini mengidentifikasi VPC tempat kredensyal peran Amazon EC2 IAM dikirimkan. Anda dapat menggunakan kunci ini dalam kebijakan dengan kunci aws:SourceVPCglobal untuk memeriksa apakah panggilan dilakukan 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 peran Amazon EC2. Ini dapat digunakan dalam kebijakan IAM, kebijakan kontrol layanan, kebijakan titik akhir VPC, dan kebijakan sumber daya.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Kunci ini dapat digunakan dengan nilai pengidentifikasi VPC, tetapi paling berguna bila digunakan sebagai variabel yang dikombinasikan dengan kunci konteks. aws:SourceVpc Kunci aws:SourceVpc konteks disertakan dalam konteks permintaan hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan. Menggunakan aws:Ec2InstanceSourceVpc dengan aws:SourceVpc memungkinkan Anda untuk menggunakan aws:Ec2InstanceSourceVpc lebih luas karena membandingkan nilai 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 instans Amazon EC2 dengan menguji keberadaan kunci ec2:SourceInstanceARN kondisi.

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

AWS: EC2 PrivateIPv4 InstanceSource

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

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

  • Tipe 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 VPC dari kredenal instans Amazon EC2 Anda.

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 ditetapkan saat peran diasumsikan menggunakan perintah CLI AWS STS peran apa pun, atau operasi API. AWS STS AssumeRole

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci ini dalam kebijakan untuk mengizinkan tindakan AWS berdasarkan prinsipal yang telah menetapkan identitas sumber saat mengambil peran. Aktivitas untuk identitas sumber yang ditentukan peran muncul diAWS CloudTrail. Hal ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran di dalamnya 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 ada dalam permintaan ketika prinsipal awalnya menetapkan identitas sumber sambil mengasumsikan peran menggunakan perintah CLI AWS STS peran apa pun, atau operasi API. AWS STS AssumeRole 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 peran IAM untuk Amazon EC2. Layanan metadata instans membedakan antara permintaan IMDSv1 dan IMDSv2 berdasarkan apakah, untuk permintaan tertentu, baik itu header PUT atau, GET yang unik untuk IMDSv2, ada dalam permintaan itu.

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

  • Tipe data - Numerik

  • Jenis nilai - Bernilai tunggal

  • Nilai contoh - 1.0, 2.0

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

  • Layanan Metadata Instance Versi 1 (IMDSv1) - Metode permintaan/respons

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

Untuk informasi tentang cara mengonfigurasi instans Anda agar menggunakan IMDSv2, 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 kredenal peran Amazon EC2, maka tidak akan berpengaruh.

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

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

ec2: Arn SourceInstance

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

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

  • Tipe dataARN

  • Jenis nilai - Bernilai tunggal

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

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

lem: RoleAssumed Oleh

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

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

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

lem: CredentialIssuing Layanan

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

Contoh berikut menambahkan kondisi yang melekat pada peran IAM 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:::confidential-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }

lambda: Arn SourceFunction

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

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

  • Tipe dataARN

  • Jenis nilai - Bernilai tunggal

  • Nilai contoh - arn:aws:lambda: us-east- 1:123456789012: fungsi: 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:::DOC-EXAMPLE-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: Arn SourceInstance

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

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

  • Tipe dataARN

  • Jenis nilai - Bernilai tunggal

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

toko identitas: UserId

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

Anda dapat menemukan pengguna di IAM Identity Center dengan membuat permintaan ke GetUserId API menggunakan 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 titik akhir VPC 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 alamat IPv4 dan IPv6 atau rentang alamat IP. Untuk daftar dukungan IPv6 Layanan AWS itu, lihat Layanan AWS dukungan IPv6 di Panduan Pengguna Amazon VPC.

Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke peran IAM. Kebijakan ini memungkinkan pengguna untuk memasukkan objek ke dalam bucket DOC-EXAMPLE-BUCKET3 Amazon S3 jika mereka melakukan panggilan dari rentang alamat IPv4 yang ditentukan. 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:::DOC-EXAMPLE-BUCKET3/*", "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } } } ] }

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

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

Jika permintaan berasal dari host yang menggunakan titik akhir VPC Amazon, maka kunci aws:SourceIp tidak tersedia. Anda sebaiknya menggunakan kunci khusus VPC seperti aws: Ip. VpcSource Untuk informasi selengkapnya tentang penggunaan titik akhir VPC, lihat Identitas dan manajemen akses untuk titik akhir VPC dan layanan titik akhir VPC di Panduan.AWS PrivateLink

aws: SourceVpc

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws: SourceVpce

Gunakan kunci ini untuk membandingkan pengidentifikasi VPC endpoint dari permintaan dengan ID titik akhir yang Anda sebutkan dalam kebijakan. Dalam kebijakan, Anda dapat menggunakan kunci ini untuk membatasi akses ke VPC endpoint tertentu. Untuk informasi selengkapnya, lihat Membatasi Akses ke Titik Akhir VPC Tertentu di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws: VpcSource Ip

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

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

  • Tipe dataalamat IP

  • Jenis nilai - Bernilai tunggal

Untuk informasi selengkapnya, silakan lihat Mengendalikan Akses ke Layanan dengan titik akhir VPC dalam Panduan Pengguna Amazon VPC.

catatan

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

Properti dari sumber daya

Gunakan tombol kondisi berikut untuk membandingkan detail tentang sumber daya yang menjadi target permintaan dengan properti sumber daya yang Anda tentukan dalam kebijakan.

aws: ResourceAccount

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

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

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic 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

      • es:CreateOutboundConnection

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

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

  • arn:aws:s3:::DOC-EXAMPLE-BUCKET2- Bucket Amazon S3 dibuat dan dimiliki di dalam akun111122223333, tidak ditampilkan di ARN.

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

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

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

penting

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

{ "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: ResourceOrg Jalur

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 root organisasi atau unit organisasi (OU) yang ditentukan di AWS Organizations. AWS Organizations Path adalah representasi teks dari struktur entitas Organizations. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat Memahami jalur entitas AWS Organizations

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

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic 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

      • es:CreateOutboundConnection

    • 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 multivalued 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 ke OU ou-ab12-11111111 atau salah satu dari OU anak.

"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 OU anak. 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 pengenal AWS organisasi dalam Organizations yang menjadi sumber daya yang diminta dengan pengenal yang ditentukan dalam kebijakan.

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

    • AWS Audit Manager

      • auditmanager:UpdateAssessmentFrameworkShare

    • Amazon Detective

      • detective:AcceptInvitation

    • Amazon Elastic 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

      • es:CreateOutboundConnection

    • 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 menambahkan dan menghapus akun, kebijakan yang menyertakan aws:ResourceOrgID kunci secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbaruinya secara manual.

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

penting

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

{ "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 dilampirkan ke sumber daya. Misalnya, Anda dapat meminta agar akses ke sumber daya hanya diperbolehkan jika sumber daya memiliki kunci tanda yang dilampirkan "Dept" dengan nilai "Marketing". Untuk informasi selengkapnya, lihat Mengontrol akses ke 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 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" dengan tag-key dan tag-value adalah kunci tanda dan pasangan nilai. Kunci dan nilai tag tidak peka huruf besar/kecil. Ini berarti jika Anda menentukan "aws:ResourceTag/TagKey1": "Value1" dalam elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda sumber daya bernama TagKey1 atau tagkey1, tetapi tidak keduanya.

Untuk contoh menggunakan aws:ResourceTag kunci untuk mengontrol akses ke sumber daya IAM, 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 kondisi aws:ResourceTag untuk kontrol akses berbasis atribut (ABAC), lihat Tutorial IAM: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag.

Properti permintaan

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

aws: CalledVia

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan, layanan yang membuat permintaan atas nama prinsipal IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke AWS layanan, layanan itu mungkin menggunakan kredensi kepala sekolah untuk membuat permintaan berikutnya 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. DynamoDB kemudian menggunakan enkripsi yang disediakan AWS Key Management Service oleh ().AWS KMS

  • Ketersedian – Kunci ini tersedia dalam permintaan saat layanan yang mendukung aws:CalledVia menggunakan kredensial prinsipal IAM untuk mengajukan permintaan ke layanan lain. Kunci ini tidak tersedia jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas 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 memberikan prinsip 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: melalui AWSService. Kunci kondisi itu mendukung AWS layanan.

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

Contoh menggunakan aws: CalledVia

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

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

{ "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 diberi nama my-example-key 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" } } } ] }

Kunci aws:CalledViaFirst dan aws:CalledViaLast tersedia dalam permintaan saat layanan menggunakan kredensial prisipal IAM untuk menghubungi layanan lain. Mereka menunjukkan layanan pertama dan terakhir yang melakukan panggilan dalam rantai permintaan. Misalnya, asumsikan bahwa AWS CloudFormation memanggil layanan lain bernamaX 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 via AWS CloudFormation dan terakhir dipanggil melalui DynamoDB.

Contoh menggunakan aws: CalledViaFirst dan aws: CalledVia Last

aws: CalledVia Pertama

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

aws: CalledVia Terakhir

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

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

AWS: melalui AWSService

Gunakan kunci ini untuk memeriksa apakah suatu AWS layanan membuat permintaan ke layanan lain atas nama Anda.

Kunci konteks permintaan memberikan true ketika layanan menggunakan kredensial dari prinsipal IAM untuk membuat permintaan atas nama prinsipal. Kunci konteks memberikan false jika layanan menggunakan peran layanan atau peran tertaut layanan untuk melakukan panggilan atas nama prinsipal. Kunci konteks permintaan juga memberikan false saat prisipal langsung memanggil.

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk mengizinkan atau menolak akses berdasarkan apakah permintaan dibuat oleh layanan.

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 permintaan aws:referer diberikan oleh penelepon dalam header HTTP. Header Referer disertakan dalam permintaan browser web saat Anda memilih tautan di halaman web. Header Referer berisi URL halaman web tempat tautan dipilih.

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

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

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

Awas

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

aws: RequestedRegion

Gunakan kunci ini untuk membandingkan AWS Wilayah yang dipanggil dalam permintaan dengan Wilayah yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci kondisi global ini untuk mengontrol Wilayah mana yang dapat diminta. Untuk melihat 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, seperti IAM, memiliki satu titik akhir. Karena titik akhir ini berada secara fisik di Wilayah Timur AS (N. Virginia), panggilan IAM selalu dilakukan ke Wilayah us-east-1. Misalnya, jika Anda membuat kebijakan yang menolak akses ke semua layanan jika Wilayah yang diminta bukan wilayah us-west-2, maka panggilan IAM selalu gagal. Untuk melihat contoh cara mengatasinya, lihat NotAction dengan Deny.

catatan

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

Misalnya, Amazon S3 memiliki operasi API yang meluas di seluruh wilayah.

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

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

Anda dapat menggunakan kunci konteks ini untuk membatasi akses ke AWS layanan dalam kumpulan Wilayah tertentu. Misalnya, kebijakan berikut memungkinkan pengguna untuk melihat semua instans Amazon EC2 di. 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 saat pasangan nilai kunci tag diteruskan dalam permintaan. Ketika beberapa tanda diteruskan dalam permintaan, ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Kunci konteks ini diformat "aws:RequestTag/tag-key":"tag-value" dengan tag-key dan tag-value adalah kunci tanda dan pasangan nilai. Kunci dan nilai tag tidak peka huruf besar/kecil. Ini berarti bahwa jika Anda menentukan "aws:RequestTag/TagKey1": "Value1" dalam elemen kondisi kebijakan Anda, maka kondisi akan cocok dengan kunci tag 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. Sebaiknya saat Anda menggunakan kebijakan untuk mengontrol akses menggunakan tag, gunakan tombol aws:TagKeys kondisi untuk menentukan kunci tag apa yang diizinkan. Untuk contoh kebijakan dan informasi selengkapnya, lihat Mengontrol akses berdasarkan kunci tanda.

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

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

Kunci konteks ini diformat "aws:TagKeys":"tag-key" dengan key-tag adalah daftar kunci tanda 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 snapshot Amazon EC2 Anda harus menyertakan ec2:CreateSnapshot tindakan pembuatan dan ec2:CreateTags menandai tindakan di dalam kebijakan. Untuk melihat kebijakan skenario yang digunakan iniaws:TagKeys, lihat Membuat Snapshot dengan Tag di Panduan Pengguna Amazon EC2.

aws: SecureTransport

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

  • Ketersediaan – Kunci ini selalu disertakan dalam konteks permintaan.

  • Tipe dataBoolean

  • Jenis nilai - Bernilai tunggal

aws: SourceArn

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

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

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

    aws: SourceArn

    Integrasi layanan berikut tidak mendukung kunci kondisi global ini:

    Layanan panggilan (kepala layanan) Disebut layanan (kebijakan berbasis sumber daya) Deskripsi
    logdelivery.elb.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    catatan

    Tidak semua integrasi layanan dengan AWS Security Token Service (AWS STS) dan AWS Key Management Service (AWS KMS) didukung. Lihat dokumentasi layanan panggilan untuk informasi lebih lanjut. Penggunaan aws:SourceArn dalam kebijakan kunci KMS untuk kunci yang digunakan oleh Layanan AWS melalui hibah kunci KMS dapat mengakibatkan perilaku yang tidak terduga.

  • Tipe data - ARN, String

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

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk mencegah AWS layanan digunakan sebagai wakil yang bingung selama transaksi antar layanan. Gunakan kunci ini hanya dalam kebijakan berbasis sumber daya yang merupakan Principal prinsipal. Layanan AWS Tetapkan nilai kunci kondisi ini ke ARN sumber daya dalam permintaan. Misalnya, saat pembaruan bucket Amazon S3 memicu publikasi topik Amazon SNS, layanan Amazon S3 akan memanggil operasi API. sns:Publish Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke ARN bucket Amazon S3. Untuk informasi tentang bagaimana dan kapan kunci kondisi ini direkomendasikan, lihat dokumentasi untuk AWS layanan yang Anda gunakan.

aws: SourceAccount

Gunakan kunci ini untuk membandingkan ID akun sumber daya yang membuat service-to-service permintaan dengan ID akun yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh kepala 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 meneruskan ID akun dari sumber daya asli ke layanan yang disebut.

    aws: SourceAccount

    Integrasi layanan berikut tidak mendukung kunci kondisi global ini:

    Layanan panggilan (kepala layanan) Disebut layanan (kebijakan berbasis sumber daya) Deskripsi
    logdelivery.elb.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    catatan

    Tidak semua integrasi layanan dengan AWS Security Token Service (AWS STS) dan AWS Key Management Service (AWS KMS) didukung. Lihat dokumentasi layanan panggilan untuk informasi lebih lanjut. Penggunaan aws:SourceAccount dalam kebijakan kunci KMS untuk kunci yang digunakan oleh Layanan AWS melalui hibah kunci KMS dapat mengakibatkan perilaku yang tidak terduga.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk mencegah AWS layanan digunakan sebagai wakil yang bingung selama transaksi antar layanan. Gunakan kunci ini hanya dalam kebijakan berbasis sumber daya yang merupakan Principal prinsipal. Layanan AWS Tetapkan nilai kunci kondisi ini ke ID akun sumber daya dalam permintaan. Misalnya, saat pembaruan bucket Amazon S3 memicu publikasi topik Amazon SNS, layanan Amazon S3 akan memanggil operasi API. sns:Publish Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke ID akun bucket Amazon S3. Untuk informasi tentang bagaimana dan kapan kunci kondisi ini direkomendasikan, lihat dokumentasi untuk AWS layanan yang Anda gunakan.

aws: SourceOrg Jalur

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang membuat service-to-service permintaan dengan jalur organisasi yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh kepala AWS layanan. Organizations Path adalah representasi teks dari struktur entitas Organizations. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat Memahami jalur AWS Organizations entitas.

  • Ketersediaan — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan 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 disebut.

    aws: SourceOrg Jalur

    Integrasi layanan berikut tidak mendukung kunci kondisi global ini:

    Layanan panggilan (kepala layanan) Disebut layanan (kebijakan berbasis sumber daya) Deskripsi
    logdelivery.elb.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    Semua kepala sekolah layanan Bot Amazon Lex Izinkan Layanan AWS untuk menggunakan bot Amazon Lex
    catatan

    Tidak semua integrasi layanan dengan AWS Security Token Service (AWS STS) dan AWS Key Management Service (AWS KMS) didukung. Lihat dokumentasi layanan panggilan untuk informasi lebih lanjut. Penggunaan aws:SourceOrgPaths dalam kebijakan kunci KMS untuk kunci yang digunakan oleh Layanan AWS melalui hibah kunci KMS dapat mengakibatkan perilaku yang tidak terduga.

  • Tipe data - String (daftar)

  • Jenis nilai — Multivalued

Anda dapat menggunakan kunci kondisi ini untuk mencegah AWS layanan digunakan sebagai wakil yang bingung selama transaksi antar layanan. Gunakan kunci ini hanya dalam kebijakan berbasis sumber daya yang merupakan Principal prinsipal. Layanan AWS Tetapkan nilai kunci kondisi ini ke jalur organisasi sumber daya dalam permintaan. Misalnya, saat pembaruan bucket Amazon S3 memicu publikasi topik Amazon SNS, layanan Amazon S3 akan memanggil operasi API. sns:Publish Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke jalur organisasi bucket Amazon S3. Untuk informasi tentang bagaimana dan kapan kunci kondisi ini direkomendasikan, lihat dokumentasi untuk AWS layanan yang Anda gunakan.

aws:SourceOrgPaths adalah kunci kondisi multinilai. Kunci multivalued 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: SourceOrg ID

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

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

    aws: SourceOrg ID

    Integrasi layanan berikut tidak mendukung kunci kondisi global ini:

    Layanan panggilan (kepala layanan) Disebut layanan (kebijakan berbasis sumber daya) Deskripsi
    logdelivery.elb.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    logdelivery.elasticloadbalancing.amazonaws.com Bucket Amazon S3 Aktifkan log akses Elastic Load Balancing di bucket Amazon S3
    Semua kepala sekolah layanan Bot Amazon Lex Izinkan Layanan AWS untuk menggunakan bot Amazon Lex
    catatan

    Tidak semua integrasi layanan dengan AWS Security Token Service (AWS STS) dan AWS Key Management Service (AWS KMS) didukung. Lihat dokumentasi layanan panggilan untuk informasi lebih lanjut. Penggunaan aws:SourceOrgID dalam kebijakan kunci KMS untuk kunci yang digunakan oleh Layanan AWS melalui hibah kunci KMS dapat mengakibatkan perilaku yang tidak terduga.

  • Tipe data - String

  • Jenis nilai - Bernilai tunggal

Anda dapat menggunakan kunci kondisi ini untuk mencegah AWS layanan digunakan sebagai wakil yang bingung selama transaksi antar layanan. Gunakan kunci ini hanya dalam kebijakan berbasis sumber daya yang merupakan Principal prinsipal. Layanan AWS Tetapkan nilai kunci kondisi ini ke ID organisasi sumber daya dalam permintaan. Misalnya, saat pembaruan bucket Amazon S3 memicu publikasi topik Amazon SNS, layanan Amazon S3 akan memanggil operasi API. sns:Publish Dalam kebijakan topik yang memungkinkan sns:Publish pengoperasian, tetapkan nilai kunci kondisi ke ID organisasi bucket Amazon S3. Untuk informasi tentang bagaimana dan kapan kunci kondisi ini direkomendasikan, lihat dokumentasi untuk AWS layanan yang Anda gunakan.

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. Sejak aws:UserAgent nilai disediakan oleh pemanggil dalam header HTTP, pihak yang tidak berwenang dapat menggunakan browser yang diubah atau disesuaikan untuk menyediakan nilai aws:UserAgent yang mereka pilih. Akibatnya, tidak aws:UserAgent boleh digunakan untuk mencegah pihak yang tidak berwenang membuat AWS permintaan langsung. Anda dapat menggunakannya hanya untuk mengizinkan aplikasi klien tertentu, dan hanya setelah menguji kebijakan Anda.

Kunci kondisi lintas layanan lainnya

AWS STS mendukung kunci kondisi federasi berbasis SAMP dan kunci kondisi lintas layanan untuk federasi OIDC. Kunci ini tersedia ketika pengguna yang difederasi menggunakan SAMP melakukan AWS operasi di layanan lain.