Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IAMdan kunci konteks AWS STS kondisi
Anda dapat menggunakan Condition
elemen dalam JSON kebijakan 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. Ini memberi Anda kontrol terperinci atas kapan pernyataan JSON kebijakan Anda cocok atau tidak cocok dengan permintaan yang masuk. Untuk informasi tentang cara menggunakan Condition
elemen dalam JSON kebijakan, lihatIAMJSONelemen kebijakan: Condition.
Topik ini menjelaskan kunci yang ditentukan dan disediakan oleh IAM layanan (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.
Topik
Kunci yang tersedia untuk IAM
Anda dapat menggunakan kunci kondisi berikut dalam kebijakan yang mengontrol akses ke IAM sumber daya:
- saya: AssociatedResourceArn
-
Bekerja dengan ARNoperator.
Menentukan ARN sumber daya yang peran ini akan dikaitkan di layanan tujuan. Sumber daya biasanya dimiliki oleh layanan yang perannya diteruskan oleh prinsipal. Terkadang, sumber daya mungkin dimiliki oleh layanan ketiga. Misalnya, Anda dapat meneruskan peran ke Amazon EC2 Auto Scaling yang mereka gunakan pada instans AmazonEC2. Dalam hal ini, kondisinya akan cocok dengan EC2 instance Amazon. ARN
Kunci kondisi ini hanya berlaku untuk PassRoletindakan dalam kebijakan. Kondisi ini tidak dapat digunakan untuk membatasi tindakan lainnya.
penting
Ketika menggunakan
iam:AssociatedResourceArn
kondisi dalam kebijakan untuk membatasi PassRoletindakan, pertimbangan khusus berlaku jika kebijakan dimaksudkan untuk menentukan akses untuk tindakan tersebut AddRoleToInstanceProfile. Dalam hal ini, Anda tidak dapat menentukan Region atau ID instance dalam EC2 instanceARN. Nilai ARN haruslaharn:aws:ec2:*:CallerAccountId:instance/*
. Menggunakan ARN nilai lain dapat menyebabkan hasil evaluasi yang tidak terduga.Gunakan kunci kondisi ini dalam kebijakan berbasis identitas untuk mengizinkan entitas melewati peran, tetapi hanya jika peran tersebut dikaitkan dengan sumber daya yang ditentukan. Misalnya, Anda dapat mengizinkan IAM pengguna atau peran untuk meneruskan peran apa pun ke EC2 layanan Amazon untuk digunakan dengan instance di Akun AWS. IAMPengguna atau peran 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.
- saya: AWSServiceName
-
Bekerja dengan operator string.
Menentukan AWS layanan yang peran ini dilampirkan.
Dalam contoh ini, Anda mengizinkan entitas untuk membuat peran terkait layanan jika nama layanan adalah access-analyzer.amazonaws.com.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "access-analyzer.amazonaws.com" } } }] }
- iam: FIDO -sertifikasi
-
Bekerja dengan operator string.
Memeriksa tingkat FIDO sertifikasi MFA perangkat pada saat pendaftaran kunci FIDO keamanan. Sertifikasi perangkat diambil dari FIDOAlliance Metadata Service
(). MDS Jika status sertifikasi atau tingkat kunci FIDO keamanan 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.
{ "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" } } } ] }
- iam: FIDO - FIPS -140-2-sertifikasi
-
Bekerja dengan operator string.
Memeriksa MFA perangkat FIPS -140-2 tingkat sertifikasi validasi pada saat pendaftaran kunci keamanan. FIDO Sertifikasi perangkat diambil dari FIDOAlliance Metadata Service
(). MDS Jika status sertifikasi atau tingkat kunci FIDO keamanan 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.
{ "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" } } } ] }
- iam: FIDO - FIPS -140-3-sertifikasi
-
Bekerja dengan operator string.
Memeriksa MFA perangkat FIPS -140-3 tingkat sertifikasi validasi pada saat pendaftaran kunci keamanan. FIDO Sertifikasi perangkat diambil dari FIDOAlliance Metadata Service
(). MDS Jika status sertifikasi atau tingkat kunci FIDO keamanan 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.
{ "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" } } } ] }
- saya: RegisterSecurityKey
-
Bekerja dengan operator string.
Memeriksa status pemberdayaan MFA perangkat 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.
{ "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" } } } ] }
- saya: OrganizationsPolicyId
-
Bekerja dengan operator string.
Memeriksa apakah kebijakan dengan AWS Organizations ID yang ditentukan cocok dengan kebijakan yang digunakan dalam permintaan. Untuk melihat contoh IAM kebijakan yang menggunakan kunci kondisi ini, lihatIAM: Melihat informasi layanan yang terakhir diakses untuk kebijakan Organizations.
- saya: PassedToService
-
Bekerja dengan operator string.
Menentukan prinsipal layanan untuk peran yang dapat diteruskan. Kunci kondisi ini hanya berlaku untuk PassRoletindakan 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 dipercaya 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 menyebutkancloudwatch.amazonaws.com
dalam elemenPrincipal
. Untuk melihat kebijakan yang memungkinkan pengguna meneruskan peran CloudWatch, lihatIAM: Lulus IAM peran ke AWS layanan tertentu.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 AmazonEC2, operasi akan gagal. Kegagalan terjadi karena pengguna tidak memiliki izin untuk meneruskan peran ke AmazonEC2.
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.
- saya: PermissionsBoundary
-
Bekerja dengan ARNoperator.
Memeriksa apakah kebijakan yang ditentukan dilampirkan sebagai batas izin pada sumber daya utama. IAM Untuk informasi selengkapnya, silakan lihat Batas izin untuk entitas IAM
- IAM: Kebijakan ARN
-
Bekerja dengan ARNoperator.
Memeriksa Amazon Resource Name (ARN) dari kebijakan terkelola dalam permintaan yang melibatkan kebijakan terkelola. Untuk informasi selengkapnya, lihat Mengendalikan akses ke kebijakan.
- saya:/ResourceTag
key-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
IAMdan AWS STS mendukung kunci
iam:ResourceTag
IAM kondisi dan kunci kondisiaws:ResourceTag
global.Anda dapat menambahkan atribut kustom ke IAM sumber daya dalam bentuk pasangan kunci-nilai. Untuk informasi selengkapnya tentang tag untuk IAM sumber daya, lihatTag untuk AWS Identity and Access Management sumber daya. Anda dapat menggunakan
ResourceTag
untuk mengontrol akses ke AWS sumber daya, termasuk IAM sumber daya. 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, gantiitalicized placeholder text
dalam contoh kebijakan dengan informasi Anda sendiri. Lalu, ikuti petunjuk di buat kebijakan atau ubah kebijakan.{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringEquals": {"iam:ResourceTag/
status
": "terminated
"}} }] }
Kunci yang tersedia untuk AWS OIDC federasi
Anda dapat menggunakan OIDC federasi untuk memberikan kredensi keamanan sementara kepada pengguna yang telah diautentikasi melalui penyedia identitas kompatibel OpenID Connect (IDP) ke penyedia identitas IAM OpenID Connect () di akun Anda. OIDC AWS Contoh penyedia tersebut termasuk GitHub, Amazon Cognito, Login with Amazon, dan Google. Token identitas dan token akses dari IDP Anda sendiri dapat digunakan, serta token akun layanan yang diberikan kepada beban kerja Amazon Elastic Kubernetes Service.
Anda dapat menggunakan kunci konteks AWS OIDC kondisi untuk menulis kebijakan yang membatasi akses pengguna 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 OIDC penyedia (token.actions.githubusercontent.com
) diikuti dengan klaim (:aud
):token.actions.githubusercontent.com:aud
.
Beberapa kunci kondisi OIDC federasi dapat digunakan dalam sesi peran untuk mengotorisasi akses sumber daya. Jika nilainya adalah Ya di kolom Tersedia dalam sesi, Anda dapat menggunakan kunci kondisi ini dalam kebijakan untuk menentukan pengguna yang diizinkan mengakses AWS layanan lain. Jika klaim tidak tersedia dalam sesi, kunci konteks OIDC kondisi hanya dapat digunakan dalam kebijakan kepercayaan peran untuk AssumeRoleWithWebIdentityotentikasi awal.
Pilih iDP Anda untuk melihat bagaimana klaim dari peta IDP Anda ke IAM mengkondisikan kunci konteks. AWS
Informasi lebih lanjut tentang OIDC federasi
Kunci yang tersedia untuk AWS STS federasi SAML berbasis
Jika Anda bekerja dengan federasi SAML berbasis menggunakan AWS Security Token Service (AWS STS), Anda dapat menyertakan kunci kondisi tambahan dalam kebijakan.
SAMLkebijakan kepercayaan peran
Dalam kebijakan kepercayaan dari suatu peran, Anda dapat menyertakan kunci-kunci berikut yang membantu Anda menentukan apakah pemanggil diperbolehkan untuk memegang peran tersebut. Kecualisaml:doc
, semua nilai berasal dari SAML pernyataan. Semua item dalam daftar tersedia di editor visual IAM konsol saat Anda membuat atau mengedit kebijakan dengan kondisi. Item yang ditandai dengan []
dapat memiliki nilai yang merupakan daftar tipe yang ditentukan.
- sml:aud
-
Bekerja dengan operator string.
Titik akhir URL di mana SAML pernyataan disajikan. Nilai untuk kunci ini berasal dari kolom
SAML Recipient
dalam pernyataan, bukan kolomAudience
. - sama: 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 adalah
account-ID
/provider-friendly-name
, seperti123456789012/SAMLProviderName
. Nilai Account-ID mengacu 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
. - sama: givenName []
-
Bekerja dengan operator string.
Ini adalah atribut
givenName
. - sml:iss
-
Bekerja dengan operator string.
Penerbit, yang diwakili oleh aURN.
- 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 ramah SAML penyedia. Nilai adalah rangkaian dari nilai-nilai berikut, diurutkan dan dipisahkan oleh karakter '/':
-
Nilai tanggapan
Issuer
(saml:iss
) -
ID akun
AWS
-
Nama ramah (bagian terakhir dariARN) SAML penyedia di IAM
Gabungan ID akun dan nama ramah SAML penyedia tersedia untuk IAM kebijakan sebagai kuncinya.
saml:doc
Untuk informasi selengkapnya, lihat Mengidentifikasi pengguna secara unik di SAML federasi berbasis. -
- sama: organizationStatus []
-
Bekerja dengan operator string.
Ini adalah atribut
organizationStatus
. - sama: primaryGroup SID []
-
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 dari penuhFormat
URI dariNameID
elemenSubject
dan yang digunakan dalam SAML pernyataan Anda. Nilai daripersistent
menunjukkan bahwa nilai dalamsaml:sub
sama untuk pengguna di antara sesi. Jika nilainyatransient
, pengguna memiliki nilaisaml:sub
untuk setiap sesi. Untuk informasi tentang elemenNameID
Format
atribut, lihat Konfigurasikan SAML pernyataan 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 eduPerson
dan eduOrg
atribut, lihat situs web REFEDS WikieduPerson
atribut, lihat Spesifikasi Kelas eduPerson Objek (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"] } }
Kunci konteks AWS STS federasi SAML berbasis lintas layanan
Beberapa kunci kondisi federasi SAML berbasis 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 kepala sekolah 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 penggunaan kunci ini, lihat Tentang federasi SAML berbasis 2.0.
Pilih tombol kondisi untuk melihat deskripsi.
catatan
Tidak ada kunci kondisi federasi SAML berbasis 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 IAM peran 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 kepala AWS CodeArtifact 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 prinsipal saat mendapatkan token AWS STS pembawa.
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. Kuncinya tidak tersedia untuk operasi assume-role AWS STS .
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: ExternalId
-
Bekerja dengan operator string.
Gunakan kunci ini untuk mengharuskan prinsipal memberikan pengenal tertentu saat mengambil peranIAM.
Ketersediaan — Kunci ini hadir dalam permintaan ketika prinsipal memberikan ID eksternal sambil mengambil peran menggunakan AWS CLI or AWS API.
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 yang 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 nilai kunci 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 sambil mengasumsikan peran menggunakan operasi. AWS STS AssumeRoleAPIKunci konteks ini diformat sebagai
"sts:RequestContext/context-key":"context-value"
wherecontext-key
dancontext-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 untuksts:SetContext
tindakan dalam kebijakan kepercayaan peran untuk mengizinkan prinsipal menyetel kunci konteks dalam token sesi yang dihasilkan. Untuk mempelajari selengkapnya tentang kunci konteks Pusat IAM Identitas yang didukung yang dapat digunakan dengan kunci ini, lihat tombol AWS STS kondisi untuk Pusat IAM Identitas 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 akan muncul di AWS CloudTrail log dalam
AdditionalEventData
atribut, yang berisi pasangan nilai kunci konteks sesi yang ditetapkan oleh penyedia konteks dalam permintaan peran asumsikan. Ini memudahkan administrator membedakan di antara sesi peran saat peran digunakan oleh prinsipal yang berbeda. Pasangan kunci-nilai ditetapkan oleh penyedia konteks yang ditentukan, bukan oleh AWS CloudTrail atau. AWS STS Ini memberi penyedia konteks kontrol atas konteks apa yang disertakan dalam CloudTrail log dan informasi sesi. - sts: RequestContextProviders
-
Bekerja dengan ARNoperator.
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 sambil mengasumsikan peran menggunakan operasi. AWS STS AssumeRoleAPIContoh kondisi berikut memeriksa apakah penyedia konteks yang ARN diteruskan dalam permintaan cocok dengan yang ARN ditentukan dalam kondisi kebijakan kepercayaan peran.
"Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": [ "arn:aws:iam::aws:contextProvider/IdentityCenter" ] } }
- 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 mengasumsikan peran menggunakan, CLI perintah peran asumsi apa pun AWS Management Console, atau operasi apa pun. AWS STS
AssumeRole
APIAnda dapat menggunakan kunci ini dalam kebijakan kepercayaan peran untuk mewajibkan pengguna Anda memberikan nama sesi tertentu saat mereka mengambil peran. Misalnya, Anda dapat meminta IAM pengguna menentukan nama pengguna mereka sendiri sebagai nama sesi mereka. Setelah IAM pengguna 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 IAM pengguna di akun
111122223333
memberikan nama IAM pengguna mereka sebagai nama sesi saat mereka mengambil peran. Persyaratan ini diberlakukan menggunakanaws:username
variabel kondisi di dalam kunci kondisi. Kebijakan ini memungkinkan IAM pengguna untuk mengambil peran yang melekat pada kebijakan tersebut. Kebijakan ini tidak mengizinkan siapa pun yang menggunakan kredensyal sementara untuk mengambil peran karenausername
variabel hanya IAM ada untuk pengguna.penting
Anda dapat menggunakan kunci kondisi bernilai tunggal apa pun sebagai variabel. Anda tidak dapat menggunakan kunci kondisi multivalued sebagai variabel.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "${aws:username}"} } } ] }
Saat 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 bernamaMateoRole
. Administrator selanjutnya dapat menghubungi Mateo Jackson, yang memiliki pengguna bernamamatjac
."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. Pengguna ARN peran yang diasumsikan terdaftar CloudTrail termasuk akun tempat peran itu ada. Ini tidak termasuk akun pengguna yang mengambil peran tersebut. Pengguna hanya bersifat unik di dalam suatu akun. Oleh karena itu, kami menyarankan Anda menggunakan 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 prinsipal memberikan identitas sumber sambil mengasumsikan peran menggunakan perintah, atau AWS STS operasi peran CLI apa pun. AWS STS
AssumeRole
APIAnda 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 dikirimkan ke. 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. 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:SourceIdentityglobal untuk mengontrol akses lebih lanjut ke AWS sumber daya berdasarkan nilai identitas sumber dalam permintaan berikutnya.
Kebijakan kepercayaan peran berikut memungkinkan IAM pengguna
AdminUser
untuk mengambil peran dalam akun111122223333
. Ini juga memberikan izin keAdminUser
untuk mengatur identitas sumber, selama identitas sumber yang ditetapkan adalahDiegoRamirez
.{ "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 dengan ARNoperator.
Gunakan kunci ini untuk membandingkan kebijakan ARN dalam AssumeRoot permintaan sts: dengan kebijakan yang ARN ditentukan dalam kebijakan.
Ketersediaan — Kunci ini ada dalam permintaan saat Anda membuat permintaan menggunakan sts: AssumeRoot.
Anda dapat menggunakan kunci kondisi ini dalam kebijakan untuk membatasi tindakan yang dapat dilakukan oleh akun manajemen atau administrator yang didelegasikan selama sesi pengguna root yang memiliki hak istimewa. Untuk informasi selengkapnya, lihat Lakukan tugas istimewa di akun AWS Organizations 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.