View a markdown version of this page

IAM dan AWS STS kunci konteks kondisi - AWS Identity and Access Management

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

IAM dan AWS STS kunci konteks kondisi

Anda dapat menggunakan Condition elemen dalam kebijakan JSON untuk menguji nilai kunci yang disertakan dalam konteks permintaan semua AWS permintaan. Kunci-kunci ini menyediakan informasi tentang permintaannya sendiri atau sumber daya yang dirujuk oleh permintaan. Anda dapat memeriksa bahwa kunci telah menentukan nilai sebelum mengizinkan tindakan yang diminta oleh pengguna. Hal ini memberi Anda kendali terperinci ketika pernyataan kebijakan JSON Anda cocok atau tidak cocok dengan permintaan masuk. Untuk informasi tentang penggunaan elemen Condition dalam kebijakan JSON, lihat Elemen kebijakan IAM JSON: Kondisi.

Topik ini menjelaskan kunci yang ditentukan dan disediakan oleh layanan IAM (dengan iam: awalan) dan layanan AWS Security Token Service (AWS STS) (dengan sts: awalan). Beberapa AWS layanan lain juga menyediakan kunci khusus layanan yang relevan dengan tindakan dan sumber daya yang ditentukan oleh layanan tersebut. Untuk informasi selengkapnya, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan. Dokumentasi untuk layanan yang mendukung kunci kondisi sering kali memiliki informasi tambahan. Misalnya, untuk informasi tentang kunci yang dapat Anda gunakan dalam kebijakan untuk sumber daya Amazon S3, lihat Kunci Kebijakan Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Kunci yang tersedia untuk IAM

Anda dapat menggunakan kunci-kunci kondisi berikut dalam kebijakan yang mengontrol akses ke sumber daya IAM:

sudah: AssociatedResourceArn

Bekerja IT Operator ARN .

Menentukan ARN sumber daya yang akan dihubungkan dengan peran ini di layanan tujuan. Sumber daya biasanya dimiliki oleh layanan yang perannya diteruskan oleh prinsipal. Terkadang, sumber daya mungkin dimiliki oleh layanan ketiga. Sebagai contoh, Anda mungkin meneruskan peran ke Amazon EC2 Auto Scaling yang mereka gunakan di instans Amazon EC2. Dalam kasus ini, kondisi akan cocok dengan ARN dari instans Amazon EC2.

Kunci kondisi ini hanya berlaku untuk tindakan PassRole di dalam kebijakan. Kondisi ini tidak dapat digunakan untuk membatasi tindakan lainnya.

penting

Saat menggunakan iam:AssociatedResourceArn kondisi dalam kebijakan untuk membatasi PassRole tindakan, pertimbangan khusus berlaku jika kebijakan dimaksudkan untuk menentukan akses untuk AddRoleToInstanceProfile tindakan tersebut. Dalam hal ini, Anda tidak dapat menentukan Region atau ID instans di ARN instans EC2. Nilai ARN harusarn:aws:ec2:*:CallerAccountId:instance/*. Menggunakan nilai ARN lainnya dapat menyebabkan hasil evaluasi yang tidak terduga.

Gunakan kunci kondisi ini dalam kebijakan berbasis identitas untuk mengizinkan entitas meneruskan peran, tetapi hanya jika peran tersebut dikaitkan dengan sumber daya yang ditentukan. Misalnya, Anda dapat mengizinkan pengguna atau peran IAM untuk meneruskan peran apa pun ke layanan Amazon EC2 untuk digunakan dengan instans di. Akun AWS Pengguna atau peran IAM tidak akan diizinkan untuk meneruskan peran ke layanan lain.

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" }, "ArnLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:*:111122223333:instance/*" ] } } }
catatan

AWS layanan yang mendukung iam: PassedToService juga mendukung kunci kondisi ini.

sudah: AWSServiceName

Bekerja dengan operator string.

Menentukan AWS layanan yang dilampirkan peran ini.

Kunci kondisi ini didukung oleh operasi CreateServiceLinkedRole API.

Tip

Untuk informasi tentang layanan mana yang mendukung penggunaan peran terkait layanan, lihat AWS layanan yang bekerja dengan IAM dan cari layanan yang memiliki Ya di kolom Service-Linked Per an. Pilih Ya dengan sebuah tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

Dalam contoh ini, Anda mengizinkan entitas untuk membuat peran terkait layanan menggunakan operasi CreateServiceLinkedRole API jika nama layanannya access-analyzer.amazonaws.com.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "access-analyzer.amazonaws.com" } } }] }
sudah: FIDO-certification

Bekerja dengan operator string.

Memeriksa tingkat sertifikasi FIDO perangkat MFA pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari FIDO Alliance Metadata Service (MDS). Jika status sertifikasi atau tingkat kunci keamanan FIDO Anda berubah, itu tidak akan diperbarui kecuali perangkat tidak terdaftar dan terdaftar lagi untuk mengambil informasi sertifikasi yang diperbarui.

Nilai yang mungkin dari L1, L1plus, L2, L2plus, L3, L3plus

Dalam contoh ini, Anda mendaftarkan kunci keamanan dan mengambil sertifikasi FIDO Level 1 plus untuk perangkat Anda.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-certification": "L1plus" } } } ] }
sudah: FIDO-FIPS-140-2-certification

Bekerja dengan operator string.

Memeriksa tingkat sertifikasi FIPS-140-2 validasi perangkat MFA pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari FIDO Alliance Metadata Service (MDS). Jika status sertifikasi atau tingkat kunci keamanan FIDO Anda berubah, itu tidak akan diperbarui kecuali perangkat tidak terdaftar dan terdaftar lagi untuk mengambil informasi sertifikasi yang diperbarui.

Nilai yang mungkin dari L1, L2, L3, L4

Dalam contoh ini, Anda mendaftarkan kunci keamanan dan mengambil sertifikasi FIPS-140-2 Level 2 untuk perangkat Anda.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2" } } } ] }
sudah: FIDO-FIPS-140-3-certification

Bekerja dengan operator string.

Memeriksa tingkat sertifikasi FIPS-140-3 validasi perangkat MFA pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari FIDO Alliance Metadata Service (MDS). Jika status sertifikasi atau tingkat kunci keamanan FIDO Anda berubah, itu tidak akan diperbarui kecuali perangkat tidak terdaftar dan terdaftar lagi untuk mengambil informasi sertifikasi yang diperbarui.

Nilai yang mungkin dari L1, L2, L3, L4

Dalam contoh ini, Anda mendaftarkan kunci keamanan dan mengambil sertifikasi FIPS-140-3 Level 3 untuk perangkat Anda.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L3" } } } ] }
sudah: OrganizationsPolicyId

Bekerja dengan operator string.

Memeriksa apakah kebijakan dengan AWS Organizations ID yang ditentukan cocok dengan kebijakan yang digunakan dalam permintaan. Untuk melihat contoh kebijakan IAM yang menggunakan kunci kondisi ini, lihat IAM: Lihat informasi layanan yang terakhir diakses untuk kebijakan AWS Organizations.

sudah: PassedToService

Bekerja dengan operator string.

Menentukan prinsipal layanan untuk peran yang dapat diteruskan. Kunci kondisi ini hanya berlaku untuk tindakan PassRole di dalam kebijakan. Kondisi ini tidak dapat digunakan untuk membatasi tindakan lainnya.

Saat Anda menggunakan kunci kondisi ini dalam suatu kebijakan, tentukan layanan menggunakan prinsipal layanan. Prinsipal layanan adalah nama layanan yang dapat ditentukan dalam elemen Principal dari suatu kebijakan. Ini adalah format biasa: SERVICE_NAME_URL.amazonaws.com.

Anda dapat menggunakan iam:PassedToService untuk membatasi pengguna Anda sehingga mereka dapat meneruskan peran ke layanan tertentu. Misalnya, pengguna dapat membuat peran layanan yang mempercayai CloudWatch untuk menulis data log ke bucket Amazon S3 atas nama mereka. Kemudian pengguna harus memberlakukan kebijakan izin dan kebijakan kepercayaan pada peran layanan baru. Dalam hal ini, kebijakan kepercayaan harus menyebutkan cloudwatch.amazonaws.com dalam elemen Principal. Untuk melihat kebijakan yang memungkinkan pengguna meneruskan peran CloudWatch, lihatIAM: Lulus peran IAM ke layanan tertentu AWS.

Dengan menggunakan kunci kondisi ini, Anda dapat memastikan bahwa pengguna membuat peran layanan hanya untuk layanan yang Anda tentukan. Misalnya, jika pengguna dengan kebijakan sebelumnya mencoba membuat peran layanan untuk Amazon EC2, operasi akan gagal. Kegagalan terjadi karena pengguna tidak memiliki izin untuk meneruskan peran ke Amazon EC2.

Kadang-kadang Anda meneruskan peran ke layanan yang kemudian memberikan peran ke layanan lain. iam:PassedToService hanya mencakup layanan akhir yang mengasumsikan peran, bukan layanan perantara yang meneruskan peran.

catatan

Beberapa layanan tidak mendukung kunci kondisi ini.

sudah: PermissionsBoundary

Bekerja IT Operator ARN .

Memastikan bahwa kebijakan yang ditentukan diberlakukan sebagai batas izin pada sumber daya utama IAM. Untuk informasi selengkapnya, lihat Batas izin untuk entitas IAM

iam:PolicyARN

Bekerja IT Operator ARN .

Memeriksa Amazon Resource Name (ARN) dari kebijakan terkelola dengan permintaan yang melibatkan kebijakan terkelola. Untuk informasi selengkapnya, lihat Mengendalikan akses ke kebijakan.

sudah: RegisterSecurityKey

Bekerja dengan operator string.

Memeriksa status pengaktifan perangkat MFA saat ini.

Nilai yang mungkin dari Create atauActivate.

Dalam contoh ini, Anda mendaftarkan kunci keamanan dan mengambil sertifikasi FIPS-140-3 Level 1 untuk perangkat Anda.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L1" } } } ] }
Sudah:/ResourceTagkey-name

Bekerja dengan operator string.

Memeriksa apakah tanda yang dilampirkan ke sumber daya identitas (pengguna atau peran) cocok dengan nama dan nilai kunci yang ditentukan.

catatan

IAM dan AWS STS mendukung kunci kondisi iam:ResourceTag IAM dan kunci kondisi aws:ResourceTag global.

Anda dapat menambahkan atribut khusus ke sumber daya IAM dalam bentuk pasangan kunci-nilai. Untuk informasi selengkapnya tentang tag untuk sumber daya IAM, lihatTag untuk AWS Identity and Access Management sumber daya. Anda dapat menggunakan ResourceTag untuk mengontrol akses ke AWS sumber daya, termasuk sumber daya IAM. Namun, karena IAM tidak mendukung tag untuk grup, Anda tidak dapat menggunakan tag untuk mengontrol akses ke grup.

Contoh ini menunjukkan bagaimana Anda dapat membuat kebijakan berbasis identitas yang memungkinkan menghapus pengguna dengan tag. status=terminated Untuk menggunakan kebijakan ini, ganti kebijakan italicized placeholder text dalam contoh dengan informasi Anda sendiri. Lalu, ikuti petunjuk di buat kebijakan atau edit kebijakan.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringEquals": {"iam:ResourceTag/status": "terminated"}} }] }
sudah: ServiceSpecificCredentialAgeDays

Bekerja dengan operator numerik.

Kunci kondisi ini membatasi pembuatan kredenSIAL khusus layanan berdasarkan pengaturan kedaluwarsanya. Ini memungkinkan Anda untuk mengontrol usia maksimum, dalam hari, dari kredenSIAL khusus layanan yang dapat dibuat.

Rentang yang berlaku untuk hari adalah 1 hingga 36600 (minimal 1 hari, maksimum 36600 hari).

Kunci kondisi ini didukung oleh operasi CreateServiceSpecificCredential API.

Dalam contoh ini, Anda mengizinkan pengguna membuat kredenSIAL khusus layanan untuk layanan Amazon Bedrock hanya jika kredensialnya kedaluwarsa dalam 90 hari.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "arn:aws:iam::111122223333:user/username", "Condition": { "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com" }, "NumericLessThanEquals": { "iam:ServiceSpecificCredentialAgeDays": "90" } } } ] }
sudah: ServiceSpecificCredentialServiceName

Bekerja dengan operator string.

Menentukan AWS layanan mana yang dapat digunakan saat mengelola kredenSIAL khusus layanan. Kunci kondisi ini memungkinkan Anda membatasi AWS layanan mana yang diizinkan saat mengelola kredenSIAL khusus layanan.

Kunci kondisi ini didukung oleh operasi API berikut:

Layanan berikut didukung untuk kredenSIAL khusus layanan dengan pemformatan nilai yang tepat:

  • bedrock.amazonaws.com

  • cassandra.amazonaws.com

  • codecommit.amazonaws.com

Dalam contoh ini, Anda mengizinkan pengguna membuat kredentif khusus layanan menggunakan operasi CreateServiceSpecificCredential API hanya untuk layanan Amazon Bedrock.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "arn:aws:iam::111122223333:user/username", "Condition": { "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com" } } } ] }
sudah: DelegationDuration

Bekerja dengan operator numerik.

Memfilter akses berdasarkan durasi akses sementara yang diminta dalam permintaan delegasi.

Penyedia produk dapat menggunakan kunci kondisi ini untuk mengontrol durasi maksimum yang mereka izinkan dalam permintaan delegasi yang dikirim ke pelanggan. Durasi ditentukan dalam detik dan menentukan berapa lama kredenSIAL sementara tetap valid setelah pelanggan melepaskan token pertukaran. Ini membantu penyedia produk menegakkan kebijakan internal seputar batas durasi akses berdasarkan kasus penggunaan mereka.

Kunci kondisi ini didukung oleh operasi CreateDelegationRequest API.

Dalam contoh ini, Anda mengizinkan pembuatan permintaan delegasi hanya jika durasi yang diminta adalah 7200 detik (2 jam) atau kurang.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateDelegationRequest", "Resource": "*", "Condition": { "NumericLessThanEquals": { "iam:DelegationDuration": "7200" } } } ] }
sudah: NotificationChannel

Bekerja IT Operator ARN .

Memfilter akses berdasarkan topik Amazon SNS ARN yang ditentukan untuk menerima pemberitahuan permintaan delegasi.

Penyedia produk dapat menggunakan kunci kondisi ini untuk membatasi topik SNS mana yang dapat digunakan untuk pemberitahuan permintaan delegasi dalam panggilan CreateDelegationRequest API. Penyedia produk harus menentukan topik SNS untuk menerima pemberitahuan perubahan status dan token pertukaran. Ini memastikan bahwa notifikasi dikirim hanya ke saluran yang disetujui dalam organisasi penyedia produk.

Kunci kondisi ini didukung oleh operasi CreateDelegationRequest API.

Dalam contoh ini, Anda mengizinkan pembuatan permintaan delegasi hanya jika mereka menggunakan topik SNS tertentu untuk pemberitahuan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateDelegationRequest", "Resource": "*", "Condition": { "ArnEquals": { "iam:NotificationChannel": "arn:aws:sns:us-east-1:123456789012:delegation-notifications" } } } ] }
sudah: TemplateArn

Bekerja IT Operator ARN .

Memfilter akses berdasarkan template kebijakan ARN yang digunakan untuk menentukan izin dalam permintaan delegasi.

Penyedia produk dapat menggunakan kunci kondisi ini untuk mengontrol templat kebijakan mana yang dapat digunakan dalam panggilan CreateDelegationRequest API. Templat kebijakan menentukan izin sementara yang diminta penyedia produk di akun pelanggan. Hal ini memungkinkan penyedia produk membatasi templat kebijakan terdaftar mana yang dapat digunakan saat membuat permintaan delegasi.

Kunci kondisi ini didukung oleh operasi CreateDelegationRequest API.

Dalam contoh ini, Anda mengizinkan pembuatan permintaan delegasi hanya jika mereka menggunakan templat kebijakan dari domain mitra tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateDelegationRequest", "Resource": "*", "Condition": { "ArnLike": { "iam:TemplateArn": "arn:aws:iam::*:delegation-template/partner_*" } } } ] }
sudah: DelegationRequestOwner

Bekerja IT Operator ARN .

Memfilter akses berdasarkan AWS identitas atau prinsipal yang memiliki permintaan delegasi.

Pelanggan dapat menggunakan kunci kondisi ini untuk mengontrol siapa yang dapat melakukan tindakan pada permintaan delegasi berdasarkan kepemilikan. Pemilik permintaan delegasi adalah AWS identitas atau prinsipal di akun pelanggan yang memulai atau menerima permintaan delegasi.

Kunci kondisi ini didukung oleh operasi API berikut:

  • GetDelegationRequest

  • AcceptDelegationRequest

  • RejectDelegationRequest

  • SendDelegatedToken

  • ListDelegationRequests

  • UpdateDelegationRequest

Dalam contoh ini, Anda mengizinkan pengguna untuk mengelola hanya permintaan delegasi yang mereka miliki.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetDelegationRequest", "iam:AcceptDelegationRequest", "iam:RejectDelegationRequest", "iam:SendDelegatedToken", "iam:UpdateDelegationRequest", "iam:ListDelegationRequests" ], "Resource": "*", "Condition": { "ArnEquals": { "iam:DelegationRequestOwner": "${aws:PrincipalArn}" } } } ] }

Kunci yang tersedia untuk AWS Federasi OIDC

Anda dapat menggunakan federasi OIDC untuk memberikan kredentif keamanan sementara kepada pengguna yang telah diautentikasi melalui penyedia identitas yang kompatibel (IdP) OpenID Connect ke penyedia identitas IAM OpenID Connect (OIDC) di akun Anda. AWS Contoh penyedia tersebut termasuk GitHub, Amazon Cognito, Login dengan Amazon, dan Google. Token identitas dan token akses dari IdP Anda sendiri dapat digunakan, serta token akun layanan yang diberikan ke beban kerja Layanan Kubernetes Amazon Elastic.

Anda dapat menggunakan kunci konteks kondisi AWS OIDC untuk menulis kebijakan yang membatasi akses prinsipal federasi ke sumber daya yang terkait dengan penyedia, aplikasi, atau pengguna tertentu. Kunci ini biasanya digunakan dalam kebijakan kepercayaan untuk suatu peran. Tentukan kunci kondisi menggunakan nama penyedia OIDC (token.actions.githubusercontent.com) diikuti dengan klaim (:aud):token.actions.githubusercontent.com:aud.

Beberapa kunci kondisi federasi OIDC dapat digunakan dalam sesi peran untuk mengotorisasi akses sumber daya. Jika nilainya Ya di kolom Ter sedia dalam sesi, Anda dapat menggunakan kunci kondisi ini dalam kebijakan untuk menentukan pengguna apa yang diizinkan untuk mengakses AWS layanan lain. Bila klaim tidak tersedia dalam sesi, kunci konteks kondisi OIDC hanya dapat digunakan dalam kebijakan kepercayaan peran untuk AssumeRoleWithWebIdentity otentikasi awal.

Pilih IdP Anda untuk melihat bagaimana klaim dari IdP Anda dipetakan ke kunci konteks kondisi IAM masuk. AWS Informasi lebih lanjut tentang kunci untuk GitHub dan Google dapat ditemukan di bawah tab Default.

Default

Default mencantumkan klaim OIDC standar dan bagaimana mereka memetakan ke kunci konteks AWS STS kondisi di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP. Gunakan pemetaan ini jika IdP Anda tidak tercantum dalam opsi tab.

GitHub Alur kerja tindakan dan Google adalah beberapa contoh IdPs yang menggunakan implementasi default di token ID JWT OIDC mereka.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

amr

amr

Ya

aud

azp

Jika tidak ada nilai yang ditetapkan untukazp, kunci aud kondisi dipetakan ke aud klaim.

Ya

Email

Email

Tidak

oaud

aud

Tidak

sub

sub

Ya

Untuk informasi selengkapnya tentang menggunakan kunci konteks kondisi OIDC dengan GitHub, lihatMengkonfigurasi peran untuk penyedia identitas GitHub OIDC. Untuk informasi selengkapnya tentang kolom aud dan azp Google, lihat Panduan Google Identity Platform OpenID Connect.

amr

Bekerja dengan operator string. Kunci ini memiliki banyak nilai, artinya jika Anda mengujinya dalam suatu kebijakan yang menggunakan operator kumpulan kondisi.

Contoh: token.actions.githubusercontent.com:amr

Referensi Metode Otentikasi mencakup informasi login tentang pengguna. Kunci dapat berisi nilai-nilai berikut:

  • Jika pengguna tidak autentikasi, kunci hanya berisi unauthenticated.

  • Jika pengguna diautentikasi, kunci berisi nilai authenticated dan nama penyedia login yang digunakan dalam panggilan (accounts.google.com).

Aud

Bekerja dengan operator string.

Contoh:

  • accounts.google.com:aud

  • token.actions.githubusercontent.com:aud

Gunakan kunci aud kondisi untuk memverifikasi bahwa audiens cocok dengan yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci aud dengan sub kunci untuk penyedia identitas yang sama.

Kunci kondisi ini diatur dari bidang token berikut:

  • aud untuk ID klien Google OAuth 2.0 dari aplikasi Anda, jika kolom azp belum ditetapkan. Ketika azp bidang disetel, aud bidang tersebut cocok dengan kunci accounts.google.com:oaud kondisi.

  • azp jika kolom azp ditetapkan. Ini dapat terjadi pada aplikasi hybrid dengan aplikasi web dan aplikasi Android yang memiliki ID klien Google OAuth 2.0, tetapi memiliki proyek API Google yang sama.

Ketika Anda menulis kebijakan menggunakan kunci kondisi accounts.google.com:aud, Anda harus mengetahui apakah aplikasi tersebut merupakan aplikasi hibrida yang menetapkan kolom azp tersebut atau bukan.

azpKolom Tidak Ditetapkan

Contoh kebijakan berikut bekerja untuk aplikasi non-hibrida yang tidak menetapkan kolom azp. Dalam hal ini, nilai kolom Token ID Google aud sesuai dengan nilai kunci kondisi accounts.google.com:aud dan accounts.google.com:oaud.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "aud-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }

Kumpulan Kolom azp

Contoh kebijakan berikut berfungsi untuk aplikasi non-hibrida yang tidak menetapkan kolom azp. Dalam hal ini, nilai kolom aud Token ID Google hanya sesuai dengan nilai kunci kondisi accounts.google.com:oaud. Nilai kolom azp sesuai dengan nilai kunci kondisi accounts.google.com:aud.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "azp-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }
surel

Bekerja dengan operator string.

Contoh: accounts.google.com:email

Kunci kondisi ini memvalidasi alamat email pengguna. Nilai klaim ini mungkin tidak unik untuk akun ini dan dapat berubah seiring waktu, oleh karena itu Anda tidak boleh menggunakan nilai ini sebagai pengidentifikasi utama untuk memverifikasi catatan pengguna Anda.

oauda

Bekerja dengan operator string.

Contoh: accounts.google.com:oaud

Kunci ini menentukan audiens lain (aud) yang dimaksudkan untuk token ID ini. Kunci ini harus salah satu dari ID klien OAuth 2.0 aplikasi Anda.

sub

Bekerja dengan operator string.

Contoh:

  • accounts.google.com:sub

  • token.actions.githubusercontent.com:sub

Gunakan tombol ini untuk memverifikasi bahwa subjek cocok dengan subjek yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci sub dengan kunci aud untuk penyedia identitas yang sama.

Dalam kebijakan kepercayaan peran berikut, kunci sub kondisi membatasi peran ke GitHub cabang bernamademo.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:sub": "repo:org-name/repo-name:ref:refs/heads/demo" } } } ] }
Amazon Cognito

Tab ini menjelaskan cara Amazon Cognito memetakan klaim OIDC untuk meng AWS STS kondisikan kunci konteks di. AWS Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

Untuk peran yang digunakan oleh Amazon Cognito, kunci didefinisikan menggunakan cognito-identity.amazonaws.com diikuti oleh klaim.

Untuk informasi selengkapnya tentang pemetaan klaim kumpulan identitas, lihat Pemetaan penyedia default di Panduan Pengembang Amazon Cognito. Untuk informasi selengkapnya tentang pemetaan klaim kumpulan pengguna, lihat Menggunakan token ID di Panduan Pengembang Amazon Cognito.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

amr

amr

Ya

aud

aud

Ya

oaud

aud

Tidak

sub

sub

Ya

amr

Bekerja dengan operator string. Kunci ini memiliki banyak nilai, artinya jika Anda mengujinya dalam suatu kebijakan yang menggunakan operator kumpulan kondisi.

Contoh cognito-identity.amazonaws.com:amr

Referensi Metode Otentikasi mencakup informasi login tentang pengguna. Kunci dapat berisi nilai-nilai berikut:

  • Jika pengguna tidak autentikasi, kunci hanya berisi unauthenticated.

  • Jika pengguna diautentikasi, kunci berisi nilai authenticated dan nama penyedia login yang digunakan dalam panggilan (cognito-identity.amazonaws.com).

Sebagai contoh, kondisi berikut dalam kebijakan kepercayaan untuk peran Amazon Cognito menguji apakah pengguna tidak diautentikasi.

"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } }
Aud

Bekerja dengan operator string.

Contoh cognito-identity.amazonaws.com:aud

Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito menampilkan nilai yang sama dalam klaim token client_id akses.

oauda

Bekerja dengan operator string.

Contoh cognito-identity.amazonaws.com:oaud

Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito menampilkan nilai yang sama dalam klaim token client_id akses.

sub

Bekerja dengan operator string.

Contoh cognito-identity.amazonaws.com:sub

Pengidentifikasi unik (UUID), atau subjek, untuk pengguna yang diautentikasi. Nama pengguna mungkin tidak unik di kumpulan pengguna Anda. Sub klaim adalah cara terbaik untuk mengidentifikasi pengguna tertentu. Anda dapat menggunakan kunci sub dengan kunci aud untuk penyedia identitas yang sama.

"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab", "cognito-identity.amazonaws.com:sub": [ "us-east-1:12345678-1234-1234-1234-123456790ab", "us-east-1:98765432-1234-1234-1243-123456790ab" ] } }
Login with Amazon

Tab ini menjelaskan cara Login dengan Amazon memetakan klaim OIDC untuk meng AWS STS kondisikan kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

app_id

ID Aplikasi

Ya

sub

ID Pengguna

Ya

user_id

ID Pengguna

Ya

app_id

Bekerja dengan operator string.

Contoh www.amazon.com:app_id

Kunci ini menentukan konteks audiens yang cocok dengan aud bidang yang digunakan oleh penyedia identitas lainnya.

sub

Bekerja dengan operator string.

Contoh www.amazon.com:sub

Kunci ini memverifikasi bahwa ID pengguna cocok dengan ID yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci sub dengan kunci aud untuk penyedia identitas yang sama.

user_id

Bekerja dengan operator string.

Contoh www.amazon.com:user_id

Kunci ini menentukan konteks audiens yang cocok dengan aud bidang yang digunakan oleh penyedia identitas lain.Anda dapat menggunakan user_id kunci dengan id kunci untuk penyedia identitas yang sama.

Facebook

Tab ini menjelaskan bagaimana Facebook memetakan klaim OIDC untuk meng AWS STS kondisikan kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

app_id

ID Aplikasi

Ya

id

id

Ya

app_id

Bekerja dengan operator string.

Contoh graph.facebook.com:app_id

Kunci ini memverifikasi bahwa konteks audiens cocok dengan aud bidang yang digunakan oleh penyedia identitas lainnya.

id

Bekerja dengan operator string.

Contoh graph.facebook.com:id

Kunci ini memverifikasi bahwa ID aplikasi (atau situs) cocok dengan ID yang Anda tentukan dalam kebijakan.

GitHub

Tab ini menjelaskan bagaimana Ac GitHub tions memetakan klaim OIDC ke AWS STS kondisi kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

aktor

aktor

Tidak

aktor_id

aktor_id

Tidak

lowjob_workflow_ref

lowjob_workflow_ref

Tidak

repositori

repositori

Tidak

repositori_id

repositori_id

Tidak

id pemilik repositori

id pemilik repositori

Tidak

alur kerja

alur kerja

Tidak

referensi

referensi

Tidak

lingkungan

lingkungan

Tidak

Enterprise_id

Enterprise_id

Tidak

aktor

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:actor

Kunci ini mengidentifikasi akun pribadi yang memulai proses alur kerja. Gunakan ini untuk membatasi akses ke aktor tertentu.

aktor_id

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:actor_id

Kunci ini memverifikasi ID akun pribadi yang memulai proses alur kerja. ID aktor dihasilkan oleh GitHub dan tidak dapat diubah.

lowjob_workflow_ref

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:job_workflow_ref

Kunci ini berisi jalur referensi ke alur kerja yang dapat digunakan kembali untuk pekerjaan menggunakan alur kerja yang dapat digunakan kembali. Gunakan ini untuk membatasi akses ke alur kerja tertentu dan untuk memastikan hanya alur kerja yang disetujui yang dapat mengambil peran.

repositori

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:repository

Kunci ini mengidentifikasi repositori tempat alur kerja berjalan. Gunakan ini untuk membatasi akses ke GitHub repositori tertentu.

repositori_id

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:repository_id

Kunci ini memverifikasi ID repositori tempat alur kerja berjalan. ID repositori tidak dapat diubah dan tidak berubah bahkan jika repositori diganti namanya.

id pemilik repositori

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:repository_owner_id

Kunci ini memverifikasi ID organisasi tempat repositori disimpan. ID pemilik repositori adalah pengenal unik yang stabil yang tidak berubah.

alur kerja

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:workflow

Kunci ini berisi nama alur kerja. Gunakan ini untuk membatasi akses ke alur kerja tertentu dalam repositori Anda.

referensi

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:ref

Kunci ini mengidentifikasi git ref (cabang atau tag) yang memicu dijalankan alur kerja. Gunakan ini untuk membatasi akses berdasarkan cabang tertentu, seperti hanya mengizinkan main atau production cabang.

lingkungan

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:environment

Kunci ini berisi nama lingkungan yang digunakan oleh pekerjaan. Gunakan ini untuk menerapkan kontrol akses berbasis lingkungan, seperti izin terpisah untuk lingkungan pengembangan, pementasan, dan produksi.

catatan

Jika klaim lingkungan disertakan dalam kebijakan kepercayaan Anda, lingkungan harus dikonfigurasi dan disediakan dalam al GitHub ur kerja.

Enterprise_id

Bekerja dengan operator string.

Contoh token.actions.githubusercontent.com:enterprise_id

Kunci ini memverifikasi ID perusahaan yang berisi repositori tempat alur kerja berjalan. Gunakan ini untuk memastikan akses terbatas pada repositori dalam organisasi GitHub Perusahaan Anda.

Contoh kebijakan kepercayaan berikut menggunakan klaim kustom dalam token GitHub OIDC untuk membatasi akses ke peran.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/token.actions.githubusercontent.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:job_workflow_ref": "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main", "token.actions.githubusercontent.com:repository": "octo-org/octo-repo", "token.actions.githubusercontent.com:actor": "octocat", "token.actions.githubusercontent.com:ref": "refs/heads/main", "token.actions.githubusercontent.com:enterprise_id": "345" } } } ] }
Google

Tab ini menjelaskan bagaimana Google memetakan OIDC mengklaim meng AWS STS kondisikan kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

google/organization_number

google:nomor_organisasi

Tidak

google/organization_number

Bekerja dengan operator numerik.

Contoh accounts.google.com:google/organization_number

Kunci ini memverifikasi bahwa token mewakili identitas Google milik organisasi Google Cloud atau Google Workspace tertentu. Gunakan ini untuk membatasi akses ke pengguna dari organisasi tertentu, memastikan bahwa hanya identitas dari organisasi Anda yang dapat mengambil peran tersebut.

Contoh kebijakan kepercayaan berikut menggunakan google/organization_number klaim untuk membatasi akses ke peran.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "NumericEquals": { "accounts.google.com:google/organization_number": "123456" } } } ] }
CircleCI

Tab ini menjelaskan bagaimana CircleCI memetakan klaim OIDC ke AWS STS kondisi kunci konteks di. AWS Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

idc.circleci. com/project-id

idc.circleci. com/project-id

Tidak

idc.circleci. com/project-id

Bekerja dengan operator string.

Contoh circleci-issuer-url:oidc.circleci.com/project-id

Kunci ini mengidentifikasi proyek CircleCI tempat pekerjaan berjalan. Nilainya adalah string yang berisi UUID yang secara unik mengidentifikasi proyek CircleCI. Gunakan ini untuk membatasi akses ke proyek CircleCI tertentu.

Contoh kebijakan kepercayaan berikut menggunakan oidc.circleci.com/project-id klaim untuk membatasi akses ke peran.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/oidc.circleci.com/org/12345" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.circleci.com/org/12345:aud": "sts.amazonaws.com", "oidc.circleci.com/org/12345:oidc.circleci.com/project-id": "76543210-ba98-fedc-3210-edcba0987654" } } } ] }
Oracle Cloud Infrastructure (OCI)

Tab ini menjelaskan cara Oracle Cloud Infrastructure memetakan klaim OIDC ke AWS STS kondisi kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

rpst_id

rpst_id

Tidak

rpst_id

Bekerja dengan operator string.

Contoh oci-issuer-url:rpst_id

Kunci ini secara unik mengidentifikasi prinsip sumber daya di OCI. Gunakan ini untuk membatasi akses ke prinsipal sumber daya OCI tertentu. rpst_id (Resource Principal Session Token ID) menyediakan pengenal stabil untuk otentikasi berbasis sumber daya OCI.

Contoh kebijakan kepercayaan berikut menggunakan rpst_id klaim untuk membatasi akses ke peran.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/idcs-abc123ef5678901234abcd.identity.oraclecloud.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:aud": "sts.amazonaws.com", "idcs-abc123ef5678901234abcd.identity.oraclecloud.com:rpst_id": "your-rpst-id" } } } ] }
GitLab.com

Tab ini menjelaskan bagaimana memet GitLab.com CI/CD akan klaim OIDC untuk meng AWS STS kondisikan kunci konteks di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

catatan

Kunci kondisi khusus ini hanya didukung saat menggunakan instance SaaS GitLab.com multi-tenant sebagai penyedia identitas OIDC. Anda tidak dapat menggunakan kunci kondisi ini dengan D GitLab edicated atau GitLab Self-Managed instance.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

namespace_id

namespace_id

Tidak

id_proyek

id_proyek

Tidak

user_id

user_id

Tidak

login pengguna

login pengguna

Tidak

email_pengguna

email_pengguna

Tidak

tingkat_akses_pengguna

tingkat_akses_pengguna

Tidak

ref_dilindungi

ref_dilindungi

Tidak

Pipeline_source

Pipeline_source

Tidak

runner_environment

runner_environment

Tidak

namespace_id

Bekerja dengan operator string.

Contoh gitlab.com:namespace_id

Kunci ini mengidentifikasi ID namespace (grup) dari proyek yang menjalankan CI/CD pekerjaan. ID namespace adalah pengidentifikasi unik yang stabil yang tidak berubah jika grup diganti namanya.

Proyek_id

Bekerja dengan operator string.

Contoh gitlab.com:project_id

Kunci ini mengidentifikasi ID proyek yang menjalankan CI/CD pekerjaan. ID proyek adalah pengidentifikasi unik yang stabil yang tidak berubah jika proyek diganti namanya atau dipindahkan.

user_id

Bekerja dengan operator string.

Contoh gitlab.com:user_id

Kunci ini mengidentifikasi ID pengguna yang menjalankan CI/CD pekerjaan. ID pengguna adalah pengidentifikasi unik yang stabil.

login pengguna

Bekerja dengan operator string.

Contoh gitlab.com:user_login

Kunci ini mengidentifikasi nama pengguna yang menjalankan CI/CD pekerjaan. Nama pengguna dapat diubah; untuk pengenal yang stabil, gunakan sebagai user_id gantinya.

email_pengguna

Bekerja dengan operator string.

Contoh gitlab.com:user_email

Kunci ini mengidentifikasi alamat email pengguna yang menjalankan CI/CD pekerjaan. Nilai klaim ini dapat berubah seiring waktu; untuk pengenal stabil, gunakan sebagai user_id gantinya.

tingkat_akses_pengguna

Bekerja dengan operator string.

Contoh gitlab.com:user_access_level

Kunci ini mengidentifikasi tingkat akses pengguna dalam proyek (misalnya,, maintainerdeveloper,owner).

ref_dilindungi

Bekerja dengan operator string.

Contoh gitlab.com:ref_protected

Kunci ini menunjukkan apakah referensi Git yang memicu pekerjaan dilindungi. Nilainya true jika dilindungi, false sebaliknya.

Pipeline_source

Bekerja dengan operator string.

Contoh gitlab.com:pipeline_source

Kunci ini mengidentifikasi sumber yang memicu pipeline (misalnya,, pushweb,schedule,api,merge_request_event).

lingkungan pelari

Bekerja dengan operator string.

Contoh gitlab.com:runner_environment

Kunci ini mengidentifikasi jenis pelari yang digunakan oleh CI/CD pekerjaan.

penting

Di GitLab.com SaaS, jalur grup atau proyek yang dihapus sebelumnya dapat dibuat ulang oleh pengguna yang berbeda, yang dapat menyebabkan kebijakan hanya mengandalkan klaim berbasis jalur (sepertisub) untuk memberikan akses ke identitas yang tidak diinginkan. Pada 1 Juni 2026, GitLab telah menerapkan pembaruan sisi platform yang mencegah token CI ID baru dikeluarkan untuk jalur proyek yang sebelumnya mengeluarkan token, mengurangi risiko ini ke depan. Sebagai lapisan perlindungan tambahan, AWS dan GitLab merekomendasikan untuk menyertakan kondisi pada pengidentifikasi unik yang stabil — seperti namespace_id atau project_id — dalam kebijakan kepercayaan peran atau kebijakan kontrol sumber daya Anda.

Contoh kebijakan kepercayaan berikut menggunakan namespace_id klaim bersama sub untuk membatasi akses ke GitLab.com proyek dan cabang tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/gitlab.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "gitlab.com:sub": "project_path:mygroup/myproject:ref_type:branch:ref:main", "gitlab.com:namespace_id": "12345" } } } ] }
Buildkite

Tab ini menjelaskan bagaimana Buildkite memetakan klaim OIDC untuk meng AWS STS kondisikan kunci konteks di. AWS Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukan itu, bandingkan kunci AWS STS kondisi dengan nilai di kolom klaim JWT IdP.

AWS STS kunci kondisi Klaim IdP JWT Tersedia dalam sesi

organisation_slug

organisation_slug

Tidak

organisation_id

organisation_id

Tidak

pipeline_slug

pipeline_slug

Tidak

_id pipa

_id pipa

Tidak

nama cluster

nama cluster

Tidak

Cluster_id

Cluster_id

Tidak

bangun_cabang

bangun_cabang

Tidak

organisation_slug

Bekerja dengan operator string.

Contoh agent.buildkite.com:organization_slug

Kunci ini mengidentifikasi organisasi Buildkite tempat pekerjaan berjalan. Gunakan ini untuk membatasi akses ke organisasi tertentu.

organisation_id

Bekerja dengan operator string.

Contoh agent.buildkite.com:organization_id

Kunci ini memverifikasi ID organisasi Buildkite tempat pekerjaan berjalan. ID organisasi dihasilkan oleh Buildkite dan tidak dapat diubah.

pipeline_slug

Bekerja dengan operator string.

Contoh agent.buildkite.com:pipeline_slug

Kunci ini mengidentifikasi pipeline tempat pekerjaan berjalan. Gunakan ini untuk membatasi akses ke pipeline Buildkite tertentu.

_id pipa

Bekerja dengan operator string.

Contoh agent.buildkite.com:pipeline_id

Kunci ini memverifikasi ID pipeline tempat pekerjaan berjalan. ID pipa dihasilkan oleh Buildkite dan tidak dapat diubah.

nama cluster

Bekerja dengan operator string.

Contoh agent.buildkite.com:cluster_name

Kunci ini mengidentifikasi cluster tempat pekerjaan berjalan. Gunakan ini untuk membatasi akses ke cluster Buildkite tertentu.

Cluster_id

Bekerja dengan operator string.

Contoh agent.buildkite.com:cluster_id

Kunci ini memverifikasi ID cluster tempat pekerjaan berjalan. ID cluster dihasilkan oleh Buildkite dan tidak dapat diubah.

bangun_cabang

Bekerja dengan operator string.

Contoh agent.buildkite.com:build_branch

Kunci ini mengidentifikasi cabang git yang memicu build. Gunakan ini untuk membatasi akses berdasarkan cabang tertentu, seperti hanya mengizinkan main atau production cabang.

Contoh kebijakan kepercayaan berikut menggunakan klaim khusus di token Buildkite OIDC untuk membatasi akses ke peran.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::123456789012:oidc-provider/agent.buildkite.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "agent.buildkite.com:aud": "sts.amazonaws.com", "agent.buildkite.com:organization_slug": "acme-inc", "agent.buildkite.com:pipeline_slug": "super-duper-app", "agent.buildkite.com:build_branch": "main" } } } ] }

Informasi lebih lanjut tentang Federasi OIDC

Kunci yang tersedia untuk SAML-based AWS STS federasi

Jika Anda bekerja dengan SAML-based federasi menggunakan AWS Security Token Service (AWS STS), Anda dapat menyertakan kunci kondisi tambahan dalam kebijakan.

Kebijakan kepercayaan peran SAML

Dalam kebijakan kepercayaan dari suatu peran, Anda dapat menyertakan kunci-kunci berikut yang membantu Anda menentukan apakah pemanggil diperbolehkan untuk memegang peran tersebut. Kecuali untuk saml:doc, semua nilai berasal dari pernyataan SAML. Semua item dalam daftar tersedia di editor visual konsol IAM saat Anda membuat atau mengedit kebijakan dengan kondisi. Item ditandai denganx [] dapat memiliki nilai yang merupakan daftar jenis yang ditentukan.

sml:aud

Bekerja dengan operator string.

URL titik akhir tempat pernyataan SAML disajikan. Nilai untuk kunci ini berasal dari kolom SAML Recipient dalam pernyataan, bukan kolom Audience.

saml:commonName[]

Bekerja dengan operator string.

Ini adalah atribut commonName.

saml:cn[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:doc

Bekerja dengan operator string.

Ini mewakili prinsipal yang digunakan untuk menerima peran tersebut. Formatnya adalahaccount-ID/provider-friendly-name, seperti123456789012/SAMLProviderName. Nilai account-ID merujuk pada akun yang memiliki penyedia SAML.

saml:edupersonaffiliation[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonassurance[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonentitlement[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonnickname[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonorgdn

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonorgunitdn[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonprimaryaffiliation

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonprimaryorgunitdn

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonprincipalname

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersonscopedaffiliation[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:edupersontargetedid[]

Bekerja dengan operator string.

Ini adalah atribut eduPerson.

saml:eduorghomepageuri[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:eduorgidentityauthnpolicyuri[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:eduorglegalname[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:eduorgsuperioruri[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:eduorgwhitepagesuri[]

Bekerja dengan operator string.

Ini adalah atribut eduOrg.

saml:givenName[]

Bekerja dengan operator string.

Ini adalah atribut givenName.

sml:iss

Bekerja dengan operator string.

Penerbit yang diwakili oleh URN.

saml:mail[]

Bekerja dengan operator string.

Ini adalah atribut mail.

saml:name[]

Bekerja dengan operator string.

Ini adalah atribut name.

saml:namequalifier

Bekerja dengan operator string.

Nilai hash berdasarkan nama yang penyedia SAML yang dikenal. Nilai adalah rangkaian dari nilai-nilai berikut, diurutkan dan dipisahkan oleh karakter '/':

  1. Nilai tanggapan Issuer (saml:iss)

  2. ID akun AWS

  3. Nama yang dikenal (bagian terakhir ARN) penyedia SAML di IAM

Gabungan ID akun dan nama ramah penyedia SAML tersedia untuk kebijakan IAM sebagai kuncinya. saml:doc Untuk informasi selengkapnya, lihat Mengidentifikasi pengguna secara unik di SAML-based federasi.

saml:organizationStatus[]

Bekerja dengan operator string.

Ini adalah atribut organizationStatus.

saml:primaryGroupSID[]

Bekerja dengan operator string.

Ini adalah atribut primaryGroupSID.

saml:sub

Bekerja dengan operator string.

Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna individu dalam suatu organisasi (misalnya, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Bekerja dengan operator string.

Kunci ini dapat memiliki nilai persistent, transient, atau terdiri atas URL Format penuh dari elemen Subject dan NameID yang digunakan dalam pernyataan SAML Anda. Nilai dari persistent menunjukkan bahwa nilai dalam saml:sub sama untuk pengguna di antara sesi. Jika nilainya transient, pengguna memiliki nilai saml:sub untuk setiap sesi. Untuk informasi tentang elemen NameID Format atribut, lihat Konfigurasikan pernyataan SAML untuk respons otentikasi.

saml:surname[]

Bekerja dengan operator string.

Ini adalah atribut surnameuid.

saml:uid[]

Bekerja dengan operator string.

Ini adalah atribut uid.

saml:x500 [] UniqueIdentifier

Bekerja dengan operator string.

Ini adalah atribut x500UniqueIdentifier.

Untuk informasi umum tentang atribut eduPerson dan eduOrg, lihat situs web Wiki REFEDS. Untuk daftar atribut eduPerson, lihat Spesifikasi Kelas Objek eduPerson (201602).

Kunci kondisi dengan tipe berupa daftar dapat mencakup beberapa nilai. Untuk membuat kondisi dalam kebijakan untuk nilai-nilai daftar, Anda dapat menggunakan operator kumpulan (ForAllValues, ForAnyValue). Misalnya, untuk mengizinkan pengguna yang berafiliasi dengan "fakultas" atau "staf" (tetapi bukan "mahasiswa"), Anda dapat menggunakan ketentuan seperti berikut:

"Condition": { "ForAllValues:StringLike": { "saml:edupersonaffiliation":[ "faculty", "staff"] } }

Cross-service SAML-based AWS STS kunci konteks federasi

Beberapa kunci kondisi SAML-based federasi dapat digunakan dalam permintaan berikutnya untuk mengotorisasi AWS operasi di layanan dan AssumeRole panggilan lain. Ini adalah kunci kondisi berikut yang dapat digunakan dalam kebijakan kepercayaan peran ketika prinsipal federasi mengambil peran lain, dan dalam kebijakan sumber daya dari AWS layanan lain untuk mengotorisasi akses sumber daya oleh prinsipal federasi. Untuk informasi selengkapnya tentang menggunakan kunci ini, lihat Tentang federasi berbasis SAML 2.0.

Pilih kunci kondisi untuk melihat deskripsi.

catatan

Tidak ada kunci kondisi SAML-based federasi lain yang tersedia untuk digunakan setelah respons otentikasi penyedia identitas eksternal (IdP) awal.

Kunci yang tersedia untuk AWS STS

Anda dapat menggunakan kunci kondisi berikut dalam kebijakan kepercayaan peran IAM untuk peran yang diasumsikan menggunakan operasi AWS Security Token Service (AWS STS).

saml:sub

Bekerja dengan operator string.

Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna individu dalam suatu organisasi (misalnya, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

sts: AWSServiceName

Bekerja dengan operator string.

Gunakan kunci ini untuk menentukan layanan di mana token pembawa dapat digunakan. Saat Anda menggunakan kunci kondisi ini dalam suatu kebijakan, tentukan layanan menggunakan prinsipal layanan. Prinsipal layanan adalah nama layanan yang dapat ditentukan dalam elemen Principal dari suatu kebijakan. Misalnya, codeartifact.amazonaws.com adalah prinsi AWS CodeArtifact pal layanan.

Ketersediaan – Kunci ini tersedia dalam permintaan yang mendapatkan token pembawa. Anda tidak dapat melakukan panggilan langsung AWS STS untuk mendapatkan token pembawa. Saat Anda melakukan beberapa operasi dalam layanan lain, layanan meminta token pembawa atas nama Anda.

Beberapa AWS layanan mengharuskan Anda memiliki izin untuk mendapatkan token pembawa AWS STS layanan sebelum Anda dapat mengakses sumber daya mereka secara terprogram. Misalnya, AWS CodeArtifact mengharuskan prinsipal untuk menggunakan token pembawa untuk melakukan beberapa operasi. Perintah aws codeartifact get-authorization-token mengembalikan token pembawa. Anda kemudian dapat menggunakan token pembawa untuk melakukan AWS CodeArtifact operasi. Untuk informasi selengkapnya tentang token pembawa, lihat Token pembawa layanan.

Anda dapat menggunakan kunci kondisi ini untuk mengizinkan prinsipal mendapatkan token pembawa untuk digunakan dengan layanan tertentu.

sts: DurationSeconds

Bekerja dengan operator numerik.

Gunakan kunci ini untuk menentukan durasi (dalam detik) yang dapat digunakan kepala sekolah saat mendapatkan token AWS AWS STS pembawa atau Token Web JSON dari GetWebIdentityToken API.

Ketersediaan — Kunci ini hadir dalam permintaan yang mendapatkan token pembawa atau Token Web JSON dari GetWebIdentityToken API. Anda tidak dapat melakukan panggilan langsung AWS STS untuk mendapatkan token pembawa. Saat Anda melakukan beberapa operasi dalam layanan lain, layanan meminta token pembawa atas nama Anda. Kuncinya tidak berlaku untuk operasi AWS STS asumsi-peran.

Beberapa AWS layanan mengharuskan Anda memiliki izin untuk mendapatkan token pembawa AWS STS layanan sebelum Anda dapat mengakses sumber daya mereka secara terprogram. Misalnya, AWS CodeArtifact mengharuskan prinsipal untuk menggunakan token pembawa untuk melakukan beberapa operasi. Perintah aws codeartifact get-authorization-token mengembalikan token pembawa. Anda kemudian dapat menggunakan token pembawa untuk melakukan AWS CodeArtifact operasi. Untuk informasi selengkapnya tentang token pembawa, lihat Token pembawa layanan.

sts: IdentityTokenAudience

Bekerja dengan operator string.

Gunakan kunci ini untuk menentukan audiens di mana kepala sekolah IAM dapat meminta Token Web JSON (JWT) menggunakan API. GetWebIdentityToken Jika kunci kondisi ini ada dalam kebijakan IAM, kepala sekolah IAM hanya dapat meminta token untuk audiens yang ditentukan dalam kebijakan. Layanan eksternal memvalidasi klaim audiens (“aud”) di Token Web JSON untuk memastikan token ditujukan untuk mereka.

Ketersediaan — Kunci ini hadir dalam permintaan ke GetWebIdentityToken API yang digunakan untuk mendapatkan Token Web JSON (JWT) untuk otentikasi dengan layanan eksternal.

Saat Anda menggunakan kunci kondisi ini dalam kebijakan, tentukan nilai audiens yang cocok dengan pengenal penerima yang dituju (misalnya,https://api.example.com).

Kebijakan contoh berikut memungkinkan prinsipal meminta token untuk layanan eksternal yang ditentukan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "https://api2.example.com", "https://api1.example.com" ] } } } ] }
sts: SigningAlgorithm

Bekerja dengan operator string.

Gunakan kunci ini untuk menentukan algoritma kriptografi yang digunakan AWS AWS STS untuk menandatangani Token Web JSON (JWT) yang dihasilkan oleh API. GetWebIdentityToken Saat Anda menggunakan kunci kondisi ini dalam kebijakan, tentukan ES384 (ECDSA dengan P-384 kurva dan SHA-384) atau RS256 (RSA dengan). SHA-256

Ketersediaan — Kunci ini hadir dalam permintaan ke GetWebIdentityToken API yang digunakan untuk mendapatkan Token Web JSON (JWT) untuk otentikasi dengan layanan eksternal.

Anda dapat menggunakan kunci kondisi ini untuk memaksakan bahwa prinsipal IAM meminta token menggunakan algoritma penandatanganan yang kompatibel dengan persyaratan keamanan Anda atau layanan eksternal yang Anda integrasikan. ES384 memberikan keamanan dan kinerja yang optimal, sementara RS256 menawarkan kompatibilitas yang lebih luas dengan sistem yang tidak mendukung ECDSA.

Kebijakan contoh berikut mengharuskan prinsipal untuk menggunakan algoritma penandatanganan ES384:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "StringEquals": { "sts:SigningAlgorithm": "ES384" } } } ] }
sts: ExternalId

Bekerja dengan operator string.

Gunakan kunci ini untuk mengharuskan kepala sekolah memberikan pengenal khusus saat mengambil peran IAM.

Ketersediaan — Kunci ini hadir dalam permintaan ketika kepala sekolah menyediakan ID eksternal saat mengambil peran menggunakan AWS API AWS CLI or.

Pengidentifikasi unik yang mungkin diperlukan saat Anda menerima peran dalam akun lain. Jika administrator akun yang memiliki peran tersebut memberi Anda ID eksternal, berikan nilai tersebut di parameter ExternalId. Nilai ini dapat berupa string, seperti frasa sandi atau nomor akun. Fungsi utama dari ID eksternal adalah mengatasi dan mencegah masalah deputi yang membingungkan. Untuk informasi selengkapnya tentang ID eksternal dan masalah deputi yang membingungkan, lihat Akses ke Akun AWS dimiliki oleh pihak ketiga.

Nilai ExternalId harus memiliki minimal 2 karakter dan maksimal 1.224 karakter. Nilai harus berupa alfanumerik tanpa spasi. Alfanumerik dapat mencakup simbol berikut: plus (+), sama (=), koma (,), titik (.), di (@), titik dua (:), garis miring (/), dan tanda hubung (-).

sts:RequestContext/kunci konteks

Bekerja dengan operator string.

Gunakan kunci ini untuk membandingkan pasangan kunci-nilai konteks sesi yang disematkan dalam pernyataan konteks yang ditandatangani penerbit token tepercaya yang diteruskan dalam permintaan dengan nilai kunci konteks yang ditentukan dalam kebijakan kepercayaan peran.

Ketersediaan — Kunci ini hadir dalam permintaan ketika pernyataan konteks disediakan dalam parameter ProvidedContexts permintaan saat mengambil peran menggunakan operasi AWS STS AssumeRole API.

Kunci konteks ini diformat sebagai "sts:RequestContext/context-key":"context-value" where context-key dan context-value merupakan pasangan kunci-nilai konteks. Ketika beberapa kunci konteks disematkan dalam pernyataan konteks yang ditandatangani yang diteruskan dalam permintaan, ada satu kunci konteks untuk setiap pasangan kunci-nilai. Anda harus memberikan izin untuk sts:SetContext tindakan dalam kebijakan kepercayaan peran untuk mengizinkan prinsipal menyetel kunci konteks dalam token sesi yang dihasilkan. Untuk mempelajari lebih lanjut tentang kunci konteks Pusat Identitas IAM yang didukung yang dapat digunakan dengan kunci ini, lihat kunci AWS STS kondisi untuk Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.

Anda dapat menggunakan kunci ini dalam kebijakan kepercayaan peran untuk menerapkan kontrol akses berbutir halus berdasarkan pengguna atau atributnya saat mereka mengambil peran. Setelah peran diasumsikan, aktivitas muncul di AWS CloudTrail log di dalam AdditionalEventData atribut, berisi pasangan kunci-nilai konteks sesi yang ditetapkan oleh penyedia konteks dalam permintaan peran asumsi. Ini memudahkan administrator membedakan di antara sesi peran saat peran digunakan oleh prinsipal yang berbeda. Pasangan kunci-nilai diatur oleh penyedia konteks yang ditentukan, bukan oleh AWS CloudTrail atau. AWS STS Ini memberikan kontrol penyedia konteks atas konteks apa yang disertakan dalam CloudTrail log dan informasi sesi.

sts: RequestContextProviders

Bekerja IT Operator ARN .

Gunakan kunci ini untuk membandingkan penyedia konteks ARN dalam permintaan dengan penyedia konteks ARN yang ditentukan dalam kebijakan kepercayaan peran.

Ketersediaan — Kunci ini hadir dalam permintaan ketika pernyataan konteks disediakan dalam parameter ProvidedContexts permintaan saat mengambil peran menggunakan operasi AWS STS AssumeRole API.

Contoh kondisi berikut memeriksa apakah penyedia konteks ARN yang diteruskan dalam permintaan cocok dengan ARN yang ditentukan dalam kondisi kebijakan kepercayaan peran. Sebaiknya tambahkan pemeriksaan nol dengan ForAllValues untuk mencegah kunci konteks yang hilang atau kunci konteks dengan nilai kosong dievaluasi menjadi true. Lihat perinciannya di Operator ketentuan memeriksa keberadaan kunci kondisi.

JSON
{ "Version":"2012-10-17", "Statement": { "Action": "sts:SetContext", "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": [ "arn:aws:iam::aws:contextProvider/IdentityCenter" ] }, "Null": { "sts:RequestContextProviders": "false" } } } }
sts: RoleAuthorizedByIdp

Bekerja dengan operatorBoolean.

Gunakan kunci ini untuk memverifikasi bahwa penyedia identitas (IdP) secara eksplisit mengizinkan peran yang diminta melalui https://aws.amazon.com/roles klaim di token OIDC. Klaim peran berisi ARN peran IAM yang diizinkan untuk diasumsikan oleh token. AWS STS mendukung dua format untuk nilai klaim:

Array JSON (disarankan):

"https://aws.amazon.com/roles": [ "arn:aws:iam::111122223333:role/RoleA", "arn:aws:iam::111122223333:role/RoleB" ]

Semicolon-delimited string:

"https://aws.amazon.com/roles": "arn:aws:iam::111122223333:role/RoleA;arn:aws:iam::111122223333:role/RoleB"

Ketersediaan — Kunci ini hadir dalam permintaan yang menggunakan AssumeRoleWithWebIdentity operasi. Nilainya adalah true ketika token menyertakan https://aws.amazon.com/roles klaim dan peran ARN yang diminta cocok dengan nilai dalam klaim. Nilainya adalah false ketika token tidak menyertakan klaim. Karena kunci selalu ada dalam AssumeRoleWithWebIdentity permintaan, gunakan operator Bool kondisi daripadaBoolIfExists.

Ketika token menyertakan klaim tetapi peran ARN yang diminta tidak cocok dengan nilai dalam klaim, AssumeRoleWithWebIdentity panggilan mengembalikan InvalidIdentityToken kesalahan.

Anda dapat menggunakan kunci kondisi ini dalam kebijakan kepercayaan peran, kebijakan kontrol sumber daya (RCP), dan kebijakan titik akhir VPC untuk mewajibkan bahwa IdP mengotorisasi peran sebelum dapat diasumsikan.

Kebijakan kepercayaan peran berikut AssumeRoleWithWebIdentity hanya mengizinkan jika IdP mengizinkan peran yang diminta dalam token.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "my-app-id" }, "Bool": { "sts:RoleAuthorizedByIdp": "true" } } } ] }
sts: RoleSessionName

Bekerja dengan operator string.

Gunakan kunci ini untuk membandingkan nama sesi yang ditentukan oleh prinsipal saat mengambil peran dengan nilai yang ditentukan dalam kebijakan.

Ketersediaan — Kunci ini hadir dalam permintaan ketika prinsipal mengambil peran menggunakan Konsol Manajemen AWS, perintah CLI asumme-role apa pun, atau operasi API apa pun AWS STS AssumeRole.

Anda dapat menggunakan kunci ini dalam kebijakan kepercayaan peran untuk mewajibkan pengguna Anda memberikan nama sesi tertentu saat mereka mengambil peran. Misalnya, Anda dapat meminta pengguna IAM untuk menentukan nama pengguna mereka sendiri sebagai nama sesi mereka. Setelah pengguna IAM mengambil peran, aktivitas muncul di AWS CloudTrail log dengan nama sesi yang cocok dengan nama pengguna mereka. Ini memudahkan administrator membedakan di antara sesi peran saat peran digunakan oleh prinsipal yang berbeda.

Kebijakan kepercayaan peran berikut mengharuskan pengguna IAM di akun 111122223333 memberikan nama pengguna IAM mereka sebagai nama sesi saat mereka mengambil peran tersebut. Persyaratan ini diberlakukan menggunakan aws:username variabel kondisi di dalam kunci kondisi. Pernyataan memungkinkan pengguna IAM untuk mengasumsikan peran yang diberlakukan pada kebijakan tersebut. Kebijakan ini tidak mengizinkan siapa pun yang menggunakan kredensial sementara untuk mengambil peran tersebut karena variabel username hanya tersedia untuk pengguna IAM.

penting

Anda dapat menggunakan kunci kondisi bernilai tunggal sebagai variabel. Anda tidak dapat menggunakan kunci kondisi multivalue sebagai variabel.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "prefix-${aws:username}"} } } ] }

Ketika administrator melihat AWS CloudTrail log untuk tindakan, mereka dapat membandingkan nama sesi dengan nama pengguna di akun mereka. Dalam contoh berikut, pengguna bernama matjac melakukan operasi menggunakan peran bernama MateoRole. Administrator selanjutnya dapat menghubungi Mateo Jackson, yang memiliki pengguna bernama matjac.

"assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac", "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac" }

Jika Anda mengizinkan akses lintas akun menggunakan peran, maka pengguna di satu akun dapat mengambil peran di akun lain. ARN dari pengguna peran yang diasumsikan yang tercantum dalam CloudTrail termasuk akun jika peran tersebut ada. Ini tidak termasuk akun pengguna yang mengambil peran tersebut. Pengguna hanya bersifat unik di dalam suatu akun. Oleh karena itu, sebaiknya gunakan metode ini untuk memeriksa CloudTrail log hanya untuk peran yang diasumsikan oleh pengguna di akun yang Anda kelola. Pengguna Anda mungkin menggunakan nama pengguna yang sama dalam beberapa akun.

sts: SourceIdentity

Bekerja dengan operator string.

Gunakan kunci ini untuk membandingkan identitas sumber yang ditentukan oleh prinsipal saat mengambil peran dengan nilai yang ditentukan dalam kebijakan.

Ketersediaan — Kunci ini hadir dalam permintaan ketika kepala sekolah menyediakan identitas sumber saat mengambil peran menggunakan perintah asumsi- AWS STS role CLI, atau AWS STS AssumeRole operasi API.

Anda dapat menggunakan kunci ini dalam kebijakan kepercayaan peran untuk mewajibkan pengguna Anda menetapkan identitas sumber tertentu saat mereka mengambil peran. Misalnya, Anda dapat meminta tenaga kerja Anda atau identitas gabungan untuk menentukan nilai identitas sumber. Anda dapat mengonfigurasi penyedia identitas Anda (IdP) untuk menggunakan salah satu atribut yang terkait dengan pengguna Anda, seperti nama pengguna atau email sebagai identitas sumber. IdP kemudian meneruskan identitas sumber sebagai atribut dalam pernyataan atau klaim yang dikirimkannya. AWS Nilai atribut identitas sumber mengidentifikasi pengguna atau aplikasi yang mengambil peran.

Setelah pengguna mengambil peran, aktivitas muncul di log AWS CloudTrail dengan nilai identitas sumber yang ditetapkan. Hal ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran AWS. Anda harus memberikan izin untuk tindakan sts:SetSourceIdentity untuk mengizinkan identitas menetapkan identitas sumber.

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

Anda dapat menggunakan kunci kondisi aws:SourceIdentity global untuk mengontrol lebih lanjut akses ke AWS sumber daya berdasarkan nilai identitas sumber dalam permintaan berikutnya.

Kebijakan kepercayaan peran berikut memungkinkan pengguna IAM AdminUser untuk mengambil peran dalam akun111122223333. Ini juga memberikan izin ke AdminUser untuk mengatur identitas sumber, selama identitas sumber yang ditetapkan adalah DiegoRamirez.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAdminUserAssumeRole", "Effect": "Allow", "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"} } } ] }

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

sts: TaskPolicyArn

Bekerja IT Operator ARN .

Gunakan kunci ini untuk membandingkan kebijakan ARN dalam AssumeRoot permintaan sts: dengan kebijakan ARN yang ditentukan dalam kebijakan.

Ketersediaan — Kunci ini hadir dalam permintaan saat Anda membuat permintaan menggunakan sts: AssumeRoot.

Administrator dapat menggunakan kunci kondisi ini dalam kebijakan IAM untuk membatasi peran atau pengguna tertentu dalam akun manajemen atau akun administrator yang didelegasikan agar tidak melakukan tindakan tertentu saat mengasumsikan kredentif root. Untuk informasi selengkapnya, lihat Melakukan tugas istimewa pada AWS Organizations akun anggota.

sts: TransitiveTagKeys

Bekerja dengan operator string.

Gunakan kunci ini untuk membandingkan kunci tag sesi transitif dalam permintaan dengan yang ditentukan dalam kebijakan.

Ketersediaan – Kunci ini tersedia dalam permintaan saat Anda mengajukan permintaan menggunakan kredensial keamanan sementara. Ini termasuk kredensial yang dibuat menggunakan operasi asumsi peran, atau operasi GetFederationToken.

Saat Anda menggunakan kredensial sesi untuk membuat permintaan berikutnya, konteks permintaan mencakup kunci konteks aws:PrincipalTag. Kunci ini mencakup daftar tanda sesi, tanda sesi transitif, dan tanda peran. Tanda sesi transitif adalah tanda yang tetap ada di semua sesi berikutnya saat Anda menggunakan kredensial sesi untuk menjalankan peran lain. Mengasumsikan satu peran dari peran lain disebut rantai peran.

Anda dapat menggunakan kunci kondisi ini dalam kebijakan untuk mewajibkan pengaturan tanda sesi tertentu sebagai transitif saat mengambil peran atau menggabungkan pengguna.