

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

# Referensi kebijakan IAM JSON
<a name="reference_policies"></a>

Bagian ini menyajikan sintaks, deskripsi, dan contoh elemen, variabel, dan logika evaluasi kebijakan JSON yang terperinci di IAM. Untuk informasi umum selengkapnya, lihat [Gambaran dari kebijakan JSON](access_policies.md#access_policies-json).

Referensi ini mencakup bagian berikut.
+  [Referensi elemen kebijakan IAM JSON](reference_policies_elements.md) — Pelajari lebih banyak tentang elemen yang dapat Anda gunakan ketika membuat kebijakan. Lihat contoh kebijakan tambahan dan pelajari tentang ketentuan, jenis data yang didukung, dan bagaimana digunakan dalam berbagai layanan. 
+ [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md)Bagian ini menjelaskan AWS permintaan, bagaimana mereka diautentikasi, dan bagaimana AWS menggunakan kebijakan untuk menentukan akses ke sumber daya. 
+ [Tata bahasa kebijakan IAM JSON](reference_policies_grammar.md) — Bagian ini menyajikan tata bahasa formal untuk bahasa yang digunakan untuk membuat kebijakan di IAM.
+ [AWS kebijakan terkelola untuk fungsi pekerjaan](access_policies_job-functions.md)— Bagian ini mencantumkan semua kebijakan AWS terkelola yang secara langsung memetakan ke fungsi pekerjaan umum di industri TI. Gunakan kebijakan ini untuk memberikan izin yang diperlukan untuk melaksanakan tugas yang diharapkan dari seseorang dalam fungsi pekerjaan tertentu. Kebijakan ini mengonsolidasikan izin untuk banyak layanan ke dalam satu kebijakan.
+ [AWS kunci konteks kondisi global](reference_policies_condition-keys.md)— Bagian ini mencakup daftar semua kunci kondisi AWS global yang dapat Anda gunakan untuk membatasi izin dalam kebijakan IAM.
+ [Kunci konteks IAM dan AWS STS kondisi](reference_policies_iam-condition-keys.md)— Bagian ini mencakup daftar semua kunci IAM dan AWS STS kondisi yang dapat Anda gunakan untuk membatasi izin dalam kebijakan IAM.
+ [Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan](reference_policies_actions-resources-contextkeys.html) - Bagian ini menyajikan daftar semua operasi AWS API yang dapat Anda gunakan sebagai izin dalam kebijakan IAM. Ini juga mencakup kunci kondisi khusus layanan yang dapat digunakan untuk lebih menyempurnakan permintaan.

# Referensi elemen kebijakan IAM JSON
<a name="reference_policies_elements"></a>

Dokumen kebijakan JSON terdiri atas elemen-elemen. Elemen-elemen ini tercantum di sini dalam urutan umum Anda menggunakannya dalam kebijakan. Urutan elemen tidak penting—misalnya, elemen `Resource` dapat muncul sebelum elemen `Action`. Anda tidak diwajibkan untuk menentukan elemen `Condition` apa pun dalam kebijakan. Untuk mempelajari selengkapnya tentang struktur dan tujuan umum dokumen kebijakan JSON, lihat [Gambaran dari kebijakan JSON](access_policies.md#access_policies-json).

Beberapa elemen kebijakan JSON saling eksklusif. Ini berarti bahwa Anda tidak dapat membuat kebijakan yang menggunakan keduanya. Misalnya, Anda tidak dapat menggunakan `Action` dan `NotAction` dalam pernyataan kebijakan yang sama. Pasangan lain yang saling eksklusif termasuk `Principal`/`NotPrincipal` dan `Resource`/`NotResource`. 

Detail tentang apa saja yang termasuk ke dalam kebijakan berbeda-beda untuk setiap layanan, tergantung pada tindakan apa yang disediakan layanan, tipe sumber daya apa yang ada di dalamnya, dan sebagainya. Ketika Anda menulis kebijakan untuk layanan tertentu, akan sangat membantu jika Anda melihat contoh kebijakan untuk layanan tersebut. Untuk daftar semua layanan yang mendukung IAM, dan untuk tautan ke dokumentasi dalam layanan tersebut yang membahas IAM dan kebijakan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md).

 Saat Anda membuat atau mengedit kebijakan JSON, IAM dapat melakukan validasi kebijakan untuk membantu Anda membuat kebijakan yang efektif. IAM mengidentifikasi kesalahan sintaks JSON, sementara IAM Access Analyzer menyediakan pemeriksaan kebijakan tambahan dengan rekomendasi untuk membantu Anda menyempurnakan kebijakan Anda lebih lanjut. Untuk mempelajari selengkapnya tentang validasi kebijakan, lihat [Validasi kebijakan IAM](access_policies_policy-validator.md). Untuk mempelajari selengkapnya tentang pemeriksaan kebijakan IAM Access Analyzer dan rekomendasi yang dapat ditindaklanjuti, lihat validasi kebijakan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) Access Analyzer. 

**Topics**
+ [Version](reference_policies_elements_version.md)
+ [Id](reference_policies_elements_id.md)
+ [Statement](reference_policies_elements_statement.md)
+ [Sid](reference_policies_elements_sid.md)
+ [Effect](reference_policies_elements_effect.md)
+ [Principal](reference_policies_elements_principal.md)
+ [NotPrincipal](reference_policies_elements_notprincipal.md)
+ [Action](reference_policies_elements_action.md)
+ [NotAction](reference_policies_elements_notaction.md)
+ [Resource](reference_policies_elements_resource.md)
+ [NotResource](reference_policies_elements_notresource.md)
+ [Condition](reference_policies_elements_condition.md)
+ [Variabel dan tanda](reference_policies_variables.md)
+ [Jenis data yang didukung](reference_policies_elements_datatypes.md)

# Elemen kebijakan IAM JSON: Version
<a name="reference_policies_elements_version"></a>

**Catatan disambiguasi**  
Elemen kebijakan JSON `Version` ini berbeda dari *versi kebijakan*. Elemen kebijakan `Version` digunakan dalam kebijakan dan menentukan versi bahasa kebijakan. Versi kebijakan, di sisi lain, dibuat ketika Anda membuat perubahan pada kebijakan yang dikelola pelanggan di IAM. Perubahan kebijakan tidak mengesampingkan kebijakan yang ada. Sebagai gantinya, IAM membuat versi baru dari kebijakan yang dikelola. Jika Anda mencari informasi tentang dukungan beberapa versi yang tersedia untuk kebijakan terkelola, lihat [Peningkatan versi IAM](access_policies_managed-versioning.md).

Elemen kebijakan `Version` menetapkan aturan sintaksis bahasa yang akan digunakan untuk memproses kebijakan. Untuk menggunakan semua fitur kebijakan yang tersedia, sertakan `Version` elemen berikut **di luar** `Statement` elemen di semua kebijakan Anda.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

IAM mendukung nilai elemen `Version` berikut:
+ `2012-10-17`. Ini adalah versi bahasa kebijakan saat ini, dan Anda harus selalu menyertakan elemen `Version` dan mengaturnya ke `2012-10-17`. Jika tidak, Anda tidak dapat menggunakan fitur seperti [variabel kebijakan](reference_policies_variables.md) yang diperkenalkan dengan versi ini.
+ `2008-10-17`. Ini adalah versi terdahulu dari bahasa kebijakan. Anda mungkin melihat versi ini pada kebijakan lama yang sudah ada. Jangan gunakan versi ini untuk kebijakan baru atau saat Anda memperbarui kebijakan yang sudah ada. Fitur yang lebih baru, seperti variabel kebijakan, tidak akan berfungsi dengan kebijakan Anda. Misalnya, variabel seperti `${aws:username}` tidak diakui sebagai variabel dan diperlakukan sebagai string literal di dalam kebijakan.

# Elemen kebijakan IAM JSON: Id
<a name="reference_policies_elements_id"></a>

Elemen `Id` ini menentukan pengidentifikasi opsional untuk kebijakan. ID digunakan secara berbeda di layanan yang berbeda. ID diperbolehkan dalam kebijakan berbasis sumber daya, tetapi tidak dalam kebijakan berbasis identitas.

Untuk layanan yang memungkinkan Anda mengatur elemen `ID` kami menyarankan Anda menggunakan UUID (GUID) untuk nilai, atau menyertakan UUID sebagai bagian dari ID untuk memastikan keunikan. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "cd3ad3d9-2776-4ef1-a904-4c229d1642ee",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

**catatan**  
Beberapa AWS layanan (misalnya, Amazon SQS atau Amazon SNS) mungkin memerlukan elemen ini dan memiliki persyaratan keunikan untuk itu. Untuk informasi khusus layanan tentang penulisan kebijakan, lihat dokumentasi untuk layanan yang sedang Anda kerjakan.

# Elemen kebijakan IAM JSON: Statement
<a name="reference_policies_elements_statement"></a>

Elemen `Statement` adalah elemen utama kebijakan ini. Elemen ini wajib diisi. Elemen `Statement` dapat berisi satu pernyataan atau serangkaian pernyataan individu. Setiap blok pernyataan individu harus ditutup dengan tanda kurung kurawal \$1 \$1. Untuk beberapa pernyataan, larik harus dilampirkan dalam kurung persegi [ ].

```
"Statement": [{...},{...},{...}]
```

Contoh berikut menunjukkan kebijakan yang berisi susunan tiga pernyataan di dalam satu elemen `Statement` tunggal. (Kebijakan ini memungkinkan Anda mengakses “folder rumah” Anda sendiri di konsol Amazon S3.) Kebijakan ini mencakup variabel `aws:username`, yang diganti selama evaluasi kebijakan dengan nama pengguna dari permintaan. Lihat informasi yang lebih lengkap di [Pengantar](reference_policies_variables.md#policy-vars-intro). 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {"StringLike": {"s3:prefix": [
        "",
        "home/",
        "home/${aws:username}/"
      ]}}
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```

------

# Elemen kebijakan IAM JSON: Sid
<a name="reference_policies_elements_sid"></a>

Anda dapat memberikan `Sid` (ID pernyataan) sebagai pengenal opsional untuk pernyataan kebijakan. Anda dapat menetapkan nilai `Sid` untuk setiap pernyataan dalam rangkaian pernyataan. Anda dapat menggunakan `Sid` nilai sebagai deskripsi untuk pernyataan kebijakan. Dalam layanan yang memungkinkan Anda menentukan `ID` elemen, seperti SQS dan SNS, `Sid` nilainya hanyalah sub-ID dari ID dokumen kebijakan. Di dalam IAM, nilai `Sid` harus unik dalam kebijakan JSON.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExampleStatementID",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    }
  ]
}
```

------

`Sid`Elemen ini mendukung huruf besar ASCII (A-Z), huruf kecil (a-z), dan angka (0-9). 

IAM tidak mengekspos API `Sid` IAM. Anda tidak dapat mengambil pernyataan tertentu berdasarkan ID ini.

**catatan**  
Beberapa AWS layanan (misalnya, Amazon SQS atau Amazon SNS) mungkin memerlukan elemen ini dan memiliki persyaratan keunikan untuk itu. Untuk informasi khusus layanan tentang kebijakan penulisan, lihat dokumentasi untuk layanan tempat Anda bekerja.

# Elemen kebijakan IAM JSON: Effect
<a name="reference_policies_elements_effect"></a>

Elemen `Effect` diperlukan dan menentukan apakah pernyataan tersebut mengakibatkan diizinkan atau ditolak. Nilai yang valid untuk `Effect` adalah `Allow` dan `Deny`. `Effect`Nilainya peka huruf besar/kecil. 

```
"Effect":"Allow"
```

Secara default, akses ke sumber daya ditolak. Untuk mengizinkan akses ke sumber daya, Anda harus mengatur elemen `Effect` ke `Allow`. Untuk menimpa izinkan (misalnya, untuk menimpa izinkan yang berlaku sebaliknya), Anda mengatur elemen `Effect` ke `Deny`. Lihat informasi yang lebih lengkap di [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).

# AWS Elemen kebijakan JSON: Principal
<a name="reference_policies_elements_principal"></a>

Gunakan `Principal` elemen dalam kebijakan JSON berbasis sumber daya untuk menentukan prinsipal yang diizinkan atau ditolak akses ke sumber daya. 

Anda harus menggunakan `Principal` elemen dalam kebijakan berbasis [sumber daya](access_policies_identity-vs-resource.md). Beberapa layanan mendukung kebijakan berbasis sumber daya, termasuk IAM. Jenis kebijakan berbasis sumber daya IAM adalah kebijakan kepercayaan peran. Dalam peran IAM, gunakan `Principal` elemen dalam kebijakan kepercayaan peran untuk menentukan siapa yang dapat mengambil peran tersebut. Untuk akses akun silang, Anda harus menentukan pengidentifikasi 12-digit dari akun tepercaya. Untuk mempelajari apakah prinsipal dalam akun di luar zona kepercayaan (organisasi atau akun terpercaya) memiliki akses untuk mengasumsikan peran Anda, lihat [Apa yang dimaksud dengan Penganalisis Akses IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

**catatan**  
Setelah membuat peran, Anda dapat mengubah akun menjadi “\$1” agar semua orang dapat mengambil peran tersebut. Jika Anda melakukannya, kami sangat menyarankan Anda untuk membatasi siapa yang dapat mengakses peran tersebut melalui cara lain, seperti elemen `Condition` yang membatasi akses ke alamat IP tertentu saja. Jangan biarkan peran Anda dapat diakses semua orang\$1

Contoh sumber daya lain yang mendukung kebijakan berbasis sumber daya termasuk bucket Amazon S3 atau file. AWS KMS key

Anda tidak dapat menggunakan `Principal` elemen dalam kebijakan berbasis identitas. Kebijakan berbasis identitas adalah kebijakan izin yang Anda lampirkan ke identitas IAM (pengguna, grup, atau peran). Dalam kasus tersebut, kepala sekolah secara implisit adalah identitas di mana kebijakan dilampirkan.

**Topics**
+ [Cara menentukan kepala sekolah](#Principal_specifying)
+ [Akun AWS kepala sekolah](#principal-accounts)
+ [Kepala peran IAM](#principal-roles)
+ [Kepala sesi peran](#principal-role-session)
+ [Kepala sekolah federasi OIDC](#principal-federated-web-identity)
+ [Kepala sekolah federasi SALL](#principal-saml)
+ [Prinsip pengguna IAM](#principal-users)
+ [Kepala Pusat Identitas IAM](#principal-identity-users)
+ [AWS STS prinsip pengguna federasi](#sts-session-principals)
+ [AWS prinsip layanan](#principal-services)
+ [AWS prinsip layanan di Wilayah keikutsertaan](#principal-services-in-opt-in-regions)
+ [Semua kepala sekolah](#principal-anonymous)
+ [Informasi selengkapnya](#Principal_more-info)

## Cara menentukan kepala sekolah
<a name="Principal_specifying"></a>

Anda menentukan prinsipal dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal.

Anda dapat menyebutkan salah satu prinsip dasar berikut dalam kebijakan:
+ Akun AWS dan pengguna root
+ Peran IAM
+ Sesi peran 
+ Pengguna IAM:
+ Prinsipal pengguna federasi
+ AWS layanan
+ Semua kepala sekolah

Anda tidak dapat mengidentifikasi grup pengguna sebagai prinsipal dalam kebijakan (seperti kebijakan berbasis sumber daya) karena grup terkait dengan izin, bukan autentikasi, dan prinsipal adalah entitas IAM yang diautentikasi.

Anda dapat menentukan lebih dari satu prinsipal untuk masing-masing tipe prinsipal dalam bagian berikut menggunakan array. Susunan dapat mengambil satu atau beberapa nilai. Bila Anda menentukan lebih dari satu prinsipal dalam elemen, Anda memberikan izin untuk setiap prinsipal. Ini logis `OR` dan bukan logis`AND`, karena Anda mengautentikasi sebagai satu prinsipal pada satu waktu. Jika Anda menyertakan lebih dari satu nilai, gunakan tanda kurung siku (`[`dan`]`) dan comma-delimit setiap entri untuk array. Contoh kebijakan berikut mendefinisikan izin untuk akun 123456789012 atau akun 555555555555.

```
"Principal" : { 
"AWS": [ 
  "123456789012",
  "555555555555" 
  ]
}
```

**catatan**  
Anda tidak dapat menggunakan wildcard untuk mencocokkan sebagian nama pengguna utama atau ARN. 

## Akun AWS kepala sekolah
<a name="principal-accounts"></a>

Anda dapat menentukan Akun AWS pengidentifikasi dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal. Ini mendelegasikan wewenang ke akun. Ketika Anda mengizinkan akses ke akun yang berbeda, administrator di akun tersebut kemudian harus memberikan akses ke identitas (pengguna atau peran IAM) di akun tersebut. Ketika Anda menentukan Akun AWS, Anda dapat menggunakan akun ARN (arn:aws:iam: ::root*account-ID*), atau formulir singkat yang terdiri dari awalan diikuti oleh ID akun. `"AWS":`

Misalnya, memberikan ID akun `123456789012`, Anda dapat menggunakan dari metode berikut untuk menyebutkan akun tersebut di elemen `Principal`:

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

```
"Principal": { "AWS": "123456789012" }
```

Akun ARN dan ID akun yang dipersingkat berperilaku dengan cara yang sama. Keduanya mendelegasikan izin ke akun. Menggunakan akun ARN dalam `Principal` elemen tidak membatasi izin hanya untuk pengguna root akun. 

**catatan**  
Saat Anda menyimpan kebijakan berbasis sumber daya yang menyertakan ID akun yang dipersingkat, layanan dapat mengubahnya menjadi ARN utama. Ini tidak mengubah fungsionalitas kebijakan.

Beberapa AWS layanan mendukung opsi tambahan untuk menentukan pokok akun. Misalnya, Amazon S3 memungkinkan Anda menentukan [ID pengguna canonik](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId) menggunakan format berikut:

```
"Principal": { "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }
```

Anda juga dapat menentukan lebih dari satu Akun AWS, (atau ID pengguna kanonik) sebagai prinsipal menggunakan array. Misalnya, Anda dapat menentukan prinsipal dalam kebijakan bucket menggunakan ketiga metode tersebut.

```
"Principal": { 
  "AWS": [
    "arn:aws:iam::123456789012:root",
    "999999999999"
  ],
  "CanonicalUser": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
}
```

## Kepala peran IAM
<a name="principal-roles"></a>

Anda dapat menentukan prinsip peran IAM ARNs dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal. Peran IAM adalah identitas. Di IAM, identitas adalah sumber daya yang dapat Anda tetapkan izin. Peran mempercayai identitas lain yang diautentikasi untuk mengambil peran itu. Ini termasuk prinsipal di AWS atau pengguna dari penyedia identitas eksternal (iDP). Ketika prinsipal atau identitas mengambil peran, mereka menerima kredensil keamanan sementara dengan izin peran yang diasumsikan. Ketika mereka menggunakan kredensi sesi tersebut untuk melakukan operasi AWS, mereka menjadi kepala *sesi peran*.

Saat Anda menentukan prinsipal peran dalam kebijakan berbasis sumber daya, izin efektif untuk prinsipal dibatasi oleh jenis kebijakan apa pun yang membatasi izin untuk peran tersebut. Ini termasuk kebijakan sesi dan batas izin. Untuk informasi selengkapnya tentang bagaimana izin efektif untuk sesi peran dievaluasi, lihat. [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md)

Untuk menentukan peran ARN dalam `Principal` elemen, gunakan format berikut:

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:role/role-name" }
```

**penting**  
Jika `Principal` elemen Anda dalam kebijakan kepercayaan peran berisi ARN yang menunjuk ke peran IAM tertentu, ARN tersebut akan berubah menjadi ID utama unik peran tersebut saat Anda menyimpan kebijakan tersebut. Hal ini membantu memitigasi risiko seseorang meningkatkan hak istimewa mereka dengan menghapus dan membuat ulang peran. Anda biasanya tidak melihat ID ini di konsol, karena IAM menggunakan transformasi terbalik kembali ke peran ARN saat kebijakan kepercayaan ditampilkan. Namun, jika Anda menghapus peran, maka Anda memutuskan hubungan. Kebijakan tidak lagi berlaku, bahkan jika Anda membuat ulang peran tersebut karena peran baru memiliki ID utama baru yang tidak cocok dengan ID yang disimpan dalam kebijakan kepercayaan. Ketika ini terjadi, ID utama muncul dalam kebijakan berbasis sumber daya karena tidak AWS dapat lagi memetakannya kembali ke ARN yang valid. Hasil akhirnya adalah jika Anda menghapus dan membuat ulang peran yang direferensikan dalam `Principal` elemen kebijakan kepercayaan, Anda harus mengedit peran dalam kebijakan untuk mengganti ID utama dengan ARN yang benar. ARN sekali lagi berubah menjadi ID utama peran saat Anda menyimpan kebijakan. Untuk informasi selengkapnya, lihat [Memahami AWS Penanganan peran IAM yang Dihapus di Kebijakan](https://repost.aws/articles/ARSqFcxvd7R9u-gcFD9nmA5g/understanding-aws-s-handling-of-deleted-iam-roles-in-policies).

Atau, Anda dapat menentukan prinsipal peran sebagai prinsipal dalam kebijakan berbasis sumber daya atau [membuat kebijakan izin luas yang menggunakan](#principal-anonymous) kunci kondisi. `aws:PrincipalArn` Saat Anda menggunakan kunci ini, prinsipal sesi peran diberikan izin berdasarkan ARN peran yang diasumsikan, dan bukan ARN dari sesi yang dihasilkan. Karena AWS tidak mengonversi kunci kondisi ARNs menjadi IDs, izin yang diberikan ke ARN peran tetap ada jika Anda menghapus peran dan kemudian membuat peran baru dengan nama yang sama. Jenis kebijakan berbasis identitas, seperti batas izin atau kebijakan sesi, tidak membatasi izin yang diberikan menggunakan kunci `aws:PrincipalArn` kondisi dengan wildcard (\$1) di `Principal` elemen, kecuali kebijakan berbasis identitas berisi penolakan eksplisit.

## Kepala sesi peran
<a name="principal-role-session"></a>

Anda dapat menentukan sesi peran dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal. Ketika prinsipal atau identitas mengambil peran, mereka menerima kredensil keamanan sementara dengan izin peran yang diasumsikan. Ketika mereka menggunakan kredensi sesi tersebut untuk melakukan operasi AWS, mereka menjadi kepala *sesi peran*.

Format yang Anda gunakan untuk prinsipal sesi peran bergantung pada AWS STS operasi yang digunakan untuk mengambil peran.

**penting**  
AWS merekomendasikan penggunaan [prinsip peran IAM dalam kebijakan Anda alih-alih prinsip](#principal-roles) sesi peran sedapat mungkin. Gunakan `Condition` pernyataan dan kunci kondisi untuk cakupan akses bawah lebih lanjut bila diperlukan.

Untuk menentukan ARN utama sesi peran dalam `Principal` elemen, gunakan format berikut:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:assumed-role/role-name/role-session-name" }
```

Selain itu, administrator dapat merancang proses untuk mengontrol bagaimana sesi peran dikeluarkan. Misalnya, mereka dapat memberikan solusi satu-klik untuk penggunanya yang membuat nama sesi yang dapat diprediksi. Jika administrator melakukan ini, Anda dapat menggunakan prinsip sesi peran dalam kebijakan atau kunci kondisi. Jika tidak, Anda dapat menentukan peran ARN sebagai prinsipal dalam kunci `aws:PrincipalArn` kondisi. Cara Anda menentukan peran sebagai prinsipal dapat mengubah izin efektif untuk sesi yang dihasilkan. Untuk informasi selengkapnya, lihat [Kepala peran IAM](#principal-roles). 

## Kepala sekolah federasi OIDC
<a name="principal-federated-web-identity"></a>

Prinsipal federasi OIDC adalah prinsipal yang digunakan saat memanggil AWS STS `AssumeRoleWithWebIdentity` API dengan token web JSON (JWT) dari IDP yang sesuai dengan OIDC, juga dikenal sebagai Penyedia OpenID (OP), untuk meminta kredensyal sementara. AWS [Prinsipal federasi OIDC dapat mewakili IDP OIDC di AWS akun Anda, atau 4 penyedia identitas bawaan:Login with Amazon,,, dan Amazon Cognito. GoogleFacebook](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html)

Pengguna, beban kerja, atau sistem yang telah mengeluarkan JWT dari IDP OIDC mereka dapat menelepon `AssumeRoleWithWebIdentity` menggunakan JWT untuk meminta kredensyal AWS keamanan sementara untuk peran IAM yang dikonfigurasi untuk mempercayai IDP OIDC yang mengeluarkan JWT. [JWT dapat berupa token id, token akses, atau token JWT yang dikirimkan dengan metode lain selama memenuhi persyaratan yang tercantum oleh. AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html#manage-oidc-provider-prerequisites) Untuk informasi selengkapnya, lihat [Skenario umum](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_federation_common_scenarios.html) dan [Meminta kredensional melalui](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity) penyedia OIDC.

Gunakan tipe utama ini dalam kebijakan kepercayaan peran Anda untuk mengizinkan atau menolak izin untuk menelepon `AssumeRoleWIthWebIdentity` menggunakan IDP OIDC yang ada di Anda Akun AWS, atau salah satu dari empat bawaan. IDPs Untuk menentukan ARN utama federasi OIDC dalam `Principal` elemen kebijakan kepercayaan peran, gunakan salah satu dari empat format berikut untuk OIDC bawaan: IDPs

```
"Principal": { "Federated": "cognito-identity.amazonaws.com" }
```

```
"Principal": { "Federated": "www.amazon.com" }
```

```
"Principal": { "Federated": "graph.facebook.com" }
```

```
"Principal": { "Federated": "accounts.google.com" }
```

Saat menggunakan penyedia OIDC yang Anda tambahkan ke akun, misalnya GitHub, Anda menentukan ARN penyedia dalam kebijakan kepercayaan peran Anda. Konfigurasi ini memungkinkan Anda untuk menulis kebijakan IAM yang mengontrol akses khusus untuk pengguna yang diautentikasi melalui penyedia identitas kustom Anda.

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/full-OIDC-identity-provider-URL" }
```

Misalnya, jika GitHub penyedia identitas web tepercaya, sesi peran OIDC ARN dalam `Principal` elemen kebijakan kepercayaan peran menggunakan format berikut:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:oidc-provider/tokens.actions.githubusercontent.com" }
```

Lihat [Mengonfigurasi OpenID Connect di Amazon](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) Web Services untuk informasi selengkapnya.

Prinsipal federasi OIDC tidak didukung dalam jenis kebijakan selain kebijakan kepercayaan peran.

## Kepala sekolah federasi SALL
<a name="principal-saml"></a>

Prinsipal *federasi SAMP* adalah prinsipal yang digunakan saat memanggil AWS STS `AssumeRoleWithSAML` API untuk meminta AWS kredensyal sementara menggunakan pernyataan SAMP. Anda dapat menggunakan penyedia identitas SAMP (IDP) untuk masuk, dan kemudian mengambil peran IAM menggunakan operasi ini. Mirip dengan`AssumeRoleWithWebIdentity`, `AssumeRoleWithSAML` tidak memerlukan AWS kredensil untuk otentikasi. Sebagai gantinya, pengguna pertama-tama mengautentikasi dengan penyedia identitas SAMP mereka, lalu melakukan panggilan `AssumeRoleWithSAML` API menggunakan pernyataan SAMP mereka, atau diarahkan ke halaman Masuk/SAMP untuk AWS masuk ke halaman. Konsol Manajemen AWS Untuk informasi lebih lanjut tentang prinsipal mana yang dapat mengambil peran menggunakan operasi ini, lihat. [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md)

Gunakan tipe utama ini dalam kebijakan kepercayaan peran Anda untuk mengizinkan atau menolak izin berdasarkan penyedia identitas SAMP tepercaya. Untuk menentukan ARN sesi peran identitas SAMP dalam `Principal` elemen kebijakan kepercayaan peran, gunakan format berikut:

```
"Principal": { "Federated": "arn:aws:iam::AWS-account-ID:saml-provider/provider-name" }
```

## Prinsip pengguna IAM
<a name="principal-users"></a>

Anda dapat menentukan pengguna IAM dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal.

**catatan**  
Dalam sebuah `Principal` elemen, bagian nama pengguna dari [*Amazon Resource Name* (ARN) peka huruf besar/kecil](reference_identifiers.md#identifiers-arns).

```
"Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/user-name" }
```

```
"Principal": {
  "AWS": [
    "arn:aws:iam::AWS-account-ID:user/user-name-1", 
    "arn:aws:iam::AWS-account-ID:user/user-name-2"
  ]
}
```

Saat Anda menentukan pengguna di elemen `Principal`, Anda tidak dapat menggunakan wildcard (`*`) yang berarti “semua pengguna”. Prinsipal harus selalu memberi nama pengguna tertentu. 

**penting**  
Jika `Principal` elemen Anda dalam kebijakan kepercayaan peran berisi ARN yang mengarah ke pengguna IAM tertentu, maka IAM mengubah ARN menjadi ID utama unik pengguna saat Anda menyimpan kebijakan. Hal ini membantu memitigasi risiko seseorang meningkatkan hak istimewa mereka dengan menghapus dan membuat ulang pengguna. Anda biasanya tidak melihat ID ini di konsol, karena juga ada transformasi balik kembali ke ARN pengguna ketika kebijakan kepercayaan ditampilkan. Namun, jika Anda menghapus pengguna, maka Anda memutuskan hubungan. Kebijakan tidak lagi berlaku, bahkan saat Anda membuat ulang pengguna. Itu karena pengguna baru memiliki ID utama baru yang tidak cocok dengan ID yang disimpan dalam kebijakan kepercayaan. Ketika ini terjadi, ID utama muncul dalam kebijakan berbasis sumber daya karena tidak AWS dapat lagi memetakannya kembali ke ARN yang valid. Hasilnya adalah jika Anda menghapus dan membuat ulang pengguna yang direferensikan dalam `Principal` elemen kebijakan kepercayaan, Anda harus mengedit peran untuk mengganti ID utama yang sekarang salah dengan ARN yang benar. IAM sekali lagi mengubah ARN menjadi ID utama pengguna yang baru saat Anda menyimpan kebijakan.

## Kepala Pusat Identitas IAM
<a name="principal-identity-users"></a>

Dalam IAM Identity Center, prinsipal dalam kebijakan berbasis sumber daya harus didefinisikan sebagai prinsipal. Akun AWS Untuk menentukan akses, rujuk peran ARN dari izin yang ditetapkan di blok kondisi. Untuk detailnya, lihat [Mereferensikan set izin dalam kebijakan sumber daya, Amazon EKS, dan AWS KMS](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html) di *Panduan Pengguna Pusat Identitas IAM*.

## AWS STS prinsip pengguna federasi
<a name="sts-session-principals"></a>

Anda dapat menentukan *sesi pengguna federasi* dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal.

**penting**  
AWS merekomendasikan agar Anda membatasi penggunaan sesi pengguna AWS STS federasi. Sebagai gantinya, gunakan [peran IAM](IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

Prinsipal pengguna AWS STS federasi dibuat melalui `GetFederationToken` operasi yang disebut dengan kredensil IAM berumur panjang. Izin pengguna federasi adalah persimpangan dari prinsipal yang dipanggil `GetFederationToken` dan kebijakan sesi diteruskan sebagai parameter ke API. `GetFederationToken`

Di AWS, pengguna IAM atau Pengguna root akun AWS dapat mengautentikasi menggunakan kunci akses jangka panjang. Untuk informasi lebih lanjut tentang kepala sekolah mana yang dapat berfederasi menggunakan operasi ini, lihat. [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md)
+ Pengguna **federasi IAM — Pengguna** IAM bergabung menggunakan `GetFederationToken` operasi yang menghasilkan sesi pengguna federasi untuk pengguna IAM tersebut.
+ **Pengguna root federasi** — Pengguna root federasi menggunakan `GetFederationToken` operasi yang menghasilkan sesi pengguna federasi untuk pengguna root tersebut.

Ketika pengguna IAM atau pengguna root meminta kredensyal sementara dari AWS STS menggunakan operasi ini, mereka memulai sesi pengguna gabungan sementara. ARN sesi ini didasarkan pada identitas asli yang difederasi.

Untuk menentukan ARN sesi pengguna federasi dalam `Principal` elemen, gunakan format berikut:

```
"Principal": { "AWS": "arn:aws:sts::AWS-account-ID:federated-user/user-name" }
```

## AWS prinsip layanan
<a name="principal-services"></a>

Anda dapat menentukan AWS layanan dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal. *Prinsipal layanan* adalah pengidentifikasi untuk suatu layanan. 

Peran IAM yang dapat diasumsikan oleh AWS layanan disebut *[peran layanan](id_roles.md#iam-term-service-role)*. Peran layanan harus menyertakan kebijakan kepercayaan. *Kebijakan kepercayaan adalah kebijakan* berbasis sumber daya yang melekat pada peran yang menentukan prinsip mana yang dapat mengambil peran tersebut. Beberapa peran layanan telah menetapkan kebijakan kepercayaan. Namun, dalam beberapa kasus, Anda harus menentukan prinsip utama layanan dalam kebijakan kepercayaan. Prinsip layanan dalam kebijakan IAM tidak bisa`"Service": "*"`.

**penting**  
Pengidentifikasi untuk prinsipal layanan mencakup nama layanan, dan biasanya dalam format berikut:  
`service-name.amazonaws.com`

Prinsipal layanan ditentukan oleh layanan. Anda dapat menemukan prinsipal layanan untuk beberapa layanan dengan membuka [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md), memeriksa apakah layanan memiliki **Ya** di kolom **Peran yang dikaitkan dengan layanan**, dan membuka tautan **Ya** untuk melihat dokumentasi peran yang dikaitkan dengan layanan untuk layanan tersebut. Temukan bagian **Izin Peran Ditautkan Layanan** untuk layanan tersebut dapat melihat prinsipal layanan.

Contoh berikut menunjukkan kebijakan yang dapat dilampirkan pada peran layanan. Kebijakan tersebut memungkinkan dua layanan, Amazon ECS dan Elastic Load Balancing, untuk mengambil peran tersebut. Layanan kemudian dapat melakukan tugas yang diberikan oleh kebijakan izin yang ditetapkan untuk peran tersebut (tidak ditampilkan). Untuk menetapkan beberapa prinsipal layanan, Anda tidak menentukan dua elemen `Service`; Anda hanya dapat memiliki satu. Sebagai gantinya, Anda menggunakan serangkaian dari beberapa prinsipal layanan sebagai nilai elemen `Service` tunggal.

```
"Principal": {
    "Service": [
        "ecs.amazonaws.com",
        "elasticloadbalancing.amazonaws.com"
   ]
}
```

## AWS prinsip layanan di Wilayah keikutsertaan
<a name="principal-services-in-opt-in-regions"></a>

Anda dapat meluncurkan sumber daya di beberapa AWS Wilayah dan beberapa Wilayah yang harus Anda pilih. Untuk daftar lengkap Wilayah yang harus Anda pilih, lihat [Mengelola AWS Wilayah](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) di *Referensi Umum AWS*panduan.

Ketika suatu AWS layanan di Wilayah keikutsertaan membuat permintaan dalam Wilayah yang sama, format nama utama layanan diidentifikasi sebagai versi non-regional dari nama utama layanan mereka:

`service-name.amazonaws.com`

Ketika suatu AWS layanan di Wilayah keikutsertaan membuat permintaan lintas wilayah ke Wilayah lain, format nama utama layanan diidentifikasi sebagai versi regional dari nama utama layanan mereka:

`service-name.{region}.amazonaws.com`

Misalnya, Anda memiliki topik Amazon SNS yang terletak di Wilayah `ap-southeast-1` dan bucket Amazon S3 yang terletak di Wilayah keikutsertaan. `ap-east-1` Anda ingin mengonfigurasi notifikasi bucket S3 untuk mempublikasikan pesan ke topik SNS. Untuk mengizinkan layanan S3 memposting pesan ke topik SNS, Anda harus memberikan `sns:Publish` izin utama layanan S3 melalui kebijakan akses berbasis sumber daya dari topik tersebut.

Jika Anda menentukan versi non-regionalisasi dari prinsipal layanan S3`s3.amazonaws.com`, dalam kebijakan akses topik, `sns:Publish` permintaan dari bucket ke topik akan gagal. Contoh berikut menentukan prinsip layanan S3 non-regionalisasi dalam elemen `Principal` kebijakan kebijakan akses topik SNS.

```
"Principal": { "Service": "s3.amazonaws.com" }
```

Karena bucket terletak di Wilayah keikutsertaan dan permintaan dibuat di luar Wilayah yang sama, prinsipal layanan S3 muncul sebagai nama utama layanan regional,. `s3.ap-east-1.amazonaws.com` Anda harus menggunakan nama utama layanan regional ketika AWS layanan di Wilayah opt-in mengajukan permintaan ke Wilayah lain. Setelah Anda menentukan nama utama layanan regional, jika bucket membuat `sns:Publish` permintaan ke topik SNS yang terletak di Wilayah lain, permintaan akan berhasil. Contoh berikut menentukan prinsipal layanan S3 regional dalam elemen `Principal` kebijakan kebijakan akses topik SNS.

```
"Principal": { "Service": "s3.ap-east-1.amazonaws.com" }
```

Kebijakan sumber daya atau daftar izin berbasis prinsip layanan untuk permintaan Lintas wilayah dari Wilayah keikutsertaan ke Wilayah lain hanya akan berhasil jika Anda menentukan nama utama layanan regional.

**catatan**  
Untuk kebijakan kepercayaan peran IAM, sebaiknya gunakan nama utama layanan non-regional. Sumber daya IAM bersifat global dan oleh karena itu peran yang sama dapat digunakan di Wilayah mana pun.

## Semua kepala sekolah
<a name="principal-anonymous"></a>

Anda dapat menggunakan wildcard (\$1) untuk menentukan semua prinsipal dalam `Principal` elemen kebijakan berbasis sumber daya atau dalam kunci kondisi yang mendukung prinsipal. [Kebijakan berbasis sumber daya](access_policies.md#policies_resource-based)izin *pemberian* dan [kunci kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) digunakan untuk membatasi kondisi pernyataan kebijakan.

**penting**  
Kami sangat menyarankan agar Anda tidak menggunakan wildcard (\$1) dalam `Principal` elemen kebijakan berbasis sumber daya dengan `Allow` efek kecuali Anda berniat untuk memberikan akses publik atau anonim. Jika tidak, tentukan prinsip, layanan, atau AWS akun yang dimaksudkan dalam `Principal` elemen dan kemudian batasi akses lebih lanjut dalam elemen. `Condition` Hal ini terutama berlaku untuk kebijakan kepercayaan peran IAM, karena mereka memungkinkan prinsipal lain untuk menjadi prinsipal di akun Anda.

Untuk kebijakan berbasis sumber daya, menggunakan wildcard (\$1) dengan `Allow` efek memberikan akses ke semua pengguna, termasuk pengguna anonim (akses publik). Untuk pengguna IAM dan kepala peran dalam akun Anda, tidak ada izin lain yang diperlukan. Untuk prinsipal di akun lain, mereka juga harus memiliki izin berbasis identitas di akun mereka yang memungkinkan mereka mengakses sumber daya Anda. Ini disebut [akses lintas akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).

Untuk pengguna anonim, elemen berikut ini setara:

```
"Principal": "*"
```

```
"Principal" : { "AWS" : "*" }
```

Anda tidak dapat menggunakan wildcard untuk mencocokkan sebagian nama pengguna utama atau ARN.

*Contoh berikut menunjukkan kebijakan berbasis sumber daya yang dapat digunakan alih-alih [AWS Elemen kebijakan JSON: NotPrincipal](reference_policies_elements_notprincipal.md) untuk secara eksplisit menolak semua prinsip kecuali yang ditentukan dalam elemen.* `Condition` Kebijakan ini harus [ditambahkan ke bucket Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/add-bucket-policy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UsePrincipalArnInsteadOfNotPrincipalWithDeny",
      "Effect": "Deny",
      "Action": "s3:*",
      "Principal": "*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:user/user-name"
        }
      }
    }
  ]
}
```

------

## Informasi selengkapnya
<a name="Principal_more-info"></a>

Untuk informasi selengkapnya, lihat berikut ini:
+ [Contoh kebijakan bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*
+ [Contoh kebijakan untuk Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#ExamplePolicies_SNS) di Panduan Pengembang *Layanan Pemberitahuan Sederhana Amazon*
+ [Contoh kebijakan Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html) di Panduan Pengembang Layanan *Antrian Sederhana Amazon*
+ [Kebijakan utama](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dalam *Panduan AWS Key Management Service Pengembang*
+ [Pengidentifikasi akun](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) di *Referensi Umum AWS*
+ [Federasi OIDC](id_roles_providers_oidc.md)

# AWS Elemen kebijakan JSON: NotPrincipal
<a name="reference_policies_elements_notprincipal"></a>

`NotPrincipal`Elemen menggunakan `"Effect":"Deny"` untuk menolak akses ke semua prinsipal ***kecuali*** prinsipal yang ditentukan dalam elemen. `NotPrincipal` Prinsipal dapat berupa pengguna IAM, prinsipal pengguna AWS STS federasi, peran IAM, sesi peran yang diasumsikan,, AWS layanan Akun AWS, atau jenis utama lainnya. Untuk informasi lebih lanjut tentang kepala sekolah, lihat. [AWS Elemen kebijakan JSON: Principal](reference_policies_elements_principal.md)

`NotPrincipal`harus digunakan dengan`"Effect":"Deny"`. Menggunakannya `"Effect":"Allow"` dengan tidak didukung. 

**penting**  
Kami tidak merekomendasikan penggunaan `NotPrincipal` untuk kebijakan berbasis sumber daya baru sebagai bagian dari strategi keamanan dan otorisasi Anda. Saat Anda menggunakan`NotPrincipal`, pemecahan masalah efek dari beberapa jenis kebijakan bisa jadi sulit. Sebaiknya gunakan kunci `aws:PrincipalArn` konteks dengan operator kondisi ARN sebagai gantinya.

## Poin kunci
<a name="notprincipal-key-points"></a>
+ `NotPrincipal`Elemen ini didukung dalam kebijakan berbasis sumber daya untuk beberapa layanan AWS , termasuk titik akhir VPC. Kebijakan berbasis sumber daya adalah kebijakan yang diterapkan langsung ke sumber daya. Anda tidak dapat menggunakan `NotPrincipal` elemen dalam kebijakan berbasis identitas IAM atau dalam kebijakan kepercayaan peran IAM.
+ Jangan gunakan pernyataan kebijakan berbasis sumber daya yang menyertakan elemen `NotPrincipal` kebijakan dengan `Deny` efek untuk pengguna IAM atau peran yang memiliki kebijakan batas izin yang dilampirkan. `NotPrincipal`Elemen dengan `Deny` efek akan selalu menolak prinsip IAM yang memiliki kebijakan batas izin yang dilampirkan, terlepas dari nilai yang ditentukan dalam elemen. `NotPrincipal` Hal ini menyebabkan beberapa pengguna IAM atau peran yang seharusnya memiliki akses ke sumber daya kehilangan akses. Sebaiknya ubah pernyataan kebijakan berbasis sumber daya Anda untuk menggunakan operator kondisi [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN)dengan kunci [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn)konteks untuk membatasi akses, bukan elemen. `NotPrincipal` Untuk informasi tentang batas izin, lihat[Batas izin untuk entitas IAM](access_policies_boundaries.md).
+ Saat Anda menggunakan`NotPrincipal`, Anda juga harus menentukan ARN akun dari prinsipal yang tidak ditolak. Jika tidak, kebijakan ini dapat menolak akses ke seluruh akun yang berisi prinsipal. Bergantung pada layanan yang Anda sertakan dalam kebijakan Anda, AWS dapat memvalidasi akun terlebih dahulu, lalu pengguna. Jika pengguna peran yang diasumsikan (seseorang yang menggunakan peran) sedang dievaluasi, AWS mungkin memvalidasi akun terlebih dahulu, kemudian peran, dan kemudian pengguna peran yang dianggap. Pengguna peran yang diasumsikan diidentifikasi oleh nama sesi peran yang ditentukan saat mereka mengasumsikan peran. Oleh karena itu, kami sangat menyarankan Anda secara eksplisit untuk menyertakan ARN untuk akun pengguna, atau menyertakan ARN untuk peran dan ARN untuk akun yang berisi peran tersebut.
+ `NotPrincipal`Elemen tidak didukung dalam Kebijakan Kontrol Layanan (SCP) dan Kebijakan Kontrol Sumber Daya (RCP).

## Alternatif untuk `NotPrincipal` elemen
<a name="notprincipal-alternatives"></a>

Saat mengelola kontrol akses di AWS, mungkin ada skenario di mana Anda perlu secara eksplisit menolak semua akses prinsipal ke sumber daya, kecuali untuk satu atau beberapa prinsip yang Anda tentukan. AWS merekomendasikan penggunaan pernyataan Deny dengan kunci konteks kondisi global untuk kontrol yang lebih tepat dan pemecahan masalah yang lebih mudah. Contoh berikut menunjukkan pendekatan alternatif menggunakan operator kondisi seperti `StringNotEquals` atau `ArnNotEquals` untuk menolak akses ke semua prinsipal kecuali yang ditentukan dalam elemen Kondisi.

## Contoh skenario menggunakan peran IAM
<a name="notprincipal-alternative-role"></a>

Anda dapat menggunakan kebijakan berbasis sumber daya dengan pernyataan Deny untuk mencegah semua peran IAM, kecuali yang ditentukan dalam elemen Kondisi, mengakses atau memanipulasi sumber daya Anda. Pendekatan ini mengikuti prinsip AWS keamanan bahwa penolakan eksplisit selalu diutamakan daripada pernyataan izin apa pun dan membantu mempertahankan prinsip hak istimewa terkecil di seluruh infrastruktur Anda. AWS 

Alih-alih menggunakan`NotPrincipal`, sebaiknya gunakan pernyataan Deny dengan kunci konteks kondisi global dan operator kondisi [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN)ingin secara eksplisit mengizinkan akses peran IAM ke sumber daya Anda. Contoh berikut digunakan [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) untuk secara eksplisit mengizinkan peran `read-only-role` mengakses bucket Amazon S3 di folder. `Bucket_Account_Audit`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyCrossAuditAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::Bucket_Account_Audit",
        "arn:aws:s3:::Bucket_Account_Audit/*"
      ],
      "Condition": {
        "ArnNotEquals": {
          "aws:PrincipalArn": "arn:aws:iam::444455556666:role/read-only-role"
        }
      }
    }
  ]
}
```

------

## Contoh skenario menggunakan prinsip layanan
<a name="notprincipal-alternative-service-principal"></a>

Anda dapat menggunakan pernyataan Deny untuk mencegah semua prinsip layanan, kecuali yang ditentukan dalam `Condition` elemen, mengakses atau memanipulasi sumber daya Anda. Pendekatan ini sangat berguna ketika Anda perlu menerapkan kontrol akses berbutir halus atau menetapkan batas keamanan antara berbagai layanan dan aplikasi di lingkungan Anda. AWS 

Alih-alih menggunakan`NotPrincipal`, sebaiknya gunakan pernyataan Deny dengan kunci konteks kondisi global dan operator kondisi [`StringNotEquals`](reference_policies_elements_condition_operators.md#Conditions_String)untuk secara eksplisit mengizinkan akses utama layanan ke sumber daya Anda. Contoh berikut digunakan `aws:PrincipalServiceName` untuk secara eksplisit mengizinkan prinsipal AWS CodeBuild layanan mengakses bucket Amazon S3 di folder. `BUCKETNAME`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyNotCodeBuildAccess",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::BUCKETNAME",
        "arn:aws:s3:::BUCKETNAME/*"
      ],
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalServiceName": "codebuild.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Elemen kebijakan IAM JSON: Action
<a name="reference_policies_elements_action"></a>

Elemen `Action` menguraikan tindakan khusus atau tindakan yang akan diizinkan atau ditolak. Pernyataan harus mencakup elemen `Action` atau `NotAction`. Setiap AWS layanan memiliki serangkaian tindakan sendiri yang menggambarkan tugas yang dapat Anda lakukan dengan layanan itu. [Misalnya, daftar tindakan untuk Amazon S3 dapat ditemukan di [Menentukan Izin dalam](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html) Kebijakan di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*, daftar tindakan untuk Amazon EC2 dapat ditemukan di Referensi API Amazon EC2, dan daftar tindakan untuk AWS Identity and Access Management dapat ditemukan di [Referensi API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-apis.html) IAM.](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) Untuk menemukan daftar tindakan untuk layanan lain, lihat [dokumentasi](https://aws.amazon.com/documentation) referensi API untuk layanan.

AWS juga menyediakan informasi referensi layanan dalam format JSON untuk merampingkan otomatisasi alur kerja manajemen kebijakan. Dengan informasi referensi layanan, Anda dapat mengakses tindakan, sumber daya, dan kunci kondisi yang tersedia di seluruh file Layanan AWS yang dapat dibaca mesin. Untuk informasi selengkapnya, lihat [Layanan AWS Informasi yang disederhanakan untuk akses terprogram di Referensi](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html) Otorisasi Layanan.

Anda menentukan nilai menggunakan namespace layanan sebagai prefiks tindakan (`iam`, `ec2`, `sqs`, `sns`, `s3`, dll.) diikuti dengan nama tindakan yang mengizinkan atau menolak. Nama harus sesuai dengan tindakan yang didukung oleh layanan. Prefiks dan nama tindakan tidak sensitif dengan huruf besar-kecil. Misalnya, `iam:ListAccessKeys` sama dengan `IAM:listaccesskeys`. Contoh berikut menunjukkan elemen `Action` untuk layanan yang berbeda.

**Tindakan Amazon SQS**

```
"Action": "sqs:SendMessage"
```

**Tindakan Amazon EC2**

```
"Action": "ec2:StartInstances"
```

**Tindakan IAM**

```
"Action": "iam:ChangePassword"
```

**Tindakan Amazon S3**

```
"Action": "s3:GetObject"
```

Anda dapat menentukan beberapa nilai untuk elemen `Action`.

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

Anda dapat menggunakan wildcard pencocokan multi-karakter (`*`) dan wildcard pencocokan karakter tunggal (`?`) untuk memberikan akses ke semua tindakan yang ditawarkan produk tertentu. AWS Misalnya, elemen `Action` berikut berlaku untuk semua tindakan S3.

```
"Action": "s3:*"
```

Anda juga dapat menggunakan wildcard (`*`atau`?`) sebagai bagian dari nama tindakan. Misalnya, elemen `Action` berikut berlaku untuk semua tindakan IAM yang mencakup string `AccessKey`, termasuk `CreateAccessKey`, `DeleteAccessKey`, `ListAccessKeys`, dan `UpdateAccessKey`.

```
"Action": "iam:*AccessKey*"
```

Beberapa layanan memungkinkan Anda membatasi tindakan yang tersedia. Misalnya, Amazon SQS memungkinkan Anda menyediakan hanya sebagian kecil dari semua kemungkinan tindakan Amazon SQS. Dalam hal ini, wildcard `*` tidak memungkinkan kontrol penuh atas antrean; itu hanya memungkinkan subset tindakan yang telah Anda bagikan. Untuk informasi lebih lanjut, lihat [Memahami Izin](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes) di *Panduan Pengembang Amazon Simple Queue Service*.

# Elemen kebijakan IAM JSON: NotAction
<a name="reference_policies_elements_notaction"></a>

`NotAction` adalah elemen kebijakan tingkat lanjut yang secara eksplisit cocok dengan semuanya *kecuali* daftar tindakan yang ditentukan. Menggunakan `NotAction` dapat menghasilkan kebijakan yang lebih singkat dengan mencantumkan hanya beberapa tindakan yang harus tidak cocok, daripada menyertakan daftar panjang tindakan yang sesuai. Tindakan yang `NotAction` ditentukan dalam tidak terpengaruh oleh `Allow` atau `Deny` efek dalam pernyataan kebijakan. Hal ini, pada gilirannya, berarti bahwa semua tindakan atau layanan yang berlaku yang tidak terdaftar diperbolehkan jika Anda menggunakan efek `Allow`. Sebagai tambahan, tindakan atau layanan yang tidak terdaftar tersebut ditolak jika Anda menggunakan efek `Deny`. Saat Anda menggunakan `NotAction` dengan elemen `Resource`, Anda memberikan cakupan untuk kebijakan. Ini adalah bagaimana AWS menentukan tindakan atau layanan mana yang berlaku. Untuk informasi selengkapnya, lihat kebijakan contoh berikut. 

**NotAction dengan Izinkan** 

Anda dapat menggunakan `NotAction` elemen dalam pernyataan dengan `"Effect": "Allow"` untuk menyediakan akses ke semua tindakan dalam AWS layanan, kecuali untuk tindakan yang ditentukan dalam`NotAction`. Anda dapat menggunakannya dengan elemen `Resource` untuk menyediakan cakupan untuk kebijakan, membatasi tindakan yang diizinkan untuk tindakan yang dapat dilakukan pada sumber daya tertentu.

Contoh berikut memungkinkan pengguna mengakses semua tindakan Amazon S3 yang dapat dilakukan pada sumber daya S3 *kecuali* untuk menghapus bucket. Kebijakan ini juga tidak mengizinkan tindakan dalam layanan lain, karena tindakan layanan lainnya tidak berlaku untuk sumber daya S3.

```
"Effect": "Allow",
"NotAction": "s3:DeleteBucket",
"Resource": "arn:aws:s3:::*",
```

Terkadang, Anda mungkin ingin memungkinkan akses ke sejumlah besar tindakan. Dengan menggunakan elemen `NotAction` secara efektif membalik pernyataan, yang menghasilkan daftar tindakan yang lebih singkat. Misalnya, karena AWS memiliki begitu banyak layanan, Anda mungkin ingin membuat kebijakan yang memungkinkan pengguna melakukan semuanya kecuali mengakses tindakan IAM.

Contoh berikut memungkinkan pengguna untuk mengakses setiap tindakan di setiap AWS layanan kecuali IAM.

```
"Effect": "Allow",
"NotAction": "iam:*",
"Resource": "*"
```

Hati-hati saat menggunakan elemen `NotAction` dan `"Effect": "Allow"` dalam pernyataan yang sama atau dalam pernyataan yang berbeda dalam kebijakan. `NotAction` cocok dengan semua layanan dan tindakan yang tidak tercantum atau berlaku secara eksplist untuk sumber daya yang ditentukan, dan dapat mengakibatkan pemberian izin kepada pengguna lebih dari yang Anda inginkan.

**NotAction dengan mendustakan**

Anda dapat menggunakan elemen `NotAction` dalam pernyataan dengan `"Effect": "Deny"` untuk menolak akses ke semua sumber daya yang tercantum kecuali untuk tindakan yang ditentukan dalam elemen `NotAction`. Kombinasi ini tidak memungkinkan item yang terdaftar, tetapi sebaliknya secara eksplisit menolak tindakan yang tidak tercantum. Anda tetap harus mengizinkan tindakan yang ingin Anda izinkan.

Contoh kondisi berikut menolak akses ke tindakan non-IAM jika pengguna tidak masuk menggunakan MFA. Jika pengguna masuk dengan MFA, maka `"Condition"` pengujian gagal dan pernyataan akhir `"Deny"` tidak berpengaruh. Namun demikian, harap diperhatikan bahwa hal ini tidak akan memberikan akses kepada pengguna ke tindakan apa pun; hal ini hanya akan secara eksplisit menolak semua tindakan lainnya kecuali tindakan IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyAllUsersNotUsingMFA",
        "Effect": "Deny",
        "NotAction": "iam:*",
        "Resource": "*",
        "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
    }]
}
```

------

Untuk contoh kebijakan yang menolak akses ke tindakan di luar Wilayah tertentu, kecuali untuk tindakan dari layanan tertentu, lihat [AWS: Menolak akses AWS berdasarkan Wilayah yang diminta](reference_policies_examples_aws_deny-requested-region.md).

# Elemen kebijakan IAM JSON: Resource
<a name="reference_policies_elements_resource"></a>

`Resource`Elemen dalam pernyataan kebijakan IAM mendefinisikan objek atau objek yang berlaku untuk pernyataan tersebut. Pernyataan harus menyertakan elemen `Resource` atau `NotResource`.

Anda menentukan sumber daya menggunakan Amazon Resource Name (ARN). Format ARN tergantung pada Layanan AWS dan sumber daya spesifik yang Anda maksud. Meskipun format ARN bervariasi, Anda selalu menggunakan ARN untuk mengidentifikasi sumber daya. Untuk informasi selengkapnya tentang format ARNs, lihat[IAM ARNs](reference_identifiers.md#identifiers-arns). Untuk informasi tentang cara menentukan sumber daya, lihat dokumentasi untuk layanan yang ingin Anda tulis pernyataan.

**catatan**  
Beberapa Layanan AWS tidak memungkinkan Anda untuk menentukan tindakan untuk sumber daya individu. Dalam kasus ini, tindakan apa pun yang Anda cantumkan di `NotAction` elemen `Action` atau berlaku untuk semua sumber daya dalam layanan tersebut. Ketika ini terjadi, Anda menggunakan karakter wildcard (`*`) dalam `Resource` elemen.

Contoh berikut mengacu pada antrean Amazon SQS tertentu.

```
"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"
```

Contoh berikut mengacu pada pengguna IAM bernama `Bob` dalam file Akun AWS.

**catatan**  
Dalam `Resource` elemen, nama pengguna IAM peka huruf besar/kecil.

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"
```

## Menggunakan wildcard di sumber daya ARNs
<a name="reference_policies_elements_resource_wildcards"></a>

Anda dapat menggunakan karakter wildcard (`*`dan`?`) dalam segmen individual ARN (bagian yang dipisahkan oleh titik dua) untuk mewakili:
+ Setiap kombinasi karakter (`*`)
+ Setiap karakter tunggal (`?`)

Anda dapat menggunakan beberapa `*` atau `?` karakter di setiap segmen. Jika `*` wildcard adalah karakter terakhir dari segmen ARN sumber daya, ia dapat diperluas untuk mencocokkan di luar batas titik dua. Kami menyarankan Anda menggunakan wildcard (`*`dan`?`) dalam segmen ARN yang dipisahkan oleh titik dua.

**catatan**  
Anda tidak dapat menggunakan wildcard di segmen layanan yang mengidentifikasi produk. AWS Untuk informasi selengkapnya tentang segmen ARN, lihat [Identifikasi AWS sumber daya dengan Nama Sumber Daya Amazon (ARNs)](reference-arns.md)

Contoh berikut mengacu pada semua pengguna IAM yang alurnya `/accounting`. 

```
"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"
```

Contoh berikut mengacu pada semua item dalam bucket Amazon S3 spesifik.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
```

Karakter asterisk (`*`) dapat diperluas untuk menggantikan segala sesuatu di dalam segmen, termasuk karakter seperti garis miring maju (`/`) yang mungkin tampak sebagai pembatas dalam namespace layanan tertentu. Misalnya, pertimbangkan Amazon S3 ARN berikut karena logika ekspansi wildcard yang sama berlaku untuk semua layanan.

```
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"
```

Wildcard di ARN berlaku untuk semua objek berikut dalam bucket, tidak hanya objek pertama yang terdaftar.

```
amzn-s3-demo-bucket/1/test/object.jpg
amzn-s3-demo-bucket/1/2/test/object.jpg
amzn-s3-demo-bucket/1/2/test/3/object.jpg 
amzn-s3-demo-bucket/1/2/3/test/4/object.jpg
amzn-s3-demo-bucket/1///test///object.jpg
amzn-s3-demo-bucket/1/test/.jpg
amzn-s3-demo-bucket//test/object.jpg
amzn-s3-demo-bucket/1/test/
```

Pertimbangkan dua objek terakhir dalam daftar sebelumnya. Nama objek Amazon S3 dapat dimulai atau diakhiri dengan karakter pembatas garis miring () pembatas konvensional. `/` Sementara `/` bekerja sebagai pembatas, tidak ada signifikansi khusus ketika karakter ini digunakan dalam ARN sumber daya. Hal ini diperlakukan sama dengan karakter valid lainnya. ARN tidak akan cocok dengan objek berikut:

```
amzn-s3-demo-bucket/1-test/object.jpg
amzn-s3-demo-bucket/test/object.jpg
amzn-s3-demo-bucket/1/2/test.jpg
```

## Menentukan beberapa sumber daya
<a name="reference_policies_elements_resource_multiple-resources"></a>

Anda dapat menentukan beberapa sumber daya dalam `Resource` elemen dengan menggunakan array ARNs. Contoh berikut mengacu pada dua tabel DynamoDB.

```
"Resource": [
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table",
    "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table"
]
```

## Menggunakan variabel kebijakan dalam sumber daya ARNs
<a name="reference_policies_elements_resource_policy-variables"></a>

Di elemen `Resource`, Anda dapat menggunakan [variabel kebijakan](reference_policies_variables.md) JSON pada bagian ARN yang mengidentifikasi sumber daya spesifik (yaitu, dalam bagian jejak ARN). Misalnya, Anda dapat menggunakan tombol `{aws:username}` sebagai bagian dari ARN sumber daya untuk menunjukkan bahwa nama pengguna saat ini harus disertakan sebagai bagian dari nama sumber daya. Contoh berikut menunjukkan bagaimana Anda dapat menggunakan tombol `{aws:username}` di elemen `Resource`. Kebijakan ini mengizinkan akses ke tabel Amazon DynamoDB yang cocok dengan nama pengguna saat ini.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "dynamodb:*",
        "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/${aws:username}"
    }
}
```

------

Untuk informasi selengkapnya tentang variabel kebijakan JSON, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Elemen kebijakan IAM JSON: NotResource
<a name="reference_policies_elements_notresource"></a>

`NotResource` adalah elemen kebijakan tingkat lanjut yang secara eksplisit cocok dengan setiap sumber daya kecuali yang ditentukan. Menggunakan `NotResource` dapat menghasilkan kebijakan yang lebih pendek dengan mencantumkan hanya beberapa sumber yang seharusnya tidak sesuai, daripada menyertakan daftar panjang sumber daya yang sesuai. Ini khususnya berguna untuk kebijakan yang menerapkan satu layanan AWS . 

Misalnya, bayangkan Anda memiliki grup bernama `HRPayroll`. Anggota tidak `HRPayroll` boleh mengakses sumber daya Amazon S3 apa pun kecuali `Payroll` folder di `HRBucket` bucket. Kebijakan berikut secara jelas menolak akses ke semua sumber daya Amazon S3 selain sumber daya yang tercantum. Namun demikian, harap diperhatikan bahwa kebijakan ini tidak memberikan akses ke sumber daya apa pun kepada pengguna.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}
```

------

Biasanya, untuk secara eksplisit menolak akses ke sumber daya yang akan Anda tuliskan kebijakan yang menggunakan `"Effect":"Deny"` dan yang menyertakan elemen `Resource` yang mencantumkan setiap folder secara terpisah. Namun, dalam hal ini, setiap kali Anda menambahkan folder ke`HRBucket`, atau menambahkan sumber daya ke Amazon S3 yang tidak boleh diakses, Anda harus menambahkan namanya ke daftar di `Resource` elemen. Jika Anda menggunakan elemen `NotResource` sebagai gantinya, akses pengguna secara otomatis ditolak ke folder baru kecuali Anda menambahkan nama folder untuk elemen `NotResource`. 

Saat menggunakan `NotResource`, Anda harus ingat bahwa sumber daya yang ditentukan dalam elemen ini *hanya* tindakan yang terbatas. Hal ini, pada gilirannya, membatasi semua sumber daya yang akan berlaku untuk tindakan tersebut. Dalam contoh di atas, kebijakan hanya memengaruhi tindakan Amazon S3 dan karena itu hanya sumber daya Amazon S3. Jika `Action` elemen tersebut juga menyertakan tindakan Amazon EC2, kebijakan tersebut akan menolak akses ke sumber daya EC2 yang tidak ditentukan dalam elemen tersebut. `NotResource` Untuk mempelajari tindakan dalam layanan yang memungkinkan menentukan ARN sumber daya, [lihat Tindakan, Sumber Daya, dan Kunci AWS Kondisi](reference_policies_actions-resources-contextkeys.html) untuk Layanan.

## NotResource dengan elemen lain
<a name="notresource-element-combinations"></a>

Jangan **pernah** menggunakan elemen `"Effect": "Allow"`, `"Action": "*"`, dan `"NotResource": "arn:aws:s3:::HRBucket"` secara bersama-sama. Pernyataan ini sangat berbahaya, karena memungkinkan semua tindakan masuk AWS pada semua sumber daya kecuali bucket `HRBucket` S3. Ini bahkan memungkinkan pengguna menambahkan kebijakan yang memungkinkan mereka mengakses `HRBucket`. Jangan lakukan ini. 

Hati-hati saat menggunakan elemen `NotResource` dan `"Effect": "Allow"` dalam pernyataan yang sama atau dalam pernyataan yang berbeda dalam kebijakan. `NotResource` memungkinkan semua layanan dan sumber daya yang tidak tercantum secara eksplist, dan dapat mengakibatkan pemberian izin kepada pengguna lebih dari yang Anda inginkan. Menggunakan elemen `NotResource` dan `"Effect": "Deny"` dalam pernyataan yang sama menolak layanan dan sumber daya yang secara tidak eksplisit tercantum.

# Elemen kebijakan IAM JSON: Condition
<a name="reference_policies_elements_condition"></a>

Elemen `Condition` (atau *blok* `Condition`) memungkinkan Anda menentukan ketentuan saat kebijiakan berlaku. Elemen `Condition` bersifat opsional. Dalam `Condition` elemen, Anda membangun ekspresi di mana Anda menggunakan [operator kondisi](reference_policies_elements_condition_operators.md) (sama, kurang dari, dan lainnya) untuk mencocokkan kunci konteks dan nilai dalam kebijakan terhadap kunci dan nilai dalam konteks permintaan. Untuk mempelajari selengkapnya tentang konteks permintaan, lihat [Komponen permintaan](intro-structure.md#intro-structure-request).

```
"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
```

Kunci konteks yang Anda tentukan dalam kondisi kebijakan dapat berupa [kunci konteks kondisi global atau kunci](reference_policies_condition-keys.md) konteks khusus layanan. Kunci konteks kondisi global memiliki `aws:` awalan. Kunci konteks khusus layanan memiliki awalan layanan. Misalnya, Amazon EC2 memungkinkan Anda menulis kondisi menggunakan kunci `ec2:InstanceType` konteks, yang unik untuk layanan tersebut. Untuk melihat kunci konteks IAM khusus layanan dengan `iam:` awalan, lihat. [Kunci konteks IAM dan AWS STS kondisi](reference_policies_iam-condition-keys.md)

*Nama* kunci konteks tidak peka huruf besar/kecil. Misalnya, menyertakan kunci `aws:SourceIP` konteks setara dengan pengujian untuk`AWS:SourceIp`. Sensitivitas huruf besar/huruf dari *nilai* kunci konteks tergantung pada [operator kondisi](reference_policies_elements_condition_operators.md) yang Anda gunakan. Misalnya, kondisi berikut mencakup `StringEquals` operator untuk memastikan bahwa hanya permintaan yang dibuat berdasarkan `john` kecocokan. Nama pengguna `John` ditolak aksesnya.

```
"Condition" : { "StringEquals" : { "aws:username" : "john" }}
```

Ketentuan berikut menggunakan operator [`StringEqualsIgnoreCase`](reference_policies_elements_condition_operators.md#Conditions_String) untuk mencocokkan nama pengguna `john` atau `John`.

```
"Condition" : { "StringEqualsIgnoreCase" : { "aws:username" : "john" }}
```

Beberapa kunci konteks mendukung pasangan kunci-nilai yang memungkinkan Anda menentukan bagian dari nama kunci. Contohnya termasuk kunci [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md#condition-keys-requesttag)konteks, kunci konteks AWS KMS [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context), dan kunci [`ResourceTag/tag-key`](reference_policies_condition-keys.md#condition-keys-resourcetag)konteks yang didukung oleh beberapa layanan.
+ Jika Anda menggunakan kunci `ResourceTag/tag-key` konteks untuk layanan seperti [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#amazon-ec2-keys), maka Anda harus menentukan nama kunci untuk. `tag-key` 
+ **Nama kunci tidak peka huruf besar/kecil.** Ini berarti jika Anda menentukan `"aws:ResourceTag/TagKey1": "Value1"` dalam elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda sumber daya bernama `TagKey1` atau `tagkey1`, tetapi tidak keduanya.
+ AWS layanan yang mendukung atribut ini memungkinkan Anda membuat beberapa nama kunci yang hanya berbeda berdasarkan kasus. Misalnya, Anda dapat menandai instans Amazon EC2 dengan `ec2=test1` dan. `EC2=test2` Saat Anda menggunakan kondisi seperti `"aws:ResourceTag/EC2": "test1"` untuk memungkinkan akses ke sumber daya tersebut, nama kunci cocok dengan kedua tanda, tetapi hanya satu nilai yang cocok. Hal ini dapat mengakibatkan kegagalan ketentuan yang tidak terduga.

**penting**  
Sebagai praktik terbaik, pastikan bahwa anggota akun Anda mengikuti konvensi pemberian nama yang konsisten ketika memberi nama atribut pasangan nilai-kunci. Contohnya mencakup tanda atau konteks enkripsi AWS KMS . Anda dapat menerapkan ini menggunakan kunci [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)konteks untuk penandaan, atau [https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context-keys)untuk konteks AWS KMS enkripsi.
+ Untuk daftar semua operator kondisi dan deskripsi tentang cara kerjanya, lihat [Operator kondisi](reference_policies_elements_condition_operators.md).
+ Kecuali ditentukan lain, semua kunci konteks dapat memiliki beberapa nilai. Untuk deskripsi tentang cara menangani kunci konteks yang memiliki beberapa nilai, lihat[Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+ Untuk daftar semua kunci konteks yang tersedia secara global, lihat[AWS kunci konteks kondisi global](reference_policies_condition-keys.md).
+ Untuk kunci konteks kondisi yang ditentukan oleh setiap layanan, lihat [Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan](reference_policies_actions-resources-contextkeys.html).

## Konteks permintaan
<a name="AccessPolicyLanguage_RequestContext"></a>

Ketika [kepala sekolah](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) membuat [permintaan](intro-structure.md#intro-structure-request) AWS, AWS mengumpulkan informasi permintaan ke dalam konteks permintaan. Konteks permintaan mencakup informasi tentang prinsipal, sumber daya, tindakan, dan sifat lingkungan lainnya. Evaluasi kebijakan mencocokkan properti dalam kebijakan terhadap properti yang dikirim dalam permintaan untuk mengevaluasi dan mengotorisasi tindakan yang dapat Anda lakukan. AWS

Anda dapat menggunakan `Condition` elemen kebijakan JSON untuk menguji kunci konteks tertentu terhadap konteks permintaan. Misalnya, Anda dapat membuat kebijakan yang menggunakan kunci CurrentTime konteks [aws:](reference_policies_condition-keys.md#condition-keys-currenttime) untuk [memungkinkan pengguna melakukan tindakan hanya dalam rentang tanggal tertentu](reference_policies_examples_aws-dates.md).

Contoh berikut menunjukkan representasi konteks permintaan ketika Martha Rivera mengirim permintaan untuk menonaktifkan perangkat MFA-nya.

```
Principal: AROA123456789EXAMPLE
Action: iam:DeactivateMFADevice
Resource: arn:aws:iam::user/martha
Context:
  – aws:UserId=AROA123456789EXAMPLE:martha
  – aws:PrincipalAccount=1123456789012
  – aws:PrincipalOrgId=o-example
  – aws:PrincipalARN=arn:aws:iam::1123456789012:assumed-role/TestAR
  – aws:MultiFactorAuthPresent=true
  – aws:MultiFactorAuthAge=2800
  – aws:CurrentTime=...
  – aws:EpochTime=...
  – aws:SourceIp=...
```

Konteks permintaan dicocokkan dengan kebijakan yang memungkinkan pengguna menghapus perangkat autentikasi multi-faktor (MFA) mereka sendiri, tetapi hanya jika mereka telah masuk menggunakan MFA dalam satu jam terakhir (3.600 detik).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "AllowRemoveMfaOnlyIfRecentMfa",
        "Effect": "Allow",
        "Action": [
            "iam:DeactivateMFADevice"
        ],
        "Resource": "arn:aws:iam::*:user/${aws:username}",
        "Condition": {
            "NumericLessThanEquals": {"aws:MultiFactorAuthAge": "3600"}
        }
    }
}
```

------

Dalam contoh ini, kebijakan cocok dengan konteks permintaan: tindakannya sama, sumber daya cocok dengan wildcard “\$1”, dan nilainya `aws:MultiFactorAuthAge` adalah 2800, yang kurang dari 3600, sehingga kebijakan mengizinkan permintaan otorisasi ini.

AWS mengevaluasi setiap kunci konteks dalam kebijakan dan mengembalikan nilai *true* atau *false*. Kunci konteks yang tidak ada dalam permintaan dianggap sebagai ketidakcocokan.

Konteks permintaan dapat mengembalikan nilai-nilai berikut:
+ **Benar** – Jika pemohon masuk menggunakan MFA dalam satu jam terakhir atau kurang, maka ketentuan kembali ke *benar*.
+ **Salah** – Jika pemohon masuk menggunakan MFA lebih dari satu jam yang lalu, maka ketentuan kembali ke *salah*.
  + **Tidak hadir** - Jika pemohon membuat permintaan menggunakan kunci akses pengguna IAM mereka di AWS CLI atau AWS API, kunci tidak ada. Dalam hal ini, kuncinya tidak ada, dan kunci tidak akan cocok.

**catatan**  
Dalam beberapa kasus, ketika nilai kunci kondisi tidak ada, kondisi masih dapat mengembalikan nilai true. Misalnya, jika Anda menambahkan `ForAllValues` qualifier, permintaan akan mengembalikan nilai true jika kunci konteks tidak ada dalam permintaan. Untuk mencegah kunci konteks atau kunci konteks yang hilang dengan nilai kosong dievaluasi menjadi true, Anda dapat menyertakan [operator kondisi Null](reference_policies_elements_condition_operators.md#Conditions_Null) dalam kebijakan Anda dengan `false` nilai untuk memeriksa apakah kunci konteks ada dan nilainya bukan null.

## Blok ketentuan
<a name="AccessPolicyLanguage_ConditionBlock"></a>

Contoh berikut menunjukkan format dasar dari elemen `Condition`:

```
"Condition": {"StringLike": {"s3:prefix": ["jane/*"]}}
```

Nilai dari permintaan diwakili oleh kunci konteks, dalam hal ini`s3:prefix`. Nilai kunci konteks dibandingkan dengan nilai yang Anda tentukan sebagai nilai literal, seperti`jane/*`. Jenis perbandingan yang akan dibuat ditentukan oleh [operator kondisi](reference_policies_elements_condition_operators.md) (di sini,`StringLike`). Anda dapat membuat ketentuan yang membandingkan string, tanggal, angka, dan lainnya menggunakan perbandingan umum Boolean seperti sama, lebih besar dari, dan kurang dari. Bila Anda menggunakan [operator string atau operator](reference_policies_elements_condition_operators.md#Conditions_String) [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN), Anda juga dapat menggunakan [variabel kebijakan](reference_policies_variables.md) dalam nilai kunci konteks. Contoh berikut termasuk `aws:username` variabel. 

```
"Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}}
```

Dalam beberapa keadaan, kunci konteks dapat berisi beberapa nilai. Misalnya, permintaan ke Amazon DynamoDB mungkin meminta untuk mengembalikan atau memperbarui beberapa atribut dari tabel. Kebijakan untuk akses ke tabel DynamoDB dapat menyertakan `dynamodb:Attributes` kunci konteks, yang berisi semua atribut yang tercantum dalam permintaan. Anda dapat menguji beberapa atribut dalam daftar permintaan terhadap daftar atribut yang diizinkan di kebijakan dengan menggunakan operator kumpulan di elemen `Condition`. Untuk informasi selengkapnya, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

Ketika kebijakan dievaluasi selama permintaan, AWS ganti kunci dengan nilai yang sesuai dari permintaan. (Dalam contoh ini, AWS akan menggunakan tanggal dan waktu permintaan.) Kondisi dievaluasi untuk mengembalikan benar atau salah, yang kemudian diperhitungkan dalam apakah kebijakan tersebut secara keseluruhan mengizinkan atau menolak permintaan. 

### Beberapa nilai dalam suatu ketentuan
<a name="Condition-multiple-conditions"></a>

Sebuah `Condition` elemen dapat berisi beberapa operator kondisi, dan setiap operator kondisi dapat berisi beberapa pasangan kunci-nilai konteks. Gambar berikut mengilustrasikan hal ini. 

![\[dua diagram blok operator kondisi. Blok pertama mencakup dua placeholder kunci konteks, masing-masing dengan beberapa nilai. Blok kondisi kedua mencakup satu kunci konteks dengan beberapa nilai.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block.diagram.png)


Lihat informasi yang lebih lengkap di [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys). 

# Elemen kebijakan JSON IAM: Operator kondisi
<a name="reference_policies_elements_condition_operators"></a>

<a name="topiclist"></a>

Gunakan operator ketentuan di elemen `Condition` untuk mencocokkan kunci kondisi dan nilai di dalam kebijakan terhadap nilai di dalam konteks permintaan. Untuk informasi selengkapnya tentang elemen `Condition`, lihat [Elemen kebijakan IAM JSON: Condition](reference_policies_elements_condition.md).

Operator ketentuan yang dapat Anda gunakan dalam kebijakan tergantung pada kunci kondisi yang Anda pilih. Anda dapat memilih kunci kondisi global atau kunci kondisi khusus layanan. Untuk mempelajari operator ketentuan mana yang dapat Anda gunakan pada kunci kondisi global, lihat [AWS kunci konteks kondisi global](reference_policies_condition-keys.md). Untuk mempelajari operator kondisi mana yang dapat Anda gunakan untuk kunci kondisi khusus layanan, lihat [Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan](reference_policies_actions-resources-contextkeys.html) dan pilih layanan yang ingin Anda lihat.

**penting**  
Jika kunci yang Anda tentukan dalam kondisi kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok dan kondisinya *salah*. Jika kondisi kebijakan mengharuskan kunci *tidak* cocok, seperti `StringNotLike` atau`ArnNotLike`, dan kunci kanan tidak ada, kondisi tersebut *benar*. Logika ini berlaku untuk semua operator kondisi kecuali[... IfExists](#Conditions_IfExists)dan [cek Null](#Conditions_Null). Operator ini menguji apakah kuncinya ada (exists) dalam konteks permintaan.

Operator ketentuan dapat dikelompokkan ke dalam kategori berikut:
+ [Tali](#Conditions_String)
+ [Numerik](#Conditions_Numeric)
+ [Tanggal dan waktu](#Conditions_Date)
+ [Boolean](#Conditions_Boolean)
+ [Biner](#Conditions_BinaryEquals)
+ [Alamat IP](#Conditions_IPAddress)
+ [Amazon Resource Name (ARN)](#Conditions_ARN) (hanya tersedia untuk beberapa layanan.)
+ [... IfExists](#Conditions_IfExists)(memeriksa apakah nilai kunci ada sebagai bagian dari pemeriksaan lain)
+ [Pemeriksaan null](#Conditions_Null) (memeriksa apakah nilai kunci ada sebagai cek mandiri)

## Operator ketentuan string
<a name="Conditions_String"></a>

Operator ketentuan string memungkinkan Anda membangun elemen `Condition` yang membatasi akses berdasarkan perbandingan kunci ke nilai string.
+  **Variabel kebijakan** - [Didukung](reference_policies_variables.md)
+ **Wildcard** [- Didukung](#Conditions_String-wildcard)


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `StringEquals`   |  Kecocokan yang tepat, peka terhadap huruf besar-kecil  | 
|   `StringNotEquals`   |  Pencocokan dinegasikan  | 
|   `StringEqualsIgnoreCase`   |  Pencocokan yang tepat, mengabaikan huruf besar-kecil  | 
|   `StringNotEqualsIgnoreCase`   |  Pencocokan yang dinegasikan, mengabaikan huruf besar-kecil  | 
|   `StringLike`   | Kecocokan kepekaan huruf besar-kecil. Nilainya dapat mencakup wildcard pencocokan multi-karakter (\$1) dan wildcard pencocokan karakter tunggal (?) di mana saja di string. Anda harus menentukan wildcard untuk mencapai kecocokan string paral.   Jika kunci berisi beberapa nilai, `StringLike` dapat dikualifikasikan dengan operator yang ditetapkan— `ForAllValues:StringLike` dan`ForAnyValue:StringLike`. Untuk informasi selengkapnya, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).   | 
|   `StringNotLike`   |  Kecocokan dinegasikan kepekaan huruf besar-kecil. Nilai dapat mencakup wildcard pencocokan multi-karakter (\$1) atau wildcard pencocokan karakter tunggal (?) di mana saja di string.  | 

**Example operator kondisi string**  
Misalnya, pernyataan berikut berisi `Condition` elemen yang menggunakan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)kunci untuk menentukan bahwa prinsipal yang membuat permintaan harus ditandai dengan kategori `iamuser-admin` pekerjaan.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalTag/job-category": "iamuser-admin"
            }
        }
    }
}
```
Jika kunci yang Anda sebutkan dalam ketentuan kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok. Dalam contoh ini, kunci `aws:PrincipalTag/job-category` ada dalam konteks permintaan jika prinsipnya menggunakan pengguna IAM dengan tag terlampir. Juga disertakan untuk prinsipal menggunakan IAM role dengan tanda terlampir atau tanda sesi. Jika pengguna tanpa tanda mencoba melihat atau mengedit access key, ketentuan akan kembali `false` dan permintaan tersebut ditolak secara tersirat oleh pernyataan ini.  
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi Kebijakan | Konteks Permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – iamuser-admin</pre>  |  Pertandingan | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  | <pre>aws:PrincipalTag/job-category:<br />  – dev-ops</pre>  | Tidak ada kecocokan | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/job-category": "iamuser-admin"<br />}</pre>  |  Tidak `aws:PrincipalTag/job-category` dalam konteks permintaan.  | Tidak ada kecocokan | 

**Example menggunakan variabel kebijakan dengan operator kondisi string**  
Contoh berikut menggunakan operator ketentuan `StringLike` untuk melakukan pencocokan string dengan [variabel kebijakan](reference_policies_variables.md) untuk membuat kebijakan yang memungkinkan pengguna IAM menggunakan konsol Amazon S3 untuk mengelola "direktori beranda"-nya sendiri dalam bucket Amazon S3. Kebijakan tersebut mengizinkan tindakan tertentu pada bucket S3 selama `s3:prefix` cocok dengan salah satu pola yang ditentukan.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "",
            "home/",
            "home/${aws:username}/"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
        "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
      ]
    }
  ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini untuk pengguna yang berbeda berdasarkan [aws:username](reference_policies_condition-keys.md#condition-keys-username) nilai dalam konteks permintaan.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  | <pre>aws:username:<br />  – martha_rivera</pre>  | <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/martha_rivera/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  <pre>aws:username:<br />  – nikki_wolf</pre>  |  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/nikki_wolf/"<br />  ]<br />}</pre>  | 
|  <pre>"StringLike": {<br />  "s3:prefix": [<br />    "home/",<br />    "home/${aws:username}/"<br />  ]<br />}</pre>  |  Tidak `aws:username` dalam konteks permintaan.  | Tidak ada kecocokan | 
Untuk contoh kebijakan yang menunjukkan cara menggunakan `Condition` elemen untuk membatasi akses ke sumber daya berdasarkan ID aplikasi dan ID pengguna untuk federasi OIDC, lihat. [Amazon S3: Memungkinkan pengguna Amazon Cognito mengakses objek di bucket mereka](reference_policies_examples_s3_cognito-bucket.md) 

### Operator kondisi string multivaluasi
<a name="conditions_string_multivalued"></a>

Jika kunci dalam permintaan berisi beberapa nilai, operator string dapat dikualifikasikan dengan operator set `ForAllValues` dan`ForAnyValue`. Untuk informasi selengkapnya tentang logika evaluasi beberapa kunci konteks atau nilai, lihat[Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operator ketentuan | Deskripsi | 
| --- | --- | 
|  `ForAllValues:StringEquals` `ForAllValues:StringEqualsIgnoreCase`  |  Semua nilai untuk kunci kondisi dalam permintaan harus cocok dengan setidaknya satu nilai dalam kebijakan Anda.  | 
|  `ForAnyValue:StringEquals` `ForAnyValue:StringEqualsIgnoreCase`  |  Setidaknya satu nilai kunci kondisi dalam permintaan harus cocok dengan salah satu nilai dalam kebijakan Anda.  | 
|  `ForAllValues:StringNotEquals` `ForAllValues:StringNotEqualsIgnoreCase`  |  Pencocokan yang dinegasikan. Tak satu pun dari nilai kunci konteks dalam permintaan dapat cocok dengan salah satu nilai kunci konteks dalam kebijakan Anda.  | 
|  `ForAnyValue:StringNotEquals` `ForAnyValue:StringNotEqualsIgnoreCase`  |  Pencocokan yang dinegasikan. Setidaknya satu nilai kunci konteks dalam permintaan TIDAK boleh cocok dengan nilai apa pun dalam kunci konteks dalam kebijakan Anda.  | 
|  `ForAllValues:StringLike`  |  Semua nilai untuk kunci kondisi dalam permintaan harus cocok dengan setidaknya satu nilai dalam kebijakan Anda.  | 
|  `ForAnyValue:StringLike`  |  Setidaknya satu nilai kunci kondisi dalam permintaan harus cocok dengan salah satu nilai dalam kebijakan Anda.  | 
|  `ForAllValues:StringNotLike`  |  Pencocokan yang dinegasikan. Tak satu pun dari nilai kunci konteks dalam permintaan dapat cocok dengan salah satu nilai kunci konteks dalam kebijakan Anda.  | 
|  `ForAnyValue:StringNotLike`  |  Pencocokan yang dinegasikan. Setidaknya satu nilai kunci konteks dalam permintaan TIDAK boleh cocok dengan nilai apa pun dalam kunci konteks dalam kebijakan Anda.  | 

**Example menggunakan `ForAnyValue` dengan operator kondisi string**  
Contoh ini menunjukkan cara Anda membuat kebijakan berbasis identitas yang memungkinkan penggunaan `CreateTags` tindakan Amazon EC2 untuk melampirkan tag ke instance. Saat Anda menggunakan`StringEqualsIgnoreCase`, Anda dapat melampirkan tag hanya jika tag berisi `environment` kunci dengan `preprod` atau `storage` nilai. Ketika Anda menambahkan `IgnoreCase` ke operator, Anda mengizinkan kapitalisasi nilai tag yang ada, seperti,, dan `preprod` `Preprod``PreProd`, untuk menyelesaikan ke true.  
Saat Anda menambahkan `ForAnyValue` pengubah dengan kunci [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) kondisi, setidaknya satu nilai kunci tag dalam permintaan harus cocok dengan nilainya`environment`. `ForAnyValue`perbandingan bersifat peka huruf besar/kecil, yang menghentikan pengguna menggunakan case yang salah untuk kunci tag, seperti menggunakan `Environment` alih-alih`environment`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "StringEqualsIgnoreCase": {
        "aws:RequestTag/environment": [
          "preprod",
          "storage"
        ]
      },
      "ForAnyValue:StringEquals": {
        "aws:TagKeys": "environment"
      }
    }
  }
}
```
 Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.   


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Pertandingan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – costcenter<br />aws:RequestTag/environment:<br />  – PreProd</pre>  | Pertandingan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – Environment<br />aws:RequestTag/Environment:<br />  – preprod</pre>  | Tidak ada kecocokan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – costcenter<br />aws:RequestTag/environment:<br />  – preprod</pre>  | Tidak ada kecocokan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Tidak `aws:TagKeys` dalam konteks permintaan. <pre>aws:RequestTag/environment:<br />  – storage</pre>  | Tidak ada kecocokan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre> Tidak `aws:RequestTag/environment` dalam konteks permintaan.  | Tidak ada kecocokan  | 
|  <pre>"StringEqualsIgnoreCase": {<br />  "aws:RequestTag/environment": [<br />    "preprod",<br />    "storage"<br />  ]<br />},<br />"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "environment"<br />}</pre>  |  Tidak `aws:TagKeys` dalam konteks permintaan. Tidak `aws:RequestTag/environment` dalam konteks permintaan.  | Tidak ada kecocokan  | 

### Pencocokan wildcard
<a name="Conditions_String-wildcard"></a>

Operator kondisi string melakukan pencocokan tanpa pola yang tidak menerapkan format yang telah ditentukan sebelumnya. ARN dan operator kondisi Tanggal adalah subset dari operator string yang menegakkan struktur pada nilai kunci kondisi.

Kami menyarankan Anda menggunakan operator kondisi yang sesuai dengan nilai yang Anda bandingkan kunci. Misalnya, Anda harus menggunakan [Operator ketentuan string](#Conditions_String) saat membandingkan kunci dengan nilai string. Demikian pula, Anda harus menggunakan [Operator ketentuan Amazon Resource Name (ARN)](#Conditions_ARN) saat membandingkan kunci dengan nilai ARN.

**Example**  
Contoh ini menunjukkan bagaimana Anda dapat membuat batas seputar sumber daya di organisasi Anda. Kondisi dalam kebijakan ini menolak akses ke tindakan Amazon S3 kecuali sumber daya yang diakses berada dalam kumpulan unit organisasi OUs () tertentu di. AWS Organizations AWS Organizations Path adalah representasi teks dari struktur entitas organisasi.  
Kondisi mengharuskan yang `aws:ResourceOrgPaths` berisi salah satu jalur OU yang terdaftar. Karena `aws:ResourceOrgPaths` merupakan kondisi multi-nilai, kebijakan menggunakan `ForAllValues:StringNotLike` operator untuk membandingkan nilai `aws:ResourceOrgPaths` dengan daftar OUs dalam kebijakan.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:ResourceOrgPaths": [
            "o-acorg/r-acroot/ou-acroot-mediaou/",
            "o-acorg/r-acroot/ou-acroot-sportsou/*"
          ] 
        }
      }
    }
  ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-sportsou/costcenter/</pre>  | Pertandingan | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  | <pre>aws:ResourceOrgPaths:<br />  – o-acorg/r-acroot/ou-acroot-mediaou/costcenter/</pre>  | Tidak ada kecocokan | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:ResourceOrgPaths": [<br />    "o-acorg/r-acroot/ou-acroot-mediaou/",<br />    "o-acorg/r-acroot/ou-acroot-sportsou/*"<br />  ] <br />}</pre>  |  Tidak `aws:ResourceOrgPaths:` dalam permintaan.  | Tidak ada kecocokan | 

## Operator ketentuan numerik
<a name="Conditions_Numeric"></a>

Operator ketentuan numerik memungkinkan Anda membangun elemen `Condition` yang membatasi akses berdasarkan perbandingan kunci ke nilai bilangan bulat atau desimal.
+  **Variabel kebijakan** - Tidak didukung
+ **Wildcard** - Tidak didukung


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `NumericEquals`   |  Pencocokan  | 
|   `NumericNotEquals`   |  Pencocokan dinegasikan  | 
|   `NumericLessThan`   |  Pencocokan “Kurang dari”  | 
|   `NumericLessThanEquals`   |  Pencocokan “kurang dari atau sama dengan”  | 
|   `NumericGreaterThan`   |  Pencocokan “lebih besar dari”  | 
|   `NumericGreaterThanEquals`   |  Pencocokan “lebih besar dari atau sama dengan”  | 

Misalnya, pernyataan berikut memuat elemen `Condition` yang menggunakan operator ketentuan `NumericLessThanEquals` dengan kunci `s3:max-keys` untuk menentukan bahwa pemohon dapat membuat daftar *hingga* 10 objek dalam `amzn-s3-demo-bucket` sekali waktu.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {"NumericLessThanEquals": {"s3:max-keys": "10"}}
  }
}
```

------

Jika kunci yang Anda sebutkan dalam ketentuan kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok. Dalam contoh ini, kunci `s3:max-keys` selalu hadir dalam permintaan saat Anda melakukan operasi `ListBucket`. Jika kebijakan ini mengizinkan semua operasi Amazon S3 maka hanya operasi yang mencakup kunci konteks `max-keys` yang bernilai kurang dari atau sama dengan 10 akan diperbolehkan. 

## Operator ketentuan tanggal
<a name="Conditions_Date"></a>

Operator kondisi tanggal memungkinkan Anda membangun `Condition` elemen yang membatasi akses berdasarkan membandingkan kunci dengan nilai. date/time Anda menggunakan operator kondisi ini dengan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime)kunci atau [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime)kunci. Anda harus menentukan date/time nilai dengan salah satu [implementasi W3C dari format tanggal ISO 8601](http://www.w3.org/TR/NOTE-datetime) atau dalam waktu epoch (UNIX). 
+  **Variabel kebijakan** - Tidak didukung
+ **Wildcard** - Tidak didukung


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `DateEquals`   |  Mencocokkan tanggal tertentu  | 
|   `DateNotEquals`   |  Pencocokan dinegasikan  | 
|   `DateLessThan`   |  Sesuai sebelum tanggal dan waktu tertentu  | 
|   `DateLessThanEquals`   |  Sesuai pada atau sebelum tanggal dan waktu tertentu  | 
|   `DateGreaterThan`   |  Sesuai setelah tanggal dan waktu tertentu  | 
|   `DateGreaterThanEquals`   |  Sesuai pada atau setelah tanggal dan waktu tertentu  | 

Misalnya, pernyataan berikut memuat elemen `Condition` yang menggunakan operator ketentuan `DateGreaterThan` dengan kunci [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime). Ketentuan ini menyebutkan bahwa kredensial keamanan sementara yang digunakan untuk membuat permintaan tersebut diterbitkan pada 2020. Kebijakan ini dapat secara terprogram diperbarui setiap hari untuk memastikan anggota akun menggunakan kredensial baru.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "DateGreaterThan": {
                "aws:TokenIssueTime": "2020-01-01T00:00:01Z"
            }
        }
    }
}
```

------

Jika kunci yang Anda sebutkan dalam ketentuan kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok. Kunci `aws:TokenIssueTime` tersedia dalam konteks permintaan hanya ketika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kuncinya tidak ada dalam AWS CLI, AWS API, atau permintaan AWS SDK yang dibuat menggunakan kunci akses. Dalam contoh ini, jika pengguna IAM mencoba untuk melihat atau mengedit kunci akses, permintaan ditolak.

## Operator ketentuan Boolean
<a name="Conditions_Boolean"></a>

Kondisi Boolean memungkinkan Anda membangun `Condition` elemen yang membatasi akses berdasarkan membandingkan kunci ke atau. `true` `false`

Jika kunci berisi beberapa nilai, operator boolean dapat memenuhi syarat dengan operator set `ForAllValues` dan`ForAnyValue`. Untuk informasi selengkapnya tentang logika evaluasi beberapa kunci konteks atau nilai, lihat[Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).
+  **Variabel kebijakan** - [Didukung](reference_policies_variables.md)
+ **Wildcard** - Tidak didukung


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `Bool`   |  Pencocokan Boolean  | 
|   `ForAllValues:Bool`   |  Gunakan dengan Array tipe data Bool. Semua boolean dalam nilai kunci konteks harus cocok dengan nilai boolean dalam kebijakan Anda. Untuk mencegah `ForAllValues` operator mengevaluasi kunci konteks atau kunci konteks yang hilang dengan nilai kosong sebagai Diizinkan, Anda dapat menyertakan [operator kondisi Null dalam kebijakan](#Conditions_Null) Anda.  | 
|   `ForAnyValue:Bool`   |  Gunakan dengan Array tipe data Bool. Setidaknya salah satu boolean dalam nilai kunci konteks harus cocok dengan nilai boolean dalam kebijakan Anda.  | 

**Example operator kondisi boolean**  
Kebijakan berbasis identitas berikut menggunakan operator `Bool` kondisi dengan [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport)kunci untuk menolak mereplikasi objek dan tag objek ke bucket tujuan dan isinya jika permintaan tidak melalui SSL.  
Kebijakan ini tidak mengizinkan tindakan apa pun. Gunakan kebijakan ini bersama dengan kebijakan lain yang mengizinkan tindakan tertentu.   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "BooleanExample",
      "Action": "s3:ReplicateObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket",
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – false</pre>  | Pertandingan | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  | <pre>aws:SecureTransport:<br />  – true</pre>  | Tidak ada kecocokan | 
|  <pre>"Bool": {<br />  "aws:SecureTransport": "false"<br />}</pre>  |  Tidak `aws:SecureTransport` dalam konteks permintaan.  | Tidak ada kecocokan | 

## Operator ketentuan biner
<a name="Conditions_BinaryEquals"></a>

Operator `BinaryEquals` kondisi memungkinkan Anda membangun `Condition` elemen yang menguji nilai kunci yang ada dalam format biner. Ini membandingkan nilai dari byte kunci yang ditentukan untuk byte terhadap perwakilan terkode [base-64](https://en.wikipedia.org/wiki/Base64) dari nilai biner di dalam kebijakan. Jika kunci yang Anda sebutkan dalam ketentuan kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok.
+  **Variabel kebijakan** - Tidak didukung
+ **Wildcard** - Tidak didukung

```
"Condition" : {
  "BinaryEquals": {
    "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="
  }
}
```


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – QmluYXJ5VmFsdWVJbkJhc2U2NA==</pre>  | Pertandingan | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  | <pre>key:<br />  – ASIAIOSFODNN7EXAMPLE</pre>  | Tidak ada kecocokan | 
|  <pre>"BinaryEquals": {<br />  "key" : "QmluYXJ5VmFsdWVJbkJhc2U2NA=="<br />}</pre>  |  Tidak `key` dalam konteks permintaan.  | Tidak ada kecocokan | 

## Operator ketentuan alamat IP
<a name="Conditions_IPAddress"></a>

Operator kondisi alamat IP memungkinkan Anda membangun `Condition` elemen yang membatasi akses berdasarkan membandingkan kunci dengan IPv4 atau IPv6 alamat atau rentang alamat IP. Anda menggunakan ini dengan kunci [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip). Nilai harus dalam format CIDR standar (misalnya, 203.0.113.0/24 atau 2001:: 1234:5678: :/64). DB8 Jika Anda menentukan alamat IP tanpa prefiks perutean yang terkait, IAM menggunakan nilai prefiks default dari `/32`.

Beberapa AWS layanan mendukung IPv6, menggunakan:: untuk mewakili rentang 0. Untuk mempelajari apakah suatu layanan mendukung IPv6, lihat dokumentasi untuk layanan tersebut.
+  **Variabel kebijakan** - Tidak didukung
+ **Wildcard** - Tidak didukung


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `IpAddress`   |  Alamat IP atau rentang yang ditentukan  | 
|   `NotIpAddress`   |  Semua alamat IP kecuali alamat dan rentang IP yang ditentukan  | 

**Example Operator kondisi alamat IP**  
Pernyataan berikut menggunakan operator `IpAddress` kondisi dengan `aws:SourceIp` kunci untuk menentukan bahwa permintaan harus berasal dari rentang IP 203.0.113.0 hingga 203.0.113.255.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "203.0.113.0/24"
            }
        }
    }
}
```
Kunci kondisi `aws:SourceIp` menyelesaikan ke alamat IP yang berasal dari permintaan asli. Jika permintaan berasal dari instans Amazon EC2, `aws:SourceIp` mengevaluasi alamat IP publik instans.   
Jika kunci yang Anda sebutkan dalam ketentuan kebijakan tidak ada dalam konteks permintaan, nilainya tidak cocok. Kunci `aws:SourceIp` selalu ada dalam konteks permintaan, kecuali saat pemohon menggunakan VPC endpoint untuk membuat permintaan. Dalam hal ini, ketentuan mengembalikan `false` dan permintaan tersebut ditolak secara tersirat oleh pernyataan ini.  
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 203.0.113.1</pre>  | Pertandingan | 
|  <pre>"IpAddress": {<br />  "aws:SourceIp": "203.0.113.0/24"<br />}</pre>  | <pre>aws:SourceIp:<br />  – 198.51.100.1</pre>  | Tidak ada kecocokan | 
Contoh berikut menunjukkan cara mencampur IPv4 dan IPv6 alamat untuk mencakup semua alamat IP valid organisasi Anda. Kami menyarankan agar Anda memperbarui kebijakan organisasi Anda dengan rentang IPv6 alamat Anda selain IPv4 rentang yang sudah Anda miliki untuk memastikan kebijakan terus berfungsi saat Anda melakukan transisi IPv6.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "someservice:*",
    "Resource": "*",
    "Condition": {
      "IpAddress": {
        "aws:SourceIp": [
          "203.0.113.0/24",
          "2001:DB8:1234:5678::/64"
        ]
      }
    }
  }
}
```
Kunci kondisi `aws:SourceIp` hanya berfungsi dalam kebijakan JSON jika Anda menghubungi API yang diuji secara langsung sebagai pengguna. Jika Anda menggunakan layanan untuk menelepon layanan target atas nama Anda, layanan target akan melihat alamat IP layanan panggilan, bukan alamat IP pengguna asal. Ini dapat terjadi, misalnya, jika Anda menggunakan AWS CloudFormation untuk memanggil Amazon EC2 untuk membuat instance untuk Anda. Saat ini tidak ada cara untuk menyampaikan alamat IP asal melalui layanan panggilan ke layanan target untuk evaluasi di kebijakan JSON. Untuk tipe panggilan API layanan ini, jangan gunakan kunci kondisi `aws:SourceIp`.

## Operator ketentuan Amazon Resource Name (ARN)
<a name="Conditions_ARN"></a>

Operator ketentuan Amazon Resource Name (ARN) memungkinkan Anda membangun elemen `Condition` yang membatasi akses berdasarkan perbandingan kunci ke ARN. ARN dianggap sebagai string.
+  **Variabel kebijakan** - [Didukung](reference_policies_variables.md)
+ **Wildcard** [- Didukung](reference_policies_elements_resource.md#reference_policies_elements_resource_wildcards)


****  

| Operator ketentuan | Deskripsi | 
| --- | --- | 
|   `ArnEquals`, `ArnLike`  |  Kecocokan huruf besar-kecil dari ARN. Masing-masing dari enam komponen ARN yang dibatasi titik dua diperiksa secara terpisah dan masing-masing dapat menyertakan wildcard pencocokan multi-karakter (\$1) atau wildcard pencocokan karakter tunggal (?). Operator `ArnEquals` dan `ArnLike` kondisi berperilaku identik.  | 
|   `ArnNotEquals`, `ArnNotLike`  |  Pencocokan negasi untuk ARN. Operator `ArnNotEquals` dan `ArnNotLike` kondisi berperilaku identik.  | 

**Example Operator kondisi ARN**  
Contoh kebijakan berbasis sumber daya berikut ini menunjukkan kebijakan yang terlampir pada antrean Amazon SQS di mana Anda ingin mengirimkan pesan SNS. Ini memberi izin Amazon SNS untuk mengirimkan pesan ke antrean (atau antrean-antrean) pilihan Anda, tetapi hanya jika layanan tersebut mengirimkan pesan atas nama topik (atau topik) Amazon SNS tertentu. Anda menentukan antrean di bidang `Resource`, dan topik Amazon SNS sebagai nilai untuk kunci `SourceArn`.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": {
            "Service": "sns.amazonaws.com"
        },
        "Action": "SQS:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:123456789012:QUEUE-ID",
        "Condition": {
            "ArnEquals": {
                "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:TOPIC-ID"
            }
        }
    }
}
```
Kunci [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) muncul dalam konteks permintaan hanya jika sumber daya memicu layanan untuk menghubungi layanan lain atas nama pemilik sumber daya. Jika pengguna IAM mencoba melakukan operasi ini secara langsung, ketentuan akan kembali `false` dan permintaan tersebut ditolak secara tersirat oleh pernyataan ini.  
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:123456789012:TOPIC-ID</pre>  | Pertandingan | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  | <pre>aws:SourceArn:<br />  – arn:aws:sns:us-west-2:777788889999:TOPIC-ID</pre>  | Tidak ada kecocokan | 
|  <pre>"ArnEquals": {<br />  "aws:SourceArn": "arn:aws:sns:us-west-2:123456789012:TOPIC-ID"<br />}</pre>  |  Tidak `aws:SourceArn` dalam konteks permintaan.  | Tidak ada kecocokan | 

### Operator kondisi ARN multivaluasi
<a name="conditions_arn_multivalued"></a>

Jika kunci dalam permintaan berisi beberapa nilai, operator ARN dapat memenuhi syarat dengan operator yang ditetapkan dan. `ForAllValues` `ForAnyValue` Untuk informasi selengkapnya tentang logika evaluasi beberapa kunci konteks atau nilai, lihat[Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Operator ketentuan | Deskripsi | 
| --- | --- | 
|  `ForAllValues:ArnEquals` `ForAllValues:ArnLike`  |  Semua ARNs dalam konteks permintaan harus cocok setidaknya satu dari pola ARN dalam kebijakan Anda.  | 
|  `ForAnyValue:ArnEquals` `ForAnyValue:ArnLike`  |  Setidaknya satu ARN dalam konteks permintaan harus cocok dengan salah satu pola ARN dalam kebijakan Anda.  | 
|  `ForAllValues:ArnNotEquals` `ForAllValues:ArnNotLike`  |  Pencocokan yang dinegasikan. Tak satu pun ARNs dalam konteks permintaan dapat mencocokkan pola ARN string apa pun dalam kebijakan Anda.  | 
|  `ForAnyValue:ArnNotEquals` `ForAnyValue:ArnNotLike`  |  Pencocokan yang dinegasikan. Setidaknya satu ARN dalam konteks permintaan TIDAK boleh cocok dengan pola ARN mana pun dalam kebijakan Anda.  | 

**Example menggunakan `ForAllValues` dengan operator kondisi ARN**  
Contoh berikut digunakan `ForAllValues:ArnLike` untuk membuat atau memperbarui sumber pengiriman logis untuk CloudWatch log Amazon Logs. Blok kondisi menyertakan kunci kondisi [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html#amazoncloudwatchlogs-policy-keys)untuk memfilter sumber daya pembangkit log yang ARNs diteruskan dalam permintaan. Dengan menggunakan operator kondisi ini, semua permintaan harus cocok dengan setidaknya satu ARN dalam polis. ARNs     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "logs:PutDeliverySource",
            "Resource": "arn:aws:logs:us-east-1:123456789012:delivery-source:*",
            "Condition": {
                "ForAllValues:ArnLike": {
                    "logs:LogGeneratingResourceArns": [
                        "arn:aws:cloudfront::123456789012:distribution/*",
                        "arn:aws:cloudfront::123456789012:distribution/support*"
                    ]
                }
            }
        }
    ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.  


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter</pre>  | Pertandingan | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/support2025</pre>  | Pertandingan | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:123456789012:distribution/costcenter<br />  – arn:aws::cloudfront:123456789012:distribution/admin</pre>  | Tidak ada kecocokan | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  | <pre>logs:LogGeneratingResourceArns:<br />  – arn:aws::cloudfront:777788889999:distribution/costcenter</pre>  | Tidak ada kecocokan | 
|  <pre>"ForAllValues:ArnLike": {<br />  "logs:LogGeneratingResourceArns": [<br />    "arn:aws::cloudfront:123456789012:distribution/*",<br />    "arn:aws::cloudfront:123456789012:distribution/support*"<br />  ]<br />}</pre>  |  Tidak `logs:LogGeneratingResourceArns` dalam konteks permintaan.  | Pertandingan  | 
`ForAllValues`Qualifier mengembalikan true jika tidak ada kunci konteks dalam permintaan atau jika nilai kunci konteks menyelesaikan ke dataset null, seperti string kosong. Untuk mencegah kunci konteks atau kunci konteks yang hilang dengan nilai kosong dievaluasi menjadi true, Anda dapat menyertakan [operator kondisi Null](#Conditions_Null) dalam kebijakan Anda dengan `false` nilai untuk memeriksa apakah kunci konteks ada dan nilainya bukan null.

## ... IfExists operator kondisi
<a name="Conditions_IfExists"></a>

Anda dapat menambahkan `IfExists` ke akhir nama operator kondisi apa pun kecuali `Null` kondisi—misalnya,. `StringLikeIfExists` Anda melakukan ini untuk mengatakan “Jika kunci kondisi hadir dalam konteks permintaan, proses kunci seperti yang ditentukan dalam kebijakan. Jika kuncinya tidak ada, evaluasi elemen ketentuan sebagai benar." Elemen ketentuan lain dalam pernyataan ini masih dapat menghasilkan ketidakcocokkan, tetapi bukan kunci yang hilang saat diperiksa dengan `...IfExists`. Jika Anda menggunakan `"Effect": "Deny"` elemen dengan operator kondisi yang dinegasikan seperti`StringNotEqualsIfExists`, permintaan masih ditolak meskipun kunci kondisi tidak ada.

**Contoh menggunakan `IfExists`**

Banyak kunci kondisi menjelaskan informasi tentang tipe sumber daya tertentu dan hanya ada ketika mengakses tipe sumber daya tersebut. Kunci kepatuhan ini tidak ada pada tipe sumber daya lainnya. Hal ini tidak menyebabkan masalah ketika pernyataan kebijakan berlaku hanya pada satu tipe sumber daya. Namun, ada kasus ketika pernyataan tunggal dapat berlaku untuk beberapa tipe sumber daya, seperti ketika pernyataan kebijakan merujuk tindakan dari beberapa layanan atau ketika tindakan tertentu dalam layanan mengakses beberapa tipe sumber daya yang berbeda dalam layanan yang sama. Dalam kasus seperti itu, termasuk kunci kepatuhan yang berlaku hanya pada salah satu sumber daya dalam pernyataan kebijakan dapat menyebabkan elemen `Condition` dalam pernyataan kebijakan gagal sehingga pernyataan `"Effect"` tidak berlaku.

Misalnya, pertimbangkan contoh kebijakan berikut ini:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "THISPOLICYDOESNOTWORK",
    "Effect": "Allow",
    "Action": "ec2:RunInstances",
    "Resource": "*",
    "Condition": {"StringLike": {"ec2:InstanceType": [
      "t1.*",
      "t2.*",
      "m3.*"
    ]}}
  }
}
```

------

*Maksud* dari kebijakan sebelumnya adalah untuk memungkinkan pengguna meluncurkan instance apa pun yang bertipe`t1`, atau. `t2` `m3` Namun, meluncurkan instance memerlukan akses banyak sumber daya selain instance itu sendiri; misalnya, gambar, pasangan kunci, grup keamanan, dan banyak lagi. Keseluruhan pernyataan dievaluasi terhadap setiap sumber daya yang diperlukan untuk meluncurkan instans. Sumber daya tambahan ini tidak memiliki kunci kondisi `ec2:InstanceType`, jadi `StringLike` gagal diperiksa, dan pengguna tidak diberi kemampuan untuk meluncurkan tipe instans *mana pun*. 

Untuk mengatasi ini, gunakan operator ketentuan `StringLikeIfExists`. Dengan cara ini, pengujian hanya terjadi jika terdapat kunci kondisi. Anda dapat membaca kebijakan berikut sebagai: “Jika sumber daya yang diperiksa memiliki kunci kondisi`ec2:InstanceType`" ", maka izinkan tindakan hanya jika nilai kunci dimulai dengan`t1.`,`t2.`, atau`m3.`. Jika sumber daya yang diperiksa tidak memiliki kunci kondisi itu, jangan khawatir tentang hal tersebut.” Tanda bintang (\$1) dalam nilai kunci kondisi, bila digunakan dengan operator `StringLikeIfExists` kondisi, ditafsirkan sebagai wildcard untuk mencapai kecocokan string paral. Pernyataan `DescribeActions` mencakup tindakan yang diperlukan untuk melihat instans di konsol.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RunInstance",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "StringLikeIfExists": {
          "ec2:InstanceType": [
            "t1.*",
            "t2.*",
            "m3.*"
          ]
        }
      }
    },
    {
      "Sid": "DescribeActions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeVpcs",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – t1.micro</pre>  | Pertandingan | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  | <pre>ec2:InstanceType:<br />  – m2.micro</pre>  | Tidak ada kecocokan | 
|  <pre>"StringLikeIfExists": {<br />  "ec2:InstanceType": [<br />    "t1.*",<br />    "t2.*",<br />    "m3.*"<br />  ]<br />}</pre>  |  Tidak `ec2:InstanceType` dalam konteks permintaan.  | Pertandingan | 

## Operator ketentuan memeriksa keberadaan kunci kondisi
<a name="Conditions_Null"></a>

Gunakan operator `Null` kondisi untuk memeriksa apakah kunci kondisi tidak ada pada saat otorisasi. Dalam pernyataan kebijakan, gunakan `true` (kuncinya tidak ada — yaitu null) atau `false` (kunci ada dan nilainya tidak null).

Anda tidak dapat menggunakan [variabel kebijakan](reference_policies_variables.md) dengan operator ketentuan `Null`.

Misalnya, Anda dapat menggunakan operator kondisi ini untuk menentukan apakah pengguna menggunakan kredensyal sementara atau kredensialnya sendiri untuk membuat permintaan. Jika pengguna menggunakan kredensial sementara, maka kuncinya `aws:TokenIssueTime` ada dan memiliki nilai. Contoh berikut menunjukkan kondisi yang menyatakan bahwa pengguna harus menggunakan kredensyal sementara (kunci tidak boleh absen) bagi pengguna untuk menggunakan Amazon EC2 API.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":{
      "Action":"ec2:*",
      "Effect":"Allow",
      "Resource":"*",
      "Condition":{"Null":{"aws:TokenIssueTime":"false"}}
  }
}
```

------

# Kondisi dengan beberapa kunci konteks atau nilai
<a name="reference_policies_condition-logic-multiple-context-keys-or-values"></a>

Anda dapat menggunakan `Condition` elemen kebijakan untuk menguji beberapa kunci konteks atau beberapa nilai untuk satu kunci konteks dalam permintaan. Saat Anda mengajukan permintaan AWS, baik secara terprogram atau melalui Konsol Manajemen AWS, permintaan Anda mencakup informasi tentang prinsipal, operasi, tag, dan lainnya. Anda dapat menggunakan kunci konteks untuk menguji nilai kunci konteks yang cocok dalam permintaan, dengan kunci konteks yang ditentukan dalam kondisi kebijakan. Untuk mempelajari informasi dan data yang disertakan dalam permintaan, lihat [Konteks permintaan](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext).

**Topics**
+ [Logika evaluasi untuk beberapa kunci konteks atau nilai](#reference_policies_multiple-conditions-eval)
+ [Logika evaluasi untuk operator kondisi pencocokan yang dinegasikan](#reference_policies_multiple-conditions-negated-matching-eval)

## Logika evaluasi untuk beberapa kunci konteks atau nilai
<a name="reference_policies_multiple-conditions-eval"></a>

Sebuah `Condition` elemen dapat berisi beberapa operator kondisi, dan setiap operator kondisi dapat berisi beberapa pasangan kunci-nilai konteks. Sebagian besar kunci konteks mendukung penggunaan beberapa nilai, kecuali ditentukan lain.
+ Jika pernyataan kebijakan Anda memiliki beberapa [operator kondisi](reference_policies_elements_condition_operators.md), operator kondisi dievaluasi menggunakan logika`AND`.
+ Jika pernyataan kebijakan Anda memiliki beberapa kunci konteks yang dilampirkan ke satu operator kondisi, kunci konteks dievaluasi menggunakan logika`AND`.
+ Jika operator kondisi tunggal menyertakan beberapa nilai untuk kunci konteks, nilai-nilai tersebut dievaluasi menggunakan logika`OR`.
+ Jika operator kondisi pencocokan dinegasikan tunggal menyertakan beberapa nilai untuk kunci konteks, nilai-nilai tersebut dievaluasi menggunakan logika. `NOR` 

Semua kunci konteks dalam blok elemen kondisi harus menyelesaikan ke true untuk memanggil yang diinginkan `Allow` atau `Deny` efek. Gambar berikut mengilustrasikan logika evaluasi untuk suatu kondisi dengan beberapa operator kondisi dan pasangan kunci-nilai konteks.

![\[Blok kondisi yang menunjukkan bagaimana AND dan OR diterapkan ke beberapa kunci konteks dan nilai\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_2.diagram.png)


Misalnya, kebijakan bucket S3 berikut menggambarkan bagaimana gambar sebelumnya direpresentasikan dalam kebijakan. Blok kondisi mencakup operator kondisi `StringEquals` dan`ArnLike`, dan kunci konteks `aws:PrincipalTag` dan`aws:PrincipalArn`. Untuk memanggil yang diinginkan `Allow` atau `Deny` efek, semua kunci konteks di blok kondisi harus diselesaikan ke true. Pengguna yang membuat permintaan harus memiliki kunci tag utama, *departemen*, dan *peran*, yang menyertakan salah satu nilai kunci tag yang ditentukan dalam kebijakan. Selain itu, ARN utama pengguna yang membuat permintaan harus cocok dengan salah satu `aws:PrincipalArn` nilai yang ditentukan dalam kebijakan untuk dievaluasi sebagai benar.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi Kebijakan | Konteks Permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn: <br />  arn:aws:iam::222222222222:user/Mary</pre>  |  **Pertandingan** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Tidak cocok** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Tidak cocok** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  |  Tidak `aws:PrincipalTag/role` dalam konteks permintaan. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Tidak cocok**  | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Tidak `aws:PrincipalTag` dalam konteks permintaan. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Tidak cocok**  | 

## Logika evaluasi untuk operator kondisi pencocokan yang dinegasikan
<a name="reference_policies_multiple-conditions-negated-matching-eval"></a>

Beberapa [operator kondisi,](reference_policies_elements_condition_operators.md) seperti `StringNotEquals` atau`ArnNotLike`, menggunakan pencocokan yang dinegasikan untuk membandingkan pasangan nilai kunci konteks dalam kebijakan Anda dengan pasangan nilai kunci konteks dalam permintaan. Ketika beberapa nilai ditentukan untuk satu kunci konteks dalam kebijakan dengan operator kondisi pencocokan yang dinegasikan, izin efektif berfungsi seperti logika. `NOR` Dalam pencocokan yang dinegasikan, logis `NOR` atau `NOT OR` mengembalikan nilai true hanya jika semua nilai dievaluasi menjadi false.

Gambar berikut mengilustrasikan logika evaluasi untuk suatu kondisi dengan beberapa operator kondisi dan pasangan kunci-nilai konteks. Angka tersebut mencakup operator kondisi pencocokan yang dinegasikan untuk kunci konteks 3.

![\[Blok kondisi yang menunjukkan bagaimana AND dan OR diterapkan ke beberapa kunci konteks dan nilai saat operator kondisi pencocokan dinegasikan digunakan\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/AccessPolicyLanguage_Condition_Block_AND_Negated_NOR_2.diagram.png)


Misalnya, kebijakan bucket S3 berikut menggambarkan bagaimana gambar sebelumnya direpresentasikan dalam kebijakan. Blok kondisi mencakup operator kondisi `StringEquals` dan`ArnNotLike`, dan kunci konteks `aws:PrincipalTag` dan`aws:PrincipalArn`. Untuk memanggil yang diinginkan `Allow` atau `Deny` efek, semua kunci konteks di blok kondisi harus diselesaikan ke true. Pengguna yang membuat permintaan harus memiliki kunci tag utama, *departemen*, dan *peran*, yang menyertakan salah satu nilai kunci tag yang ditentukan dalam kebijakan. Karena operator `ArnNotLike` kondisi menggunakan pencocokan yang dinegasikan, ARN utama pengguna yang membuat permintaan tidak boleh cocok dengan nilai yang `aws:PrincipalArn` ditentukan dalam kebijakan yang akan dievaluasi sebagai true.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ExamplePolicy",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::222222222222:root"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": [
            "finance",
            "hr",
            "legal"
          ],
          "aws:PrincipalTag/role": [
            "audit",
            "security"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::222222222222:user/Ana",
            "arn:aws:iam::222222222222:user/Mary"
          ]
        }
      }
    }
  ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi Kebijakan | Konteks Permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: legal<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki<br /></pre>  |  **Pertandingan** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: audit<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Mary</pre>  | **Tidak cocok** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalTag/role: payroll<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Tidak cocok** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | >Tidak `aws:PrincipalTag/role` dalam konteks permintaan. <pre>aws:PrincipalTag/department: hr<br />aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Tidak cocok** | 
|  <pre>"StringEquals": {<br />  "aws:PrincipalTag/department": [<br />    "finance",<br />    "hr",<br />    "legal"<br />  ],<br />  "aws:PrincipalTag/role": [<br />    "audit",<br />    "security"<br />  ]<br />},<br />"ArnNotLike": {<br />  "aws:PrincipalArn": [<br />      "arn:aws:iam::222222222222:user/Ana",<br />      "arn:aws:iam::222222222222:user/Mary"<br />  ]<br />}</pre>  | Tidak `aws:PrincipalTag` dalam konteks permintaan. <pre>aws:PrincipalArn:<br />  arn:aws:iam::222222222222:user/Nikki</pre>  | **Tidak cocok**  | 

# Kunci konteks bernilai tunggal vs. multivaluasi
<a name="reference_policies_condition-single-vs-multi-valued-context-keys"></a>

Perbedaan antara kunci konteks bernilai tunggal dan multivalued terletak pada jumlah nilai dalam [konteks permintaan](intro-structure.md#intro-structure-request), bukan jumlah nilai dalam kondisi kebijakan.
+ Kunci konteks kondisi *bernilai tunggal* memiliki paling banyak satu nilai dalam konteks permintaan. Misalnya, saat Anda menandai sumber daya AWS, setiap tag sumber daya disimpan sebagai pasangan nilai kunci. Karena kunci tag sumber daya hanya dapat memiliki satu nilai tag, [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) adalah kunci konteks bernilai tunggal. Jangan gunakan operator set kondisi dengan kunci konteks bernilai tunggal.
+ Kunci konteks kondisi *multivalued* dapat memiliki beberapa nilai dalam konteks permintaan. Misalnya, saat Anda menandai sumber daya AWS, Anda dapat menyertakan beberapa pasangan nilai kunci tag dalam satu permintaan. Oleh karena itu, [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) adalah kunci konteks multivalued. Kunci konteks multivaluasi memerlukan operator set kondisi.

Misalnya, permintaan dapat berasal dari paling banyak satu titik akhir VPC, [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) begitu juga kunci konteks bernilai tunggal. Karena layanan dapat memiliki lebih dari satu nama utama layanan yang dimiliki oleh layanan, [aws:PrincipalServiceNamesList](reference_policies_condition-keys.md#condition-keys-principalservicenameslist) adalah kunci konteks multivalued.

**penting**  
Perbedaan antara kunci konteks bernilai tunggal dan multivalued tergantung pada jumlah nilai dalam konteks permintaan, bukan jumlah nilai dalam kondisi kebijakan.

## Poin kunci
<a name="reference_policies_condition-key-points"></a>
+ Klasifikasi *Single-valued* dan *Multivalued* disertakan dalam deskripsi setiap kunci konteks kondisi sebagai *tipe Nilai* dalam topik. [AWS kunci konteks kondisi global](reference_policies_condition-keys.md)
+ Kunci konteks multivaluasi dalam [Referensi Otorisasi Layanan](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) menggunakan `ArrayOf` awalan yang diikuti oleh jenis kategori operator kondisi, seperti `ArrayOfString` atau`ArrayOfARN`, yang menunjukkan bahwa permintaan tersebut dapat menyertakan beberapa nilai untuk kunci konteks kondisi.
+ Anda dapat menggunakan kunci konteks bernilai tunggal yang tersedia sebagai variabel kebijakan, tetapi Anda tidak dapat menggunakan kunci konteks multivaluasi sebagai variabel kebijakan. Untuk informasi lebih lanjut tentang variabel-variable kebijakan, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).
+ Saat menggunakan kunci konteks yang menyertakan pasangan kunci-nilai, penting untuk dicatat bahwa meskipun mungkin ada beberapa nilai tag-key, masing-masing hanya `tag-key` dapat memiliki satu nilai.
  + [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag), [aws:RequestTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-requesttag) dan [aws:ResourceTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-resourcetag) merupakan kunci konteks bernilai tunggal.
  + [aws:TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys)mendefinisikan kunci tag apa yang diizinkan dalam permintaan tetapi tidak menyertakan nilai tag-key. Karena Anda dapat menyertakan beberapa pasangan nilai kunci tag dalam permintaan, `aws:TagKeys` adalah kunci konteks multivalued.
+ Kunci konteks multivaluasi memerlukan operator set kondisi. Jangan gunakan operator set kondisi `ForAllValues` atau `ForAnyValue` dengan kunci konteks bernilai tunggal. Menggunakan operator set kondisi dengan kunci konteks bernilai tunggal dapat menyebabkan kebijakan yang terlalu permisif.

## Tetapkan operator untuk kunci konteks multivaluasi
<a name="reference_policies_condition-multi-valued-context-keys"></a>

Untuk membandingkan kunci konteks kondisi Anda dengan kunci [konteks permintaan](intro-structure.md#intro-structure-request) dengan beberapa nilai, Anda harus menggunakan `ForAllValues` atau `ForAnyValue` mengatur operator. Operator set ini digunakan untuk membandingkan dua set nilai, seperti kumpulan tag dalam permintaan dan kumpulan tag dalam kondisi kebijakan.

Qualifier `ForAllValues` dan `ForAnyValue` qualifier menambahkan fungsionalitas set-operation ke operator kondisi, sehingga Anda dapat menguji kunci konteks permintaan dengan beberapa nilai terhadap beberapa nilai kunci konteks dalam kondisi kebijakan. [Selain itu, jika Anda menyertakan kunci konteks string multivalued dalam kebijakan Anda dengan wildcard atau variabel, Anda juga harus menggunakan operator kondisi. `StringLike`](reference_policies_elements_condition_operators.md#Conditions_String) Beberapa nilai kunci kondisi harus diapit dalam tanda kurung seperti [array](reference_policies_grammar.md#policies-grammar-json), misalnya,. `"Key2":["Value2A", "Value2B"]`

### ForAllValues
<a name="reference_policies_condition-forallvalues"></a>

`ForAllValues`Qualifier menguji apakah nilai setiap anggota konteks permintaan cocok dengan operator kondisi yang mengikuti qualifier. Kondisi akan ditampilkan `true` jika setiap nilai kunci konteks dalam permintaan cocok dengan nilai kunci konteks dalam kebijakan. Ini juga kembali `true` jika tidak ada kunci konteks dalam permintaan.

**penting**  
Berhati-hatilah jika Anda menggunakan `ForAllValues` dengan `Allow` efek, karena bisa terlalu permisif jika keberadaan kunci konteks yang hilang dalam konteks permintaan tidak terduga. Anda harus selalu menyertakan operator [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null)kondisi dalam kebijakan Anda dengan `false` nilai untuk memeriksa apakah kunci konteks ada dan nilainya tidak null. Sebagai contoh, lihat [Mengontrol akses berdasarkan kunci tanda](access_tags.md#access_tags_control-tag-keys).

#### Contoh ForAllValues set operator
<a name="reference_policies_condition-forallvalues-example"></a>

Dalam contoh berikut, ForAllValues digunakan dengan aws: TagKeys untuk memungkinkan pengguna menghapus tag tertentu yang ditetapkan ke instans EC2. Kebijakan ini memungkinkan pengguna untuk menghapus hanya `cost-center` tag `environment` dan tag. Anda dapat menghapusnya secara terpisah atau bersama-sama. Tombol tag dalam permintaan harus sama persis dengan kunci yang ditentukan dalam kebijakan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                },
                "Null": {
                    "aws:TagKeys": "false"
                }
            }
        }
    ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi Kebijakan | Konteks Permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Pertandingan**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Pertandingan**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Pertandingan**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Tidak ada kecocokan**  | 
|  <pre>"ForAllValues:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />},<br />"Null": {<br />  "aws:TagKeys": "false"<br />}</pre>  |  Tidak `aws:TagKeys` dalam konteks permintaan.  |  **Tidak ada kecocokan**  | 

Perhatikan bahwa dalam contoh terakhir, hasilnya adalah “No Match” karena pemeriksaan kondisi Null mencegah pencocokan ketika kunci konteks hilang. Ini adalah praktik terbaik untuk menghindari kebijakan yang terlalu permisif.

### ForAnyValue
<a name="reference_policies_condition-foranyvalue"></a>

`ForAnyValue`Qualifier menguji apakah setidaknya satu anggota dari kumpulan nilai kunci konteks permintaan cocok dengan setidaknya satu anggota kumpulan nilai kunci konteks dalam kondisi kebijakan Anda. Kondisi akan `true` ditampilkan jika salah satu nilai kunci konteks dalam permintaan cocok dengan salah satu nilai kunci konteks dalam kebijakan. Untuk tidak ada kunci konteks yang cocok atau jika kunci tidak ada, kondisi kembali`false`.

**penting**  
Saat menggunakan `ForAnyValue` dengan `Deny` efek, jika kunci konteks tidak ada dalam permintaan, kebijakan akan dievaluasi sebagai **Tidak cocok**. Untuk perilaku yang konsisten, tambahkan pemeriksaan [`Null`](reference_policies_elements_condition_operators.md#Conditions_Null)kondisi eksplisit di kebijakan Anda untuk memverifikasi apakah kunci konteks ada. Lihat perinciannya di [Operator ketentuan memeriksa keberadaan kunci kondisi](reference_policies_elements_condition_operators.md#Conditions_Null).

#### Contoh ForAnyValue set operator
<a name="reference_policies_condition-foranyvalue-example"></a>

Dalam contoh berikut, ForAnyValue digunakan dengan aws: TagKeys untuk memungkinkan pengguna menghapus tag tertentu yang ditetapkan ke instans EC2. Kebijakan ini memungkinkan pengguna untuk menghapus tag untuk sebuah instance jika kunci tag yang ditentukan dalam permintaan menyertakan `environment` atau`cost-center`. Permintaan dapat menyertakan kunci tag tambahan di luar yang ditentukan dalam kebijakan, tetapi harus menyertakan setidaknya satu dari kunci yang ditentukan agar sesuai dengan kondisi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteTags",
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "environment",
                        "cost-center"
                    ]
                }
            }
        }
    ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi Kebijakan | Konteks Permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment</pre>  |  **Pertandingan**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – cost-center</pre>  |  **Pertandingan**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – cost-center</pre>  |  **Pertandingan**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – dept</pre>  |  **Pertandingan**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – dept</pre>  |  **Tidak ada kecocokan**  | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": [<br />    "environment",<br />    "cost-center"<br />  ]<br />}</pre>  |  Tidak `aws:TagKeys` dalam konteks permintaan.  |  **Tidak ada kecocokan**  | 

# Contoh kebijakan kondisi
<a name="reference_policies_condition_examples"></a>

Dalam kebijakan IAM, Anda dapat menentukan beberapa nilai untuk kunci konteks bernilai tunggal dan multivalued untuk perbandingan terhadap konteks permintaan. Kumpulan contoh kebijakan berikut menunjukkan kondisi kebijakan dengan beberapa kunci konteks dan nilai.

**catatan**  
Jika Anda ingin memberikan sebuah kebijakan untuk disertakan dalam panduan referensi ini, gunakan tombol **Umpan Balik** di bagian bawah halaman ini. Untuk contoh kebijakan berbasis identitas IAM, lihat. [Contoh kebijakan berbasis identitas IAM](access_policies_examples.md)

## Contoh kebijakan kondisi: Kunci konteks bernilai tunggal
<a name="reference_policies_condition_example_library_single-valued"></a>
+ Beberapa blok kondisi dengan kunci konteks bernilai tunggal. ([Lihat contoh ini](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-1).)
+ Satu blok kondisi dengan beberapa kunci dan nilai konteks bernilai tunggal. ([Lihat contoh ini](reference_policies_condition_examples-single-valued-context-keys.md#reference_policies_condition_examples-single-valued-context-keys-2).)

## Contoh kebijakan kondisi: Kunci konteks berbilang nilai
<a name="reference_policies_condition_example_library_multi-valued"></a>
+ Tolak kebijakan dengan operator set kondisi`ForAllValues`. ([Lihat contoh ini](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-1).)
+ Tolak kebijakan dengan operator set kondisi`ForAnyValue`. ([Lihat contoh ini](reference_policies_condition_examples-multi-valued-context-keys.md#reference_policies_condition_examples-multi-valued-context-keys-2).)

# Contoh kunci konteks multivaluasi
<a name="reference_policies_condition_examples-multi-valued-context-keys"></a>

Kumpulan contoh kebijakan berikut menunjukkan cara membuat kondisi kebijakan dengan kunci konteks multivalued.

## Contoh: Tolak kebijakan dengan operator set kondisi ForAllValues
<a name="reference_policies_condition_examples-multi-valued-context-keys-1"></a>

Contoh berikut menunjukkan cara menggunakan kebijakan berbasis identitas untuk menolak penggunaan tindakan penandaan IAM saat awalan kunci tag tertentu disertakan dalam permintaan. Nilai untuk [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)menyertakan wildcard (\$1) untuk pencocokan string paral. Kebijakan ini menyertakan operator yang `ForAllValues` disetel dengan kunci konteks `aws:TagKeys` karena kunci konteks permintaan dapat menyertakan beberapa nilai. Agar kunci `aws:TagKeys` konteks cocok, setiap nilai dalam konteks permintaan harus cocok dengan setidaknya satu nilai dalam kebijakan.

Operator `ForAllValues` set juga mengembalikan true jika tidak ada kunci konteks dalam permintaan.

Anda dapat mencegah kunci konteks atau kunci konteks yang hilang dengan nilai kosong dievaluasi ke true dengan menyertakan operator `Null` kondisi dalam kebijakan Anda dengan nilai `false` untuk memeriksa apakah kunci konteks dalam permintaan ada dan nilainya bukan null. Untuk informasi selengkapnya, lihat [Operator ketentuan memeriksa keberadaan kunci kondisi](reference_policies_elements_condition_operators.md#Conditions_Null).

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

**Example Tolak nilai kondisi kebijakan tunggal untuk kunci konteks multivalued**  
**Dalam contoh berikut, kebijakan menolak permintaan di mana nilai untuk `aws:TagKeys` dalam permintaan tidak menyertakan kunci awalan1.** Konteks permintaan dapat memiliki beberapa nilai, tetapi karena operator set `ForAllValues` kondisi, semua nilai kunci tag dalam konteks permintaan harus dimulai dengan **kunci** awalan1.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": "key1*"
        }
      }
    }
  ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda. Untuk pernyataan Deny, Pertandingan Ditolak dan Tidak ada kecocokan Tidak ditolak, jadi mungkin diizinkan oleh pernyataan lain.  


| Kondisi Kebijakan | Permintaan Konteks | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | <pre>aws:TagKeys:<br />  – key2:audit</pre>  | **Pertandingan** | 
| <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": "key1*"<br />}</pre>  | Tidak `aws:TagKeys` dalam konteks permintaan.  | **Pertandingan** | 

**Example Tolak beberapa nilai kondisi kebijakan untuk kunci konteks multivalued**  
**Dalam contoh berikut, kebijakan menolak permintaan di mana nilai untuk `aws:TagKeys` dalam permintaan tidak menyertakan awalan **key1 atau key2**.** **Konteks permintaan dapat memiliki beberapa nilai, tetapi karena operator set `ForAllValues` kondisi, semua nilai kunci tag dalam konteks permintaan harus dimulai dengan awalan **key1 atau key2**.**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyRestrictedTags",
      "Effect": "Deny",
      "Action": [
        "iam:Tag*",
        "iam:UnTag*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAllValues:StringNotLike": {
          "aws:TagKeys": [
            "key1*",
            "key2*"
          ]
        }
      }
    }
  ]
}
```
Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda. Untuk pernyataan Deny, Pertandingan Ditolak dan Tidak ada kecocokan Tidak ditolak, jadi mungkin diizinkan oleh pernyataan lain.  


| Kondisi Kebijakan | Permintaan Konteks | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAllValues:StringNotLike": {<br />  "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:legal</pre>  |  **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key1:personnel</pre>  | **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key1:hr<br />  – key2:audit</pre>  | **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | <pre>aws:TagKeys:<br />  – key3:legal</pre>  | **Pertandingan**  | 
| <pre>"ForAllValues:StringNotLike": {<br />   "aws:TagKeys": [<br />    "key1*",<br />    "key2*"<br />  ]<br />}</pre>  | Tidak `aws:TagKeys` dalam konteks permintaan.  | **Pertandingan** | 

## Contoh: Tolak kebijakan dengan operator set kondisi ForAnyValue
<a name="reference_policies_condition_examples-multi-valued-context-keys-2"></a>

Contoh kebijakan berbasis identitas berikut menyangkal pembuatan snapshot volume instans EC2 jika ada snapshot yang ditandai dengan salah satu kunci tag yang ditentukan dalam kebijakan, atau. `environment` `webserver` Kebijakan ini menyertakan operator yang `ForAnyValue` disetel dengan kunci konteks `aws:TagKeys` karena kunci konteks permintaan dapat menyertakan beberapa nilai. Jika permintaan penandaan Anda menyertakan salah satu nilai kunci tag yang ditentukan dalam kebijakan, kunci `aws:TagKeys` konteks akan mengembalikan nilai true dengan mengaktifkan efek kebijakan penolakan.

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateSnapshot",
        "ec2:CreateSnapshots"
      ],
      "Resource": "arn:aws:ec2:us-west-2::snapshot/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": "webserver"
        }
      }
    }
  ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda. Untuk pernyataan Deny, Pertandingan Ditolak dan Tidak ada kecocokan Tidak ditolak, jadi mungkin diizinkan oleh pernyataan lain.


| Kondisi Kebijakan | Permintaan Konteks | Hasil | 
| --- | --- | --- | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – webserver</pre>  | **Pertandingan** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – webserver<br />  – test</pre>  |  **Pertandingan** | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | <pre>aws:TagKeys:<br />  – environment<br />  – test</pre>  | **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain. | 
|  <pre>"ForAnyValue:StringEquals": {<br />  "aws:TagKeys": "webserver"<br />}</pre>  | Tidak `aws:TagKeys` dalam konteks permintaan.  | **Tidak ada kecocokan** Mungkin diizinkan oleh pernyataan lain.  | 

# Contoh kebijakan kunci konteks bernilai tunggal
<a name="reference_policies_condition_examples-single-valued-context-keys"></a>

Kumpulan contoh kebijakan berikut menunjukkan cara membuat kondisi kebijakan dengan kunci konteks bernilai tunggal.

## Contoh: Beberapa blok kondisi dengan kunci konteks bernilai tunggal
<a name="reference_policies_condition_examples-single-valued-context-keys-1"></a>

Ketika blok kondisi memiliki beberapa kondisi, masing-masing dengan satu kunci konteks, semua kunci konteks harus diselesaikan ke true agar `Deny` efek yang diinginkan `Allow` atau dipanggil. Saat Anda menggunakan operator kondisi pencocokan yang dinegasikan, logika evaluasi nilai kondisi dibalik.

Contoh berikut memungkinkan pengguna membuat volume EC2 dan menerapkan tag ke volume selama pembuatan volume. Konteks permintaan harus menyertakan nilai untuk kunci konteks`aws:RequestTag/project`, dan nilai untuk kunci konteks `aws:ResourceTag/environment` dapat berupa apa saja kecuali produksi.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/project": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:*/*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

Konteks permintaan harus menyertakan nilai tag proyek dan tidak dapat dibuat untuk sumber daya produksi untuk memanggil efek. `Allow` Volume EC2 berikut berhasil dibuat karena nama proyek `Feature3` dengan tag `QA` sumber daya.

```
aws ec2 create-volume \
    --availability-zone us-east-1a \
    --volume-type gp2 \
    --size 80 \
    --tag-specifications 'ResourceType=volume,Tags=[{Key=project,Value=Feature3},{Key=environment,Value=QA}]'
```

## Contoh: Satu blok kondisi dengan beberapa kunci dan nilai konteks bernilai tunggal
<a name="reference_policies_condition_examples-single-valued-context-keys-2"></a>

Ketika blok kondisi berisi beberapa kunci konteks dan setiap kunci konteks memiliki beberapa nilai, setiap kunci konteks harus menyelesaikan ke true untuk setidaknya satu nilai kunci untuk yang diinginkan `Allow` atau `Deny` efek yang akan dipanggil. Saat Anda menggunakan operator kondisi pencocokan yang dinegasikan, logika evaluasi nilai kunci konteks dibalik.

Contoh berikut memungkinkan pengguna untuk memulai dan menjalankan tugas di Amazon Elastic Container Service cluster.
+ Konteks permintaan harus menyertakan `production` **OR** `prod-backup` untuk kunci `aws:RequestTag/environment` konteks **DAN**.
+ Kunci `ecs:cluster` konteks memastikan bahwa tugas dijalankan pada kluster `default1` **OR** `default2` ARN ECS.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunTask",
        "ecs:StartTask"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": [
            "production",
            "prod-backup"
          ]
        },
        "ArnEquals": {
          "ecs:cluster": [
            "arn:aws:ecs:us-east-1:111122223333:cluster/default1",
            "arn:aws:ecs:us-east-1:111122223333:cluster/default2"
          ]
        }
      }
    }
  ]
}
```

------

Tabel berikut menunjukkan cara AWS mengevaluasi kebijakan ini berdasarkan nilai kunci kondisi dalam permintaan Anda.


| Kondisi kebijakan | Konteks permintaan | Hasil | 
| --- | --- | --- | 
|  <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default1</pre>  | Pertandingan | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: environment:prod-backup<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Pertandingan | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  | <pre>aws:RequestTag: webserver:production<br />ecs:cluster:<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Tidak cocok | 
| <pre>"StringEquals": {<br />  "aws:RequestTag/environment": [<br />    "production",<br />    "prod-backup"<br />  ]<br />},<br />"ArnEquals": {<br />  "ecs:cluster": [<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default1",<br />    "arn:aws:ecs:us-east-1:111122223333:cluster/default2"<br />  ]<br />}</pre>  |  Tidak `aws:RequestTag` dalam konteks permintaan. <pre>ecs:cluster<br />  arn:aws:ecs:us-east-1:111122223333:cluster/default2</pre>  | Tidak cocok | 

# Elemen kebijakan IAM: Variabel dan tag
<a name="reference_policies_variables"></a>

Gunakan variabel kebijakan AWS Identity and Access Management (IAM) sebagai placeholder ketika Anda tidak mengetahui nilai pasti dari sumber daya atau kunci kondisi saat Anda menulis kebijakan.

**catatan**  
Jika AWS tidak dapat menyelesaikan variabel, ini dapat menyebabkan seluruh pernyataan menjadi tidak valid. Misalnya, jika Anda menggunakan variabel `aws:TokenIssueTime`, variabel tersebut hanya menghasilkan nilai saat pemohon diautentikasi menggunakan kredensial sementara (peran IAM). [Untuk mencegah variabel menyebabkan pernyataan tidak valid, gunakan... IfExists operator kondisi.](reference_policies_elements_condition_operators.md#Conditions_IfExists)

**Topics**
+ [Pengantar](#policy-vars-intro)
+ [Menggunakan variabel dalam kebijakan](#policy-vars-using-variables)
+ [Tanda sebagai variabel kebijakan](#policy-vars-tags)
+ [Tempat Anda dapat menggunakan variabel kebijakan](#policy-vars-wheretouse)
+ [Variabel kebijakan tanpa nilai](#policy-vars-no-value)
+ [Meminta informasi yang dapat Anda gunakan untuk variabel kebijakan](#policy-vars-infotouse)
+ [Menentukan nilai default](#policy-vars-default-values)
+ [Untuk informasi selengkapnya](#policy-vars-formoreinfo)

## Pengantar
<a name="policy-vars-intro"></a>

Dalam kebijakan IAM, banyak tindakan memungkinkan Anda untuk memberikan nama untuk sumber daya spesifik yang Anda ingin kontrol aksesnya. Misalnya, kebijakan berikut memungkinkan pengguna untuk membuat daftar, membaca, dan menulis objek di bucket S3 `amzn-s3-demo-bucket` untuk `marketing` proyek.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["marketing/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/marketing/*"]
    }
  ]
}
```

------

Dalam beberapa kasus, Anda mungkin tidak mengetahui nama pasti sumber daya saat Anda menyusun kebijakan. Anda mungkin ingin melakukan generalisasi kebijakan sehingga dapat digunakan oleh banyak pengguna tanpa harus membuat salinan unik dari kebijakan tersebut untuk setiap pengguna. Alih-alih membuat kebijakan terpisah untuk setiap pengguna, kami sarankan Anda membuat kebijakan grup tunggal yang berfungsi untuk setiap pengguna dalam grup tersebut. 

## Menggunakan variabel dalam kebijakan
<a name="policy-vars-using-variables"></a>

Anda dapat menentukan nilai dinamis di dalam kebijakan dengan menggunakan *variabel kebijakan* yang menetapkan placeholder dalam kebijakan.

Variabel ditandai menggunakan **`$`**awalan diikuti oleh sepasang kurawal kurawal (**`{ }`**) yang menyertakan nama variabel nilai dari permintaan.

Ketika kebijakan dievaluasi, variabel kebijakan diganti dengan nilai yang berasal dari kunci konteks bersyarat yang diteruskan dalam permintaan. [Variabel dapat digunakan dalam [kebijakan berbasis identitas, kebijakan sumber daya, kebijakan kontrol layanan, kebijakan sesi, dan kebijakan titik akhir](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) VPC.](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) Kebijakan berbasis identitas yang digunakan sebagai batas izin juga mendukung variabel kebijakan. 

Kunci konteks kondisi global dapat digunakan sebagai variabel dalam permintaan di seluruh AWS layanan. Kunci kondisi khusus layanan juga dapat digunakan sebagai variabel saat berinteraksi dengan AWS sumber daya, tetapi hanya tersedia ketika permintaan dibuat terhadap sumber daya yang mendukungnya. Untuk daftar kunci konteks yang tersedia untuk setiap AWS layanan dan sumber daya, lihat [https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html](https://docs.aws.amazon.com/service-authorization/latest/reference/reference.html). Dalam keadaan tertentu, Anda tidak dapat mengisi kunci konteks kondisi global dengan nilai. Untuk mempelajari selengkapnya tentang setiap kunci, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**penting**  
Nama utama peka dengan huruf besar dan kecil. Misalnya, `aws:CurrentTime` setara dengan `AWS:currenttime`.
Anda dapat menggunakan kunci kondisi bernilai tunggal apa pun sebagai variabel. Anda tidak dapat menggunakan kunci kondisi multivalued sebagai variabel.

Contoh berikut menunjukkan kebijakan untuk peran IAM atau pengguna yang menggantikan nama sumber daya tertentu dengan variabel kebijakan. Anda dapat menggunakan kembali kebijakan ini dengan memanfaatkan kunci `aws:PrincipalTag` kondisi. Jika kebijakan ini dievaluasi, hanya `${aws:PrincipalTag/team}` mengizinkan tindakan jika nama bucket diakhiri dengan nama tim dari tag `team` utama.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
      "Condition": {"StringLike": {"s3:prefix": ["${aws:PrincipalTag/team}/*"]}}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],      
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/team}/*"]
    }
  ]
}
```

------

Variabel ditandai menggunakan prefiks `$` yang diikuti dengan sepasang rangka yang melengkung (`{ }`). Di dalam `${ }` karakter, Anda dapat menyertakan nama nilai dari permintaan yang ingin Anda gunakan dalam kebijakan. Nilai-nilai yang dapat Anda gunakan akan dibahas nanti di halaman ini.

Untuk detail tentang kunci kondisi global ini, lihat [aws:PrincipalTag/*tag-key*](reference_policies_condition-keys.md#condition-keys-principaltag) di daftar kunci kondisi global.

**catatan**  
Untuk menggunakan variabel kebijakan, Anda harus menyertakan elemen `Version` dalam pernyataan, dan versinya harus diatur ke versi yang mendukung variabel kebijakan. Variabel diperkenalkan dalam versi `2012-10-17`. Versi sebelumnya dari bahasa kebijakan tidak mendukung variabel kebijakan. Jika Anda tidak menyertakan elemen `Version` dan mengaturnya ke tanggal versi yang sesuai, variabel seperti `${aws:username}` diperlakukan sebagai string literal dalam kebijakan ini.   
Elemen kebijakan `Version` berbeda dari versi kebijakan. Elemen kebijakan `Version` digunakan dalam kebijakan dan menentukan versi bahasa kebijakan. Sebaliknya, versi kebijakan dibuat saat Anda mengubah kebijakan yang dikelola pelanggan di IAM. Perubahan kebijakan tidak mengesampingkan kebijakan yang ada. Sebagai gantinya, IAM membuat versi baru dari kebijakan yang dikelola. Untuk mempelajari lebih lanjut tentang elemen kebijakan `Version`, lihat [Elemen kebijakan IAM JSON: Version](reference_policies_elements_version.md). Untuk mempelajari selengkapnya tentang versi kebijakan, lihat [Peningkatan versi IAM](access_policies_managed-versioning.md).

Kebijakan yang memungkinkan prinsipal untuk mendapatkan objek dari jalur /David dari bucket S3 terlihat seperti ini:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/David/*"
      ]
    }
  ]
}
```

------

Jika kebijakan ini dilampirkan ke pengguna`David`, pengguna tersebut mendapatkan objek dari bucket S3-nya sendiri, tetapi Anda harus membuat kebijakan terpisah untuk setiap pengguna yang menyertakan nama pengguna. Kemudian, Anda akan menerapkan setiap kebijakan kepada pengguna individu.

Dengan menggunakan variabel kebijakan, Anda dapat membuat kebijakan yang dapat digunakan kembali. Kebijakan berikut memungkinkan pengguna untuk mendapatkan objek dari bucket Amazon S3 jika nilai tag-key `aws:PrincipalTag` cocok dengan nilai tag-key yang diteruskan dalam permintaan`owner`. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Sid": "AllowUnlessOwnedBySomeoneElse",
    "Effect": "Allow",
    "Action": ["s3:GetObject"],    
    "Resource": ["*"],
    "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/owner": "${aws:PrincipalTag/owner}"
        }
      }
    }
  ]
}
```

------

Bila Anda menggunakan variabel kebijakan sebagai pengganti pengguna seperti ini, Anda tidak harus memiliki kebijakan terpisah untuk setiap pengguna individu. Dalam contoh berikut, kebijakan dilampirkan pada peran IAM yang diasumsikan oleh Manajer Produk menggunakan kredensi keamanan sementara. Saat pengguna membuat permintaan untuk menambahkan objek Amazon S3, IAM mengganti nilai `dept` tag dari permintaan `${aws:PrincipalTag}` variabel saat ini dan mengevaluasi kebijakan. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOnlyDeptS3Prefix",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/dept}/*"
            ]
        }
    ]
}
```

------

## Tanda sebagai variabel kebijakan
<a name="policy-vars-tags"></a>

Di beberapa AWS layanan, Anda dapat melampirkan atribut kustom Anda sendiri ke sumber daya yang dibuat oleh layanan tersebut. Misalnya, Anda dapat menerapkan tag ke bucket Amazon S3 atau ke pengguna IAM. Tanda ini adalah pasangan nilai kunci. Anda menentukan nama kunci tanda dan nilai yang terkait dengan nama kunci tersebut. Misalnya, Anda dapat membuat tanda dengan kunci **department** dan nilai **Human Resources**. Untuk informasi lebih lanjut tentang pemberian tag pada entitas IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md). Untuk informasi tentang penandaan sumber daya yang dibuat oleh layanan AWS lainnya, lihat dokumentasi untuk layanan tersebut. Untuk informasi tentang penggunaan Tag Editor, lihat [Bekerja dengan Tag Editor](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) dalam *Panduan Pengguna Konsol Manajemen AWS *.

Anda dapat menandai sumber daya IAM untuk menyederhanakan menemukan, mengatur, dan melacak sumber daya IAM Anda. Anda juga dapat menandai identitas IAM untuk mengontrol akses ke sumber daya atau menandainya sendiri. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md). 

## Tempat Anda dapat menggunakan variabel kebijakan
<a name="policy-vars-wheretouse"></a>

 Anda dapat menggunakan variabel kebijakan di elemen `Resource` dan dalam perbandingan string dalam elemen `Condition`.

### Elemen sumber daya
<a name="policy-vars-resourceelement"></a>

Anda dapat menggunakan variabel kebijakan di elemen `Resource`, tetapi hanya di bagian sumber daya ARN. Bagian ARN ini muncul setelah tanda titik dua (:) yang kelima. Anda tidak dapat menggunakan variabel untuk mengganti bagian ARN sebelum tanda titik dua yang kelima, seperti layanan atau akun. Untuk informasi selengkapnya tentang format ARN, lihat [IAM ARNs](reference_identifiers.md#identifiers-arns).

Untuk mengganti bagian dari ARN dengan nilai tag, kelilingi awalan dan nama kunci dengan. `${ }` Misalnya, elemen Resource berikut hanya mengacu pada bucket yang diberi nama sama dengan nilai dalam tag departemen pengguna yang meminta.

`"Resource": ["arn:aws::s3:::amzn-s3-demo-bucket/${aws:PrincipalTag/department}"]`

Banyak AWS sumber daya ARNs yang digunakan yang berisi nama yang dibuat pengguna. Kebijakan IAM berikut memastikan bahwa hanya pengguna yang dituju dengan nilai tag access-project, access-application, dan access-environment yang cocok yang dapat memodifikasi sumber daya mereka. Selain itu, menggunakan [kecocokan wildcard \$1](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), mereka dapat mengizinkan sufiks nama sumber daya khusus. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessBasedOnArnMatching",
      "Effect": "Allow",
      "Action": [
        "sns:CreateTopic",
        "sns:DeleteTopic"],      
      "Resource": ["arn:aws:sns:*:*:${aws:PrincipalTag/access-project}-${aws:PrincipalTag/access-application}-${aws:PrincipalTag/access-environment}-*"
      ]
    }
  ]
}
```

------

### Elemen kondisi
<a name="policy-vars-conditionelement"></a>

Anda dapat menggunakan variabel kebijakan untuk nilai `Condition` dalam setiap kondisi yang melibatkan operator string atau operator ARN. Operator string termasuk `StringEquals`, `StringLike`, dan `StringNotLike`. Operator ARN termasuk `ArnEquals` dan `ArnLike`. Anda tidak dapat menggunakan variabel kebijakan dengan operator lainnya, seperti operator `Numeric`, `Date`, `Boolean`, `Binary`, `IP Address`, atau `Null`. Untuk informasi selengkapnya tentang operator kondisi, lihat [Elemen kebijakan JSON IAM: Operator kondisi](reference_policies_elements_condition_operators.md).

Saat mereferensikan tanda di dalam ekspresi elemen `Condition`, gunakan prefiks dan nama kunci yang relevan sebagai kunci kondisi. Kemudian gunakan nilai yang ingin Anda uji di dalam nilai kondisi.

Misalnya, contoh kebijakan berikut memungkinkan akses penuh ke pengguna, tetapi hanya jika tag `costCenter` dilampirkan ke pengguna. Tanda harus memiliki nilai `12345` atau `67890`. Jika tanda tidak memiliki nilai, atau memiliki nilai lain, permintaan akan gagal.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "iam:*user*"
       ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "iam:ResourceTag/costCenter": [ "12345", "67890" ]
        }
      }
    }
  ]
}
```

------

## Variabel kebijakan tanpa nilai
<a name="policy-vars-no-value"></a>

Ketika variabel kebijakan mereferensikan kunci konteks kondisi yang tidak memiliki nilai atau tidak ada dalam konteks otorisasi untuk permintaan, nilainya secara efektif nol. Tidak ada nilai yang sama atau serupa. Kunci konteks kondisi mungkin tidak ada dalam konteks otorisasi ketika:
+ Anda menggunakan kunci konteks kondisi khusus layanan dalam permintaan ke sumber daya yang tidak mendukung kunci kondisi tersebut.
+ Tag pada prinsipal, sesi, sumber daya, atau permintaan IAM tidak ada.
+ Keadaan lain seperti yang tercantum untuk setiap konteks kondisi global masuk[AWS kunci konteks kondisi global](reference_policies_condition-keys.md).

Bila Anda menggunakan variabel tanpa nilai dalam elemen kondisi kebijakan IAM, [Elemen kebijakan JSON IAM: Operator kondisi](reference_policies_elements_condition_operators.md) suka `StringEquals` atau `StringLike` tidak cocok, dan pernyataan kebijakan tidak berlaku.

Operator kondisi terbalik `StringNotLike` menyukai `StringNotEquals` atau mencocokkan dengan nilai nol, karena nilai kunci kondisi yang mereka uji tidak sama dengan atau seperti nilai nol efektif.

Dalam contoh berikut, `aws:principaltag/Team` harus sama dengan `s3:ExistingObjectTag/Team` mengizinkan akses. Akses ditolak secara eksplisit ketika tidak `aws:principaltag/Team` disetel. Jika variabel yang tidak memiliki nilai dalam konteks otorisasi digunakan sebagai bagian dari `Resource` atau `NotResource` elemen kebijakan, sumber daya yang menyertakan variabel kebijakan tanpa nilai tidak akan cocok dengan sumber daya apa pun.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
    "Effect": "Deny", 
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringNotEquals": {
        "s3:ExistingObjectTag/Team": "${aws:PrincipalTag/Team}"
       }
      }
    }
  ]
}
```

------

## Meminta informasi yang dapat Anda gunakan untuk variabel kebijakan
<a name="policy-vars-infotouse"></a>

 Anda dapat menggunakan elemen `Condition` dari kebijakan JSON untuk membandingkan kunci dalam [konteks permintaan](reference_policies_evaluation-logic_policy-eval-reqcontext.md) dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Bila Anda menggunakan variabel kebijakan, AWS ganti nilai dari kunci konteks permintaan sebagai pengganti variabel dalam kebijakan Anda.

### Nilai-nilai kunci utama
<a name="principaltable"></a>

Nilai untuk `aws:username`, `aws:userid`, dan `aws:PrincipalType` bergantung pada tipe prinsipal yang memulai permintaan. Misalnya, permintaan dapat dibuat menggunakan kredensil pengguna IAM, peran IAM, atau. Pengguna root akun AWSDaftar berikut menunjukkan nilai-nilai untuk kunci ini untuk berbagai tipe prinsipal. 


****  

| Prinsipal | `aws:username` | `aws:userid` | `aws:PrincipalType` | 
| --- | --- | --- | --- | 
| Pengguna root akun AWS | (tidak ada) | Akun AWS ID | Account | 
| Pengguna IAM | IAM-user-name | [ID unik](reference_identifiers.md#identifiers-unique-ids) | User | 
| AWS STS prinsipal pengguna federasi | (tidak ada) | account:caller-specified-name | FederatedUser | 
| Kepala sekolah federasi OIDC Untuk informasi tentang kunci kebijakan yang tersedia saat Anda menggunakan federasi identitas web, lihat [Kunci yang tersedia untuk AWS federasi OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).  | (tidak ada) |   *role-id*:*caller-specified-role-name*  di mana `role-id` adalah [id unik dari peran](reference_identifiers.md#identifiers-unique-ids) dan caller-specified-role-name ditentukan oleh [RoleSessionName parameter](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html#API_AssumeRoleWithWebIdentity_RequestParameters) yang diteruskan ke AssumeRoleWithWebIdentity permintaan.  | AssumedRole | 
| Kepala sekolah federasi SAMP Untuk informasi tentang kunci kebijakan yang tersedia saat Anda menggunakan gabungan SAML, lihat [Mengidentifikasi pengguna secara unik dalam federasi berbasis SAML](id_roles_providers_saml.md#CreatingSAML-userid).  | (tidak ada) |  *role-id*:*caller-specified-role-name* di mana `role-id` adalah [id unik dari peran](reference_identifiers.md#identifiers-unique-ids) dan caller-specified-role-name ditentukan oleh elemen Atribut dengan [atribut Nama](id_roles_providers_create_saml_assertions.md) disetel ke https://aws.amazon.com/SAML/ atribut/RoleSessionName.  | AssumedRole | 
| Asumsi peran | (tidak ada) |  *role-id*:*caller-specified-role-name* di mana `role-id` adalah [id unik dari peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) dan caller-specified-role-name ditentukan oleh [RoleSessionName parameter](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html#API_AssumeRole_RequestParameters) yang diteruskan ke AssumeRole permintaan.  | AssumedRole | 
| Peran ditetapkan ke instans Amazon EC2 | (tidak ada) |  *role-id*:*ec2-instance-id* dengan `role-id` adalah [id unik peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) dan id instans ec2 adalah [pengidentifikasi unik instans EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html).  | AssumedRole | 
| Penelepon anonim (khusus Amazon SQS, Amazon SNS, dan Amazon S3) | (tidak ada) | anonymous | Anonymous | 

Untuk item dalam tabel, ini, ingat hal berikut:
+ *tidak ada* berarti bahwa nilai tersebut tidak tercantum dalam informasi permintaan saat ini, dan setiap upaya untuk mencocokannya gagal dan menyebabkan pernyataan tersebut menjadi tidak valid. 
+ *role-id*adalah pengidentifikasi unik yang ditugaskan untuk setiap peran saat pembuatan. Anda dapat menampilkan ID peran dengan AWS CLI perintah: `aws iam get-role --role-name rolename`
+ *caller-specified-name*dan *caller-specified-role-name* merupakan nama yang diteruskan oleh proses panggilan (seperti aplikasi atau layanan) ketika melakukan panggilan untuk mendapatkan kredensi sementara.
+ *ec2-instance-id*adalah nilai yang ditetapkan ke instance saat diluncurkan dan muncul di halaman **Instans** konsol Amazon EC2. Anda juga dapat menampilkan ID instance dengan menjalankan AWS CLI perintah: `aws ec2 describe-instances`

### Informasi tersedia dalam permintaan untuk kepala sekolah federasi
<a name="policy-vars-infoWIF"></a>

Prinsipal federasi adalah pengguna yang diautentikasi menggunakan sistem selain IAM. Misalnya, perusahaan mungkin memiliki aplikasi untuk digunakan di rumah yang melakukan panggilan ke AWS. Mungkin tidak praktis untuk memberikan identitas IAM kepada setiap pengguna perusahaan yang menggunakan aplikasi. Sebaliknya, perusahaan mungkin menggunakan aplikasi proksi (tingkat menengah) yang memiliki satu identitas IAM, atau perusahaan mungkin menggunakan penyedia identitas (IdP) SAML. Aplikasi proksi atau SAML IdP mengautentikasi pengguna individu yang menggunakan jaringan perusahaan. Aplikasi proksi kemudian dapat menggunakan identitas IAM-nya untuk mendapatkan kredensial keamanan sementara bagi pengguna individu. IDP SAMP pada dasarnya dapat bertukar informasi identitas AWS untuk kredensil keamanan sementara. Kredensi sementara kemudian dapat digunakan untuk mengakses AWS sumber daya. 

Demikian pula, Anda dapat membuat aplikasi untuk perangkat seluler dengan aplikasi yang perlu mengakses sumber daya AWS . Dalam hal ini, Anda dapat menggunakan *federasi OIDC*, di mana aplikasi mengautentikasi pengguna menggunakan penyedia identitas terkenal seperti Login with Amazon, Amazon Cognito, Facebook, atau Google. Kemudian aplikasi dapat menggunakan informasi autentikasi pengguna dari penyedia ini untuk mendapatkan kredensial keamanan sementara guna mengakses sumber daya AWS . 

Cara yang disarankan untuk menggunakan federasi OIDC adalah dengan memanfaatkan Amazon Cognito dan ponsel. AWS SDKs Untuk informasi selengkapnya, lihat berikut ini:
+ [Panduan Pengguna Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) 
+ [Skenario umum untuk kredensial sementara](id_credentials_temp.md#sts-introduction)

### Karakter khusus
<a name="policy-vars-specialchars"></a>

Ada beberapa variabel kebijakan khusus yang telah ditetapkan sebelumnya yang memiliki nilai tetap yang memungkinkan Anda mewakili karakter yang memiliki arti khusus. Jika karakter khusus ini adalah bagian dari string, Anda mencoba untuk mencocokkannya dan Anda memasukkannya secara literal sehingga mereka akan disalahartikan. Misalnya, menyisipkan tanda bintang \$1 dalam string akan ditafsirkan sebagai wildcard yang cocok dengan karakter apa pun, bukan sebagai tanda bintang \$1 yang sebenarnya. Dalam kasus ini, Anda dapat menggunakan variabel kebijakan yang telah ditentukan sebelumnya berikut ini:
+ **\$1\$1\$1\$1** - gunakan jika Anda memerlukan karakter \$1 (tanda bintang).
+ **\$1\$1?\$1** - gunakan jika Anda memerlukan katakter ? (tanda tanya).
+ **\$1\$1\$1\$1** - gunakan jika Anda memerlukan karakter \$1 (simbol dolar).

Variabel kebijakan yang sudah ditentukan sebelumnya ini dapat digunakan dalam string apa pun tempat Anda dapat menggunakan variabel kebijakan reguler.

## Menentukan nilai default
<a name="policy-vars-default-values"></a>

Untuk menambahkan nilai default ke variabel, sertai nilai default dengan tanda kutip tunggal (`' '`), dan pisahkan teks variabel serta nilai default dengan koma dan spasi (`, `).

Misalnya, jika prinsipal diberi tag`team=yellow`, mereka dapat mengakses bucket `ExampleCorp's` Amazon S3 bernama. `amzn-s3-demo-bucket-yellow` Kebijakan dengan sumber daya ini memungkinkan anggota tim untuk mengakses keranjang tim mereka, tetapi tidak dengan tim lain. Untuk pengguna tanpa tag tim, ini menetapkan nilai default `company-wide` untuk nama bucket. Pengguna ini hanya dapat mengakses `amzn-s3-demo-bucket-company-wide` bucket di mana mereka dapat melihat informasi yang luas, seperti instruksi untuk bergabung dengan tim.

```
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket-${aws:PrincipalTag/team, 'company-wide'}"
```

## Untuk informasi selengkapnya
<a name="policy-vars-formoreinfo"></a>

Untuk informasi selengkapnya tentang kebijakan, lihat hal berikut: 
+  [Kebijakan dan izin di AWS Identity and Access Management](access_policies.md) 
+  [Contoh kebijakan berbasis identitas IAM](access_policies_examples.md) 
+  [Referensi elemen kebijakan IAM JSON](reference_policies_elements.md) 
+  [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md) 
+  [Federasi OIDC](id_roles_providers_oidc.md)

# Elemen kebijakan IAM JSON: Tipe data yang didukung
<a name="reference_policies_elements_datatypes"></a>

Bagian ini mencantumkan tipe data yang didukung ketika Anda menentukan nilai dalam kebijakan JSON. Bahasa kebijakan tidak mendukung semua tipe untuk setiap elemen kebijakan; untuk informasi tentang setiap elemen, lihat bagian sebelumnya.
+ String
+ Bilangan (Bulat dan Desimal)
+ Boolean
+ Nol
+ Daftar
+ Peta
+ Struktur (yang hanya berupa Peta bersarang)

Tabel berikut memetakan setiap tipe data ke serialisasi. Perhatikan bahwa semua kebijakan harus dalam UTF-8. Untuk informasi tentang tipe data JSON, kunjungi [RFC 4627](https://datatracker.ietf.org/doc/html/rfc4627).


****  

| Tipe | JSON | 
| --- | --- | 
|  String  |  String  | 
|  Bulat  |  Bilangan  | 
|  Desimal  |  Bilangan  | 
|  Boolean  |  salah benar  | 
|  Nol  |  nol  | 
|  Tanggal  |  String sesuai dengan [Profil W3C ISO 8601](http://www.w3.org/TR/NOTE-datetime)  | 
|  IpAddress  |  String sesuai dengan [RFC 4632](https://datatracker.ietf.org/doc/html/rfc4632)  | 
|  Daftar  |  Susunan  | 
|  Objek  |  Objek  | 

# Logika evaluasi kebijakan
<a name="reference_policies_evaluation-logic"></a>

Ketika seorang prinsipal mencoba menggunakan Konsol Manajemen AWS, AWS API, atau AWS CLI, prinsipal tersebut mengirimkan *permintaan* ke AWS. Ketika AWS layanan menerima permintaan, AWS selesaikan beberapa langkah untuk menentukan apakah akan mengizinkan atau menolak permintaan tersebut.

1. **Otentikasi** — AWS pertama mengotentikasi prinsipal yang membuat permintaan, jika perlu. Langkah ini tidak diperlukan untuk beberapa layanan, seperti Amazon S3 yang memungkinkan beberapa permintaan dari pengguna anonim.

1. **[Memproses konteks permintaan](reference_policies_evaluation-logic_policy-eval-reqcontext.md)** AWS Memproses informasi yang dikumpulkan dalam permintaan untuk menentukan kebijakan mana yang berlaku untuk permintaan tersebut.

1. **[Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses](reference_policies_evaluation-logic_policy-eval-denyallow.md)** AWS Mengevaluasi semua jenis kebijakan dan urutan kebijakan mempengaruhi bagaimana mereka dievaluasi. AWS kemudian memproses kebijakan terhadap konteks permintaan untuk menentukan apakah permintaan diizinkan atau ditolak.

## Mengevaluasi kebijakan berbasis identitas dengan kebijakan berbasis sumber daya
<a name="policy-eval-basics-id-rdp"></a>

Kebijakan berbasis identitas dan kebijakan berbasis sumber daya memberikan izin kepada identitas atau sumber daya yang melekat padanya. Ketika entitas IAM (pengguna atau peran) meminta akses ke sumber daya dalam akun yang sama, AWS mengevaluasi semua izin yang diberikan oleh kebijakan berbasis identitas dan sumber daya. Izin yang dihasilkan adalah gabungan dari izin dari kedua jenis. Jika suatu tindakan diizinkan oleh kebijakan berbasis identitas, kebijakan berbasis sumber daya, atau keduanya, maka izinkan tindakan tersebut. AWS Penolakan secara tegas dalam salah satu kebijakan ini membatalkan izin.

![\[Evaluasi kebijakan berbasis identitas dan kebijakan berbasis sumber daya\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/permissions_policies_effective.png)


## Mengevaluasi kebijakan berbasis identitas dengan batas izin
<a name="policy-eval-basics-id-bound"></a>

Saat AWS mengevaluasi kebijakan berbasis identitas dan batas izin untuk pengguna, izin yang dihasilkan adalah persimpangan dari dua kategori. Artinya ketika Anda menambahkan batas izin ke pengguna dengan kebijakan berbasis identitas yang ada, Anda mungkin mengurangi tindakan yang dapat dilakukan pengguna. Atau, saat Anda menghapus batas izin dari pengguna, Anda mungkin meningkatkan tindakan yang dapat mereka lakukan. Penolakan secara tegas dalam salah satu kebijakan ini membatalkan izin. Untuk melihat informasi tentang cara tipe kebijakan lain dievaluasi dengan batas izin, lihat [Mengevaluasi izin efektif dengan batasan](access_policies_boundaries.md#access_policies_boundaries-eval-logic).

![\[Evaluasi kebijakan berbasis identitas dan batas izin.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/permissions_boundary.png)


## Mengevaluasi kebijakan berbasis identitas dengan atau AWS Organizations SCPs RCPs
<a name="policy-eval-basics-id-scp"></a>

Jika pengguna termasuk dalam akun yang merupakan anggota organisasi dan mengakses sumber daya yang tidak memiliki kebijakan berbasis sumber daya yang dikonfigurasi, izin yang dihasilkan adalah persimpangan kebijakan pengguna, kebijakan kontrol layanan (SCPs), dan kebijakan kontrol sumber daya (RCP). Ini berarti bahwa suatu tindakan harus diizinkan oleh ketiga jenis kebijakan. Penolakan eksplisit dalam kebijakan berbasis identitas, SCP, atau RCP mengesampingkan izin.

![\[Evaluasi kebijakan berbasis identitas dan atau SCPs RCPs\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/permissions_scp-idp.png)


Anda dapat mempelajari [apakah akun Anda adalah anggota organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account) di AWS Organizations. Anggota organisasi mungkin terpengaruh oleh SCP atau RCP. Untuk melihat data ini menggunakan AWS CLI perintah atau operasi AWS API, Anda harus memiliki izin untuk `organizations:DescribeOrganization` tindakan untuk AWS Organizations entitas Anda. Anda harus memiliki izin tambahan untuk melakukan operasi di AWS Organizations konsol. Untuk mengetahui apakah SCP atau RCP menolak akses ke permintaan tertentu, atau untuk mengubah izin efektif Anda, hubungi administrator Anda. AWS Organizations 

# Memproses konteks permintaan
<a name="reference_policies_evaluation-logic_policy-eval-reqcontext"></a>

*Ketika AWS mengevaluasi dan mengotorisasi permintaan, itu mengumpulkan informasi permintaan ke dalam konteks permintaan.* Konteks permintaan berisi informasi apa pun yang dapat digunakan dalam evaluasi kebijakan.
+ **Principal** — Pengguna, peran, atau prinsipal pengguna federasi yang mengirim permintaan. Informasi tentang prinsipal mencakup kebijakan yang terkait dengan prinsipal tersebut 
+ **Tindakan** — Satu atau lebih tindakan yang ingin dilakukan kepala sekolah.
+ **Sumber Daya** — Satu atau lebih objek AWS sumber daya di mana tindakan atau operasi dilakukan.
+ **Data sumber daya** – Data terkait sumber daya yang diminta. Ini dapat mencakup informasi seperti nama tabel DynamoDB atau tag pada instans Amazon EC2.
+ **Data lingkungan** – Informasi tentang alamat IP, agen pengguna, status yang diaktifkan SSL, atau waktu hari.

Informasi ini dibandingkan dengan kebijakan yang berlaku untuk menentukan apakah akan mengizinkan atau menolak permintaan. Anda dapat mengatur informasi properti ini menggunakan model **Principal**, **Action**, **Resource**, and **Condition** (PARC) untuk lebih memahami bagaimana AWS kebijakan dievaluasi.

## Memahami model PARC
<a name="reqcontext_parc-model"></a>

Model PARC mewakili konteks permintaan berdasarkan empat elemen JSON dalam bahasa kebijakan:
+ [Principal](reference_policies_elements_principal.md)Entitas yang membuat permintaan. Prinsipal mewakili pengguna manusia atau beban kerja terprogram yang dapat diautentikasi dan kemudian diberi wewenang untuk melakukan tindakan di. Akun AWS
+ [Action](reference_policies_elements_action.md)Operasi yang sedang dilakukan. Seringkali tindakan akan dipetakan ke tindakan API.
+ [Resource](reference_policies_elements_resource.md)— AWS Sumber daya di mana tindakan sedang dilakukan.
+ [Condition](reference_policies_elements_condition.md)— Kendala tambahan yang harus dipenuhi agar permintaan diizinkan.

Berikut ini menunjukkan contoh bagaimana model PARC dapat mewakili konteks permintaan:

```
Principal: AIDA123456789EXAMPLE
Action: s3:CreateBucket
Resource: arn:aws:s3:::amzn-s3-demo-bucket1
Context:
- aws:UserId=AIDA123456789EXAMPLE:BobsSession
- aws:PrincipalAccount=123456789012
- aws:PrincipalOrgId=o-example
- aws:PrincipalARN=arn:aws:iam::AIDA123456789EXAMPLE:role/HR
- aws:MultiFactorAuthPresent=true
- aws:CurrentTime=...
- aws:EpochTime=...
- aws:SourceIp=...
- aws:PrincipalTag/dept=123
- aws:PrincipalTag/project=blue
- aws:RequestTag/dept=123
```

## Pentingnya konteks permintaan
<a name="reqcontext_importance"></a>

Memahami konteks permintaan dan bagaimana berinteraksi dengan evaluasi kebijakan sangat penting untuk:
+ Memecahkan masalah akses 
+ Merancang kebijakan yang efektif dan aman
+ Memahami cakupan penuh izin yang diberikan oleh kebijakan
+ Memprediksi hasil evaluasi kebijakan dalam skenario yang berbeda

Dengan memvisualisasikan konteks permintaan menggunakan model PARC, Anda dapat lebih mudah memahami cara AWS membuat keputusan otorisasi dan merancang kebijakan Anda secara lebih efektif.

## Cara AWS menggunakan konteks permintaan
<a name="reqcontext_usage"></a>

Saat mengevaluasi kebijakan, AWS membandingkan informasi dalam konteks permintaan dengan informasi yang ditentukan dalam semua kebijakan yang berlaku. Ini termasuk kebijakan berbasis identitas, kebijakan berbasis sumber daya, batas izin IAM, Organizations, Organizations, dan kebijakan sesi. SCPs RCPs

Untuk setiap jenis kebijakan, AWS gunakan konteks permintaan untuk memeriksa:
+ Apakah kebijakan berlaku untuk permintaan berdasarkan prinsipal.
+ Apakah tindakan yang diminta diizinkan pada sumber daya yang ditentukan.
+ Apakah kondisi yang ditentukan dalam kebijakan dipenuhi oleh konteks permintaan.

Cara AWS mengevaluasi kebijakan tergantung pada jenis kebijakan yang berlaku untuk konteks permintaan. Jenis kebijakan ini tersedia untuk digunakan dalam satu Akun AWS. Untuk informasi selengkapnya tentang tipe kebijakan ini, lihat [Kebijakan dan izin di AWS Identity and Access Management](access_policies.md). Untuk mempelajari cara AWS mengevaluasi kebijakan untuk akses lintas akun, lihat. [Logika evaluasi kebijakan lintas akun](reference_policies_evaluation-logic-cross-account.md)
+ **AWS Organizations kebijakan kontrol sumber daya (RCPs)** - AWS Organizations RCPs tentukan izin maksimum yang tersedia untuk sumber daya dalam akun di organisasi atau unit organisasi (OU). RCPs berlaku untuk sumber daya di akun anggota dan memengaruhi izin efektif untuk kepala sekolah, termasuk Pengguna root akun AWS, terlepas dari apakah prinsipal tersebut milik organisasi Anda. RCPs tidak berlaku untuk sumber daya di akun manajemen organisasi dan panggilan yang dilakukan oleh peran terkait layanan. Jika RCP hadir, izin yang diberikan oleh kebijakan berbasis identitas dan berbasis sumber daya ke sumber daya di akun anggota Anda hanya efektif jika RCP mengizinkan tindakan tersebut.
+ **AWS Organizations kebijakan kontrol layanan (SCPs)** - AWS Organizations SCPs tentukan izin maksimum yang tersedia untuk prinsipal dalam akun di organisasi atau unit organisasi (OU). SCPs berlaku untuk kepala sekolah di akun anggota, termasuk masing-masing. Pengguna root akun AWS Jika SCP hadir, izin yang diberikan oleh kebijakan berbasis identitas dan berbasis sumber daya kepada kepala sekolah di akun anggota Anda hanya efektif jika SCP mengizinkan tindakan tersebut. Satu-satunya pengecualian adalah prinsip dalam akun manajemen organisasi dan peran terkait layanan.
+ Kebijakan berbasis **sumber daya — Kebijakan berbasis** sumber daya memberikan izin untuk prinsipal yang ditentukan dalam kebijakan. Izin menentukan apa yang dapat dilakukan oleh prinsipal dengan sumber daya yang memiliki kebijakan tersebut.
+ **Batas izin — Batas** izin adalah fitur yang menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM (pengguna atau peran). Saat Anda menetapkan batas izin untuk entitas, entitas hanya dapat melakukan tindakan yang diizinkan oleh kebijakan berbasis identitas dan batas izinnya. Dalam beberapa kasus, penolakan implisit dalam batas izin dapat membatasi izin yang diberikan oleh kebijakan berbasis sumber daya. Untuk informasi selengkapnya, lihat [Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses](reference_policies_evaluation-logic_policy-eval-denyallow.md).
+ **Kebijakan berbasis identitas** – Kebijakan berbasis identitas diterapkan pada identitas IAM (pengguna, kelompok pengguna, atau peran) dan memberikan izin kepada entitas IAM (pengguna dan peran). Jika hanya kebijakan berbasis identitas yang berlaku untuk permintaan, maka AWS periksa semua kebijakan tersebut untuk setidaknya satu. `Allow`
+ **Kebijakan sesi** — Kebijakan sesi adalah kebijakan yang Anda berikan sebagai parameter saat Anda membuat sesi sementara secara terprogram untuk peran atau sesi pengguna gabungan. Untuk membuat sesi peran secara terprogram, gunakan salah satu operasi API `AssumeRole*`. Saat Anda melakukan ini dan meneruskan kebijakan sesi, izin sesi yang dihasilkan adalah perpotongan antara kebijakan berbasis identitas entitas IAM dan kebijakan sesi. Untuk membuat sesi pengguna federasi, Anda menggunakan kunci akses pengguna IAM untuk memanggil operasi API secara terprogram. `GetFederationToken` Untuk informasi selengkapnya, lihat [Kebijakan sesi](access_policies.md#policies_session).

Ingat, penolakan secara tegas dalam salah satu kebijakan ini membatalkan izin.

**catatan**  
**AWS Organizations Kebijakan deklaratif** memungkinkan Anda untuk mendeklarasikan dan menerapkan konfigurasi yang Anda inginkan secara terpusat pada skala tertentu Layanan AWS di seluruh organisasi. Karena kebijakan deklaratif diterapkan secara langsung di tingkat layanan, kebijakan tersebut tidak berdampak langsung pada permintaan evaluasi kebijakan dan tidak disertakan dengan konteks permintaan. Untuk informasi selengkapnya, lihat [Kebijakan deklaratif](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) di Panduan AWS Organizations Pengguna.

## Contoh evaluasi kebijakan menggunakan model PARC
<a name="reqcontext_example"></a>

Untuk mengilustrasikan bagaimana konteks permintaan berinteraksi dengan evaluasi kebijakan, mari pertimbangkan contoh kebijakan:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:CreateBucket",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/dept": "123"
        }
      }
    }
  ]
}
```

------

Dalam contoh ini, kebijakan akan mengizinkan `CreateBucket` tindakan hanya jika konteks permintaan menyertakan `aws:PrincipalTag/dept` nilai “123" dan sumber daya cocok dengan nama `amzn-s3-demo-bucket1` bucket. Tabel berikut menunjukkan cara AWS menggunakan konteks permintaan untuk mengevaluasi kebijakan ini dan membuat keputusan otorisasi.


| Kebijakan | Konteks permintaan | Hasil evaluasi | 
| --- | --- | --- | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Pertandingan** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:DeleteBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=123</pre>  | **Tidak cocok** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:  <br />    - aws:PrincipalTag/dept=321</pre>  | **Tidak cocok** | 
| <pre>"StringEquals": {<br />    "aws:PrincipalTag/dept": "123"<br />}</pre>  |  <pre>Principal: AIDA123456789EXAMPLE<br />Action: s3:CreateBucket<br />Resource: arn:aws:s3:::amzn-s3-demo-bucket1<br />Context:</pre> Tidak `aws:PrincipalTag` dalam permintaan.  | **Tidak cocok** | 

# Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses
<a name="reference_policies_evaluation-logic_policy-eval-denyallow"></a>

Kode AWS penegakan memutuskan apakah permintaan yang dikirim AWS harus diizinkan atau ditolak. AWS mengevaluasi semua kebijakan yang berlaku untuk konteks permintaan. Berikut ini adalah ringkasan logika evaluasi AWS kebijakan.
+ Secara default, semua permintaan ditolak secara implisit dengan pengecualian Pengguna root akun AWS, yang memiliki akses penuh.
+ Permintaan harus diizinkan secara eksplisit oleh kebijakan atau serangkaian kebijakan yang mengikuti logika evaluasi di bawah ini agar diizinkan.
+ Penolakan eksplisit mengesampingkan izin eksplisit.

Evaluasi kebijakan dapat berbeda tergantung pada apakah permintaan tersebut berada dalam satu akun atau permintaan lintas akun. Untuk detail tentang bagaimana keputusan evaluasi kebijakan dibuat untuk peran IAM atau pengguna dalam satu akun, lihat[Evaluasi kebijakan untuk permintaan dalam satu akun](reference_policies_evaluation-logic_policy-eval-basics.md). Untuk detail tentang bagaimana keputusan evaluasi kebijakan dibuat untuk permintaan lintas akun, lihat[Logika evaluasi kebijakan lintas akun](reference_policies_evaluation-logic-cross-account.md).
+ **Evaluasi penolakan** – Secara default, semua permintaan ditolak. Ini disebut [penolakan implisit](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Kode AWS penegakan mengevaluasi semua kebijakan dalam akun yang berlaku untuk permintaan. Ini termasuk AWS Organizations SCPs dan RCPs, kebijakan berbasis sumber daya, kebijakan berbasis identitas, batas izin IAM, dan kebijakan sesi. Dalam semua kebijakan tersebut, kode penegakan mencari pernyataan `Deny` yang berlaku untuk permintaan. Ini disebut [penolakan secara tegas](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md). Jika kode penegakan menemukan bahkan satu penolakan eksplisit yang berlaku, kode penegakan mengembalikan keputusan akhir **Deny**. Jika tidak ada penolakan eksplisit, evaluasi kode penegakan hukum berlanjut.
+ **AWS Organizations RCPs**Kode penegakan mengevaluasi kebijakan pengendalian AWS Organizations sumber daya (RCPs) yang berlaku untuk permintaan. RCPs berlaku untuk sumber daya akun tempat RCPs dilampirkan. Jika kode penegakan hukum tidak menemukan `Allow` pernyataan yang berlaku di dalam RCPs, kode penegakan mengembalikan keputusan akhir **Deny**. Perhatikan bahwa kebijakan AWS terkelola yang `RCPFullAWSAccess` disebut secara otomatis dibuat dan dilampirkan ke setiap entitas di organisasi Anda termasuk root, setiap OU, dan Akun AWS kapan RCPs diaktifkan. `RCPFullAWSAccess`tidak bisa dilepaskan, jadi akan selalu ada `Allow` pernyataan. Jika tidak ada RCP, atau jika RCP mengizinkan tindakan yang diminta, evaluasi kode penegakan berlanjut.
+ **AWS Organizations SCPs**— Kode penegakan mengevaluasi kebijakan kontrol AWS Organizations layanan (SCPs) yang berlaku untuk permintaan. SCPs berlaku untuk kepala sekolah akun tempat dilampirkan. SCPs Jika kode penegakan hukum tidak menemukan `Allow` pernyataan yang berlaku di dalam SCPs, kode penegakan mengembalikan keputusan akhir **Deny**. Jika tidak ada SCP, atau jika SCP mengizinkan tindakan yang diminta, evaluasi kode penegakan berlanjut.
+ **Kebijakan berbasis sumber daya — Dalam akun yang sama, kebijakan berbasis** sumber daya berdampak pada evaluasi kebijakan secara berbeda tergantung pada jenis prinsipal yang mengakses sumber daya, dan prinsip yang diizinkan dalam kebijakan berbasis sumber daya. Bergantung pada jenis prinsipal, kebijakan berbasis sumber daya dapat menghasilkan keputusan akhir`Allow`, bahkan jika ada penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi. `Allow`

  Untuk sebagian besar sumber daya, Anda hanya perlu eksplisit `Allow` untuk prinsipal baik dalam kebijakan berbasis identitas atau kebijakan berbasis sumber daya untuk memberikan akses. [Kebijakan kepercayaan peran IAM dan kebijakan](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) [kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) [adalah pengecualian untuk logika ini, karena mereka harus secara eksplisit mengizinkan akses untuk prinsipal.](reference_policies_elements_principal.md) Kebijakan berbasis sumber daya untuk layanan selain IAM dan AWS KMS mungkin juga memerlukan `Allow` pernyataan eksplisit dalam akun yang sama untuk memberikan akses. Untuk informasi selengkapnya, lihat dokumentasi untuk layanan spesifik yang sedang Anda kerjakan.

  Untuk permintaan evaluasi kebijakan akun tunggal, logika kebijakan berbasis sumber daya berbeda dari jenis kebijakan lainnya jika prinsipal yang ditentukan adalah pengguna IAM, peran IAM, atau prinsipal sesi. [Prinsipal sesi termasuk [sesi peran IAM](reference_policies_elements_principal.md#principal-role-session) atau prinsip pengguna federasi AWS STS .](reference_policies_elements_principal.md#sts-session-principals) Jika kebijakan berbasis sumber daya memberikan izin langsung kepada pengguna IAM atau kepala sesi yang membuat permintaan, maka penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi tidak memengaruhi keputusan akhir.
  + **Peran IAM** — Kebijakan berbasis sumber daya yang memberikan izin ke ARN peran IAM dibatasi oleh penolakan implisit dalam batas izin atau kebijakan sesi. Anda dapat menentukan peran ARN dalam elemen Principal atau kunci `aws:PrincipalArn` kondisi. Dalam kedua kasus tersebut, prinsipal yang membuat permintaan adalah **sesi peran IAM**.

    Batas izin dan kebijakan sesi tidak membatasi izin yang diberikan menggunakan kunci `aws:PrincipalArn` kondisi dengan wildcard (\$1) di elemen Principal, kecuali kebijakan berbasis identitas berisi penolakan eksplisit. Untuk informasi selengkapnya, lihat [Kepala peran IAM](reference_policies_elements_principal.md#principal-roles).

    **Contoh peran ARN**

    ```
    arn:aws:iam::111122223333:role/examplerole
    ```
  + **Sesi peran IAM** — Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin ke sesi peran IAM ARN memberikan izin langsung ke sesi peran yang diasumsikan. Izin yang diberikan langsung ke sesi tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi. Ketika Anda mengambil peran dan membuat permintaan, kepala sekolah yang membuat permintaan adalah sesi peran IAM ARN dan bukan ARN dari peran itu sendiri. Untuk informasi selengkapnya, lihat [Kepala sesi peran](reference_policies_elements_principal.md#principal-role-session).

    **Contoh sesi peran ARN**

    ```
    arn:aws:sts::111122223333:assumed-role/examplerole/examplerolesessionname
    ```
  + **Pengguna IAM** — Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin kepada ARN pengguna IAM (yang bukan sesi pengguna gabungan) tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas atau batas izin.

    **Contoh pengguna ARN IAM**

    ```
    arn:aws:iam::111122223333:user/exampleuser
    ```
  + **AWS STS federated user principal** — Sesi pengguna federasi adalah sesi yang dibuat dengan menelepon. [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken) Ketika pengguna federasi membuat permintaan, kepala sekolah yang membuat permintaan adalah pengguna federasi ARN dan bukan ARN dari pengguna IAM yang berfederasi. Dalam akun yang sama, kebijakan berbasis sumber daya yang memberikan izin kepada pengguna federasi ARN memberikan izin langsung ke sesi. Izin yang diberikan langsung ke sesi tidak dibatasi oleh penolakan implisit dalam kebijakan berbasis identitas, batas izin, atau kebijakan sesi.

    Namun, jika kebijakan berbasis sumber daya memberikan izin kepada ARN pengguna IAM yang berfederasi, maka permintaan yang dibuat oleh pengguna federasi selama sesi dibatasi oleh penolakan implisit dalam batas izin atau kebijakan sesi.

    **Contoh ARN sesi pengguna federasi**

    ```
    arn:aws:sts::111122223333:federated-user/exampleuser
    ```
+ **Kebijakan berbasis identitas — Kode penegakan memeriksa kebijakan berbasis** identitas untuk kepala sekolah. Untuk pengguna IAM, ini termasuk kebijakan pengguna dan kebijakan dari grup tempat pengguna berada. **Jika tidak ada kebijakan berbasis identitas atau tidak ada pernyataan dalam kebijakan berbasis identitas yang memungkinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit dan kode penegakan mengembalikan keputusan akhir Deny.** Jika ada pernyataan dalam kebijakan berbasis identitas yang berlaku yang memungkinkan tindakan yang diminta, evaluasi kode berlanjut.
+ **Batas izin IAM — Kode penegakan hukum memeriksa apakah entitas IAM yang digunakan oleh prinsipal memiliki batas izin**. Jika kebijakan yang digunakan untuk menetapkan batas izin tidak mengizinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit. Kode penegakan mengembalikan keputusan akhir **Deny**. Jika tidak ada batas izin, atau jika batas izin memungkinkan tindakan yang diminta, evaluasi kode berlanjut.
+ **Kebijakan sesi** — Kode penegakan memeriksa apakah prinsipal adalah kepala sesi. Prinsipal sesi termasuk sesi peran IAM atau sesi pengguna federasi AWS STS . Jika kepala sekolah bukan kepala sesi, kode penegakan mengembalikan keputusan akhir **Izinkan**.

  Untuk kepala sekolah sesi, kode penegakan memeriksa apakah kebijakan sesi disahkan dalam permintaan. Anda dapat meneruskan kebijakan sesi saat menggunakan AWS API AWS CLI atau untuk mendapatkan kredensi sementara untuk peran atau prinsipal pengguna AWS STS gabungan. Jika Anda tidak lulus kebijakan sesi, kebijakan sesi default akan dibuat dan kode penegakan akan mengembalikan keputusan akhir **Izinkan**.
  + Jika kebijakan sesi hadir dan tidak mengizinkan tindakan yang diminta, maka permintaan tersebut ditolak secara implisit. Kode penegakan mengembalikan keputusan akhir **Deny**.
  + Kode penegakan memeriksa apakah kepala sekolah adalah sesi peran. Jika kepala sekolah adalah sesi peran, maka permintaan tersebut **Diizinkan**. **Jika tidak, permintaan secara implisit ditolak dan kode penegakan mengembalikan keputusan akhir Deny.**
  + Jika kebijakan sesi hadir dan memungkinkan tindakan yang diminta, maka kode penegakan mengembalikan keputusan akhir **Izinkan**.

# Evaluasi kebijakan untuk permintaan dalam satu akun
<a name="reference_policies_evaluation-logic_policy-eval-basics"></a>

## Evaluasi kebijakan untuk peran IAM
<a name="policy-eval-basics-single-account-role"></a>

Diagram alir berikut memberikan rincian tentang bagaimana keputusan evaluasi kebijakan dibuat untuk peran IAM dalam satu akun.

![\[Diagram alur evaluasi untuk peran IAM dalam satu akun\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/PolicyEvaluationSingleAccountRole.png)


## Evaluasi kebijakan untuk pengguna IAM
<a name="policy-eval-basics-single-account-user"></a>

Diagram alir berikut memberikan rincian tentang bagaimana keputusan evaluasi kebijakan dibuat untuk pengguna IAM dalam satu akun.

![\[Diagram alur evaluasi untuk pengguna IAM dalam satu akun\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/PolicyevaluationSingleAccountUser.png)


## Contoh evaluasi kebijakan berbasis identitas dan kebijakan berbasis sumber daya
<a name="reference_policies_evaluation-logic_policies_evaluation_example"></a>

Tipe kebijakan yang paling umum adalah kebijakan berbasis identitas dan kebijakan berbasis sumber daya. Ketika akses ke sumber daya diminta, AWS evaluasi semua izin yang diberikan oleh kebijakan untuk **setidaknya satu Izinkan dalam akun** yang sama. Penolakan eksplisit dalam salah satu kebijakan mengesampingkan izin.

**penting**  
Jika kebijakan berbasis identitas atau kebijakan berbasis sumber daya dalam akun yang sama mengizinkan permintaan dan yang lainnya tidak, permintaan tetap diizinkan.

Asumsikan bahwa Carlos memiliki nama pengguna `carlossalazar` dan dia mencoba menyimpan file ke bucket Amazon S3 `amzn-s3-demo-bucket-carlossalazar-logs`. 

Juga asumsikan bahwa kebijakan berikut ini diberlakukan pada pengguna IAM `carlossalazar`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowS3Self",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::*log*"
        }
    ]
}
```

------

Pernyataan `AllowS3ListRead` dalam kebijakan ini memungkinkan Carlos melihat daftar semua bucket di akun. Pernyataan `AllowS3Self` memungkinkan Carlos mendapatkan akses penuh ke bucket dengan nama yang sama dengan nama penggunanya. Pernyataan `DenyS3Logs` menolak akses Carlos ke setiap bucket S3 mana pun dengan `log` dalam namanya. 

Selain itu, kebijakan berbasis sumber daya berikut (disebut kebijakan buket) dilampirkan ke bucket `amzn-s3-demo-bucket-carlossalazar`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/carlossalazar"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar"
            ]
        }
    ]
}
```

------

Kebijakan ini menetapkan bahwa hanya pengguna `carlossalazar` yang dapat mengakses bucket `amzn-s3-demo-bucket-carlossalazar`.

Ketika Carlos membuat permintaannya untuk menyimpan file ke `amzn-s3-demo-bucket-carlossalazar-logs` ember, AWS tentukan kebijakan apa yang berlaku untuk permintaan tersebut. Dalam kasus ini, hanya kebijakan berbasis identitas dan kebijakan berbasis sumber daya yang berlaku. Keduanya adalah kebijakan izin. Karena batas izin tidak berlaku, logika evaluasi dikurangi ke logika berikut.

![\[Bagan alir evaluasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/EffectivePermissionsShort.png)


AWS pertama memeriksa `Deny` pernyataan yang berlaku untuk konteks permintaan. Ia menemukan satu, karena kebijakan berbasis identitas secara eksplisit menyangkal akses Carlos ke bucket S3 yang digunakan untuk logging. Akses Carlos ditolak. 

Asumsikan bahwa dia kemudian menyadari kesalahannya dan mencoba menyimpan file ke `amzn-s3-demo-bucket-carlossalazar` ember. AWS memeriksa `Deny` pernyataan dan tidak menemukannya. Kemudian memeriksa kebijakan izin. Baik kebijakan berbasis identitas maupun kebijakan berbasis sumber daya mengizinkan permintaan tersebut. Karena itu, AWS memungkinkan permintaan. Jika salah satu dari mereka menolak pernyataan tersebut secara tegas, permintaan tersebut akan ditolak. Jika salah satu tipe kebijakan mengizinkan permintaan tersebut dan tipe yang lainnya tidak, permintaan tersebut masih diperbolehkan.

# Logika evaluasi kebijakan lintas akun
<a name="reference_policies_evaluation-logic-cross-account"></a>

Anda dapat mengizinkan prinsipal di satu akun untuk mengakses sumber daya di akun kedua. Hal ini dikenal sebagai akses lintas akun. Saat Anda mengizinkan akses lintas akun, akun yang memiliki prinsipal disebut akun *tepercaya*. Akun yang memiliki sumber daya disebut akun *kepercayaan*. 

Untuk memungkinkan akses lintas akun, Anda melampirkan kebijakan berbasis sumber daya ke sumber daya yang ingin Anda bagikan. Anda juga harus melampirkan kebijakan berbasis identitas pada identitas yang bertindak sebagai kepala sekolah dalam permintaan. Kebijakan berbasis sumber daya dalam akun kepercayaan harus menyebutkan prinsipal akun tepercaya yang akan memiliki akses ke sumber daya tersebut. Anda dapat menentukan seluruh akun atau pengguna IAM-nya, prinsip pengguna AWS STS federasi, peran IAM, atau sesi peran yang dianggap. Anda juga dapat menentukan AWS layanan sebagai kepala sekolah. Untuk informasi selengkapnya, lihat [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying). 

Kebijakan berbasis identitas prinsipal harus mengizinkan akses yang diminta ke sumber daya dalam layanan kepercayaan. Anda dapat melakukan ini dengan menentukan ARN sumber daya.

Di IAM, Anda dapat memberlakukan kebijakan berbasis sumber daya ke peran IAM agar prinsipal di akun lain dapat mengambil peran tersebut. Kebijakan berbasis sumber daya peran ini disebut kebijakan kepercayaan peran. Setelah mengambil peran tersebut, prinsipal yang diizinkan dapat menggunakan kredensial sementara yang dihasilkan untuk mengakses beberapa sumber daya dalam akun Anda. Akses ini ditetapkan dalam kebijakan izin berbasis identitas dari peran tersebut. Untuk mempelajari cara memungkinkan akses lintas akun menggunakan peran berbeda dengan mengizinkan akses lintas akun menggunakan kebijakan berbasis sumber daya lainnya, lihat [Akses sumber daya lintas akun di IAM](access_policies-cross-account-resource-access.md). 

**penting**  
Layanan lain dapat memengaruhi logika evaluasi kebijakan. Misalnya, AWS Organizations mendukung [kebijakan kontrol layanan dan kebijakan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) [kontrol sumber daya](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) yang dapat diterapkan pada prinsipal dan sumber daya dalam satu atau beberapa akun. AWS Resource Access Manager mendukung [fragmen kebijakan](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html) yang mengontrol tindakan mana yang diizinkan dilakukan oleh prinsipal pada sumber daya yang dibagikan dengannya.

## Menentukan apakah permintaan lintas akun diizinkan atau ditolak.
<a name="policy-eval-cross-account"></a>

Untuk permintaan lintas akun, pemohon dalam `AccountA` tepercaya harus memiliki kebijakan berbasis identitas. Kebijakan yang harus memungkinkan mereka membuat permintaan ke sumber daya dalam `AccountB` kepercayaan. Selain itu, kebijakan berbasis sumber daya di `AccountB` harus mengizinkan pemohon di `AccountA` untuk mengakses sumber daya.

Saat Anda membuat permintaan lintas akun, AWS lakukan dua evaluasi. AWS mengevaluasi permintaan di akun kepercayaan dan akun tepercaya. Untuk informasi selengkapnya tentang bagaimana permintaan dievaluasi di satu akun, lihat [Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses](reference_policies_evaluation-logic_policy-eval-denyallow.md). Permintaan hanya diperbolehkan jika kedua evaluasi menghasilkan keputusan `Allow`.

![\[Evaluasi lintas akun\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/policy_cross-account-eval-simple.png)


1. Jika prinsipal di satu akun mengajukan permintaan untuk mengakses sumber daya di akun lain, ini adalah permintaan lintas akun.

1. Prinsipal mengajukan permohonan ada di akun tepercaya (`AccountA`). Saat AWS mengevaluasi akun ini, AWS memeriksa kebijakan berbasis identitas dan kebijakan apa pun yang dapat membatasi kebijakan berbasis identitas. Untuk informasi selengkapnya, lihat [Mengevaluasi kebijakan berbasis identitas dengan batas izin](reference_policies_evaluation-logic.md#policy-eval-basics-id-bound).

1. Sumber daya yang diminta ada di akun kepercayaan (`AccountB`). Saat AWS mengevaluasi akun ini, AWS memeriksa kebijakan berbasis sumber daya yang dilampirkan ke sumber daya yang diminta dan setiap kebijakan yang dapat membatasi kebijakan berbasis sumber daya. Untuk informasi selengkapnya, lihat [Mengevaluasi kebijakan berbasis identitas dengan kebijakan berbasis sumber daya](reference_policies_evaluation-logic.md#policy-eval-basics-id-rdp).

1. AWS mengizinkan permintaan hanya jika kedua evaluasi kebijakan akun mengizinkan permintaan tersebut.

Diagram alir berikut memberikan ilustrasi yang lebih rinci tentang bagaimana keputusan evaluasi kebijakan dibuat untuk permintaan lintas akun. Sekali lagi, AWS izinkan permintaan hanya jika kedua evaluasi kebijakan akun mengizinkan permintaan tersebut.

![\[Evaluasi kebijakan lintas akun terperinci\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/PolicyEvaluationCrossAccount.png)


## Contoh evaluasi kebijakan lintas akun
<a name="policies_evaluation_example-cross-account"></a>

Contoh berikut menunjukkan skenario di mana peran dalam satu akun diberikan izin oleh kebijakan berbasis sumber daya di akun kedua.

Asumsikan bahwa Carlos adalah pengembang dengan peran IAM yang disebutkan `Demo` di akun 11111111111111. Dia ingin menyimpan file ke bucket Amazon S3 `amzn-s3-demo-bucket-production-logs` di akun 222222222222. 

Asumsikan juga bahwa kebijakan berikut ini melekat pada peran `Demo` IAM.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3ListRead",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowS3ProductionObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::*log*",
                "arn:aws:s3:::*log*/*"
            ]
        }
    ]
}
```

------

Pernyataan `AllowS3ListRead` dalam kebijakan ini memungkinkan Carlos melihat daftar semua bucket di Amazon S3. Pernyataan `AllowS3ProductionObjectActions` memungkinkan Carlos sepenuhnya mengakses objek di bucket `amzn-s3-demo-bucket-production`.

Selain itu, kebijakan berbasis sumber daya berikut (disebut kebijakan buket) diberlakukan untuk bucket `amzn-s3-demo-bucket-production` di akun 222222222222. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject*",
                "s3:PutObject*",
                "s3:ReplicateObject",
                "s3:RestoreObject"
            ],
            "Principal": { "AWS": "arn:aws:iam::111111111111:role/Demo" },
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-production/*"
        }
    ]
}
```

------

Kebijakan ini memungkinkan `Demo` peran untuk mengakses objek di `amzn-s3-demo-bucket-production` bucket. Peran dapat membuat dan mengedit, tetapi tidak menghapus objek di ember. Peran tidak dapat mengelola ember itu sendiri.

Ketika Carlos membuat permintaannya untuk menyimpan file ke `amzn-s3-demo-bucket-production-logs` ember, AWS tentukan kebijakan apa yang berlaku untuk permintaan tersebut. Dalam hal ini, kebijakan berbasis identitas yang melekat pada `Demo` peran adalah satu-satunya kebijakan yang berlaku di akun. `111111111111` Di akun `222222222222`, tidak ada kebijakan berbasis sumber daya yang dilampirkan ke bucket `amzn-s3-demo-bucket-production-logs`. Ketika AWS mengevaluasi akun`111111111111`, ia mengembalikan keputusan. `Deny` Ini karena pernyataan `DenyS3Logs` dalam kebijakan berbasis identitas secara eksplisit menolak akses ke bucket log. Untuk informasi selengkapnya tentang bagaimana permintaan dievaluasi di satu akun, lihat [Bagaimana logika kode AWS penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses](reference_policies_evaluation-logic_policy-eval-denyallow.md).

Karena permintaan tersebut secara tegas ditolak di dalam salah satu akun, keputusan akhir adalah menolak permintaan tersebut.

![\[Permintaan ke amzn-s3- bucket demo-bucket-production-logs\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/policy_cross-account-eval-example.png)


Asumsikan bahwa Carlos kemudian menyadari kesalahannya dan mencoba menyimpan file ke ember. `Production` AWS pertama memeriksa akun `111111111111` untuk menentukan apakah permintaan diizinkan. Hanya kebijakan berbasis identitas yang berlaku, dan memungkinkan permintaan. AWS kemudian memeriksa akun`222222222222`. Hanya kebijakan berbasis sumber daya yang dilampirkan pada bucket `Production` yang berlaku, dan ini mengizinkan permintaan. Karena kedua akun mengizinkan permintaan tersebut, keputusan akhir adalah untuk mengizinkan permintaan tersebut.

![\[Permintaan untuk bucket Produksi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/policy_cross-account-eval-example-correct.png)


# Perbedaan antara penolakan tegas dan implisit.
<a name="reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay"></a>

Permintaan menghasilkan penolakan eksplisit jika kebijakan yang berlaku mencakup pernyataan `Deny`. Jika kebijakan yang berlaku untuk permintaan mencakup pernyataan `Allow` dan `Deny`, pernyataan `Deny` mengalahkan pernyataan `Allow`. Permintaan ditolak secara tegas.

Penolakan implisit terjadi saat tidak ada pernyataan `Deny` yang berlaku, tetapi juga tidak ada pernyataan `Allow`. Karena prinsipal IAM ditolak aksesnya secara default, mereka harus secara eksplisit diizinkan untuk melakukan tindakan. Jika tidak, akse pengguna akan ditolak secara implisit.

Saat Anda merancang strategi otorisasi, Anda harus membuat kebijakan dengan pernyataan `Allow` agar prinsipal Anda berhasil membuat permintaan. Namun, Anda dapat memilih kombinasi penyangkalan eksplisit dan implisit. 

Misalnya, Anda dapat membuat kebijakan berikut yang mencakup tindakan yang diizinkan, tindakan yang ditolak secara implisit, dan tindakan yang ditolak secara eksplisit. `AllowGetList`Pernyataan **ini memungkinkan** akses hanya-baca ke tindakan IAM yang dimulai dengan awalan dan. `Get` `List` Semua tindakan lain di IAM, seperti ditolak `iam:CreatePolicy` secara **implisit**. `DenyReports`Pernyataan tersebut secara **eksplisit menolak** akses ke laporan IAM dengan menolak akses ke tindakan yang menyertakan akhiran, seperti. `Report` `iam:GetOrganizationsAccessReport` Jika seseorang menambahkan kebijakan lain ke prinsipal ini untuk memberi mereka akses ke laporan IAM, seperti`iam:GenerateCredentialReport`, permintaan terkait laporan masih ditolak karena penolakan eksplisit ini.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGetList",
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyReports",
            "Effect": "Deny",
            "Action": "iam:*Report",
            "Resource": "*"
        }
    ]
}
```

------

# Tata bahasa kebijakan IAM JSON
<a name="reference_policies_grammar"></a>

Halaman ini menyajikan tata bahasa formal untuk bahasa yang digunakan untuk membuat kebijakan JSON di IAM. Kami menyajikan tata bahasa ini sehingga Anda dapat memahami cara menyusun dan memvalidasi kebijakan.

Untuk contoh kebijakan, lihat topik berikut:
+ [Kebijakan dan izin di AWS Identity and Access Management](access_policies.md)
+ [Contoh kebijakan berbasis identitas IAM](access_policies_examples.md)
+ [Contoh Kebijakan untuk Bekerja di Konsol Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html) *dan [Contoh Kebijakan untuk Bekerja Dengan CLI, Amazon EC2 AWS CLI, atau SDK AWS di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html).* 
+  [Contoh Kebijakan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) dan [Contoh Kebijakan Pengguna](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

Untuk contoh kebijakan yang digunakan dalam AWS layanan lain, buka dokumentasi untuk layanan tersebut.

**Topics**
+ [Bahasa kebijakan dan JSON](#policies-grammar-json)
+ [Konvensi yang digunakan dalam tata bahasa ini](#policies-grammar-conventions)
+ [Tata Bahasa](#policies-grammar-bnf)
+ [Catatan tata bahasa kebijakan](#policies-grammar-notes)

## Bahasa kebijakan dan JSON
<a name="policies-grammar-json"></a>

Kebijakan dinyatakan dalam JSON. Saat Anda membuat atau mengedit kebijakan JSON, IAM dapat melakukan validasi kebijakan untuk membantu Anda membuat kebijakan yang efektif. IAM mengidentifikasi kesalahan sintaks JSON, sementara IAM Access Analyzer menyediakan pemeriksaan kebijakan tambahan dengan rekomendasi untuk membantu Anda menyempurnakan kebijakan Anda lebih lanjut. Untuk mempelajari selengkapnya tentang validasi kebijakan, lihat [Validasi kebijakan IAM](access_policies_policy-validator.md). Untuk mempelajari selengkapnya tentang pemeriksaan kebijakan IAM Access Analyzer dan rekomendasi yang dapat ditindaklanjuti, lihat validasi kebijakan [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) Access Analyzer. 

Dalam dokumen ini, kami tidak memberikan deskripsi lengkap mengenai segala sesuatu yang termasuk dalam JSON yang valid. Namun, berikut ini beberapa aturan dasar JSON:
+ Spasi kosong antara entitas individu diperbolehkan.
+ Nilai diapit dengan tanda petik. Tanda petik adalah bersifat opsional untuk nilai numerik dan Boolean.
+ Banyak elemen (misalnya, `action_string_list` dan `resource_string_list`) dapat mengambil susunan JSON sebagai nilai. Susunan dapat mengambil satu atau beberapa nilai. Jika ada lebih dari satu nilai yang disertakan, susunan tersebut berada dalam kurung persegi (`[` dan `]`) dan dipisahkan dengan koma, seperti dalam contoh berikut: 

  `"Action" : ["ec2:Describe*","ec2:List*"]`
+ Tipe data dasar JSON (Boolean, angka, dan string) ditentukan dalam [RFC 7159](https://datatracker.ietf.org/doc/html/rfc7159).

## Konvensi yang digunakan dalam tata bahasa ini
<a name="policies-grammar-conventions"></a>

Konvensi berikut digunakan dalam tata bahasa ini:
+ Karakter berikut adalah token JSON dan *disertakan* dalam kebijakan:

  `{ } [ ] " , :`
+ Karakter berikut adalah karakter khusus dalam tata bahasa dan *tidak* disertakan dalam kebijakan: 

  `= < > ( ) |`
+ Jika suatu elemen memungkinkan beberapa nilai, elemen tersebut ditunjukkan menggunakan nilai berulang, pemisah koma, dan elipsis (`...`). Contoh:

  `[<action_string>, <action_string>, ...]`

  `<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }`

  Jika beberapa nilai diperbolehkan, memasukkan hanya satu nilai juga akan valid. Hanya untuk satu nilai, koma di akhir harus dihilangkan. Jika elemen mengambil sebuah susunan (ditandai dengan [dan]) tetapi hanya satu nilai yang disertakan, tanda kurung bersifat opsional. Contoh:

  `"Action": [<action_string>]`

  `"Action": <action_string>`
+ Tanda tanya (`?`) setelah elemen tertentu menunjukkan bahwa elemen tersebut bersifat opsional. Contoh: 

  <`version_block?>`

  Namun, pastikan untuk merujuk pada catatan yang mengikuti daftar tata bahasa untuk perincian tentang elemen opsional. 
+ Garis vertikal (`|`) di antara elemen menunjukkan alternatif. Dalam tata bahasa, tanda kurung menentukan ruang lingkup alternatif. Contoh:

  `("Principal" | "NotPrincipal")` 
+ Elemen yang harus berupa string literal diapit dengan tanda petik ganda (`"`). Contoh:

  `<version_block> = "Version" : ("2008-10-17" | "2012-10-17" )`

Untuk catatan tambahan, lihat [Catatan tata bahasa kebijakan](#policies-grammar-notes) mengikuti daftar tata bahasa.

## Tata Bahasa
<a name="policies-grammar-bnf"></a>

Daftar berikut menjelaskan tata bahasa kebijakan. Untuk konvensi yang digunakan dalam daftar, lihat bagian sebelumnya. Untuk informasi tambahan, lihat catatan setelahnya.

**catatan**  
Tata bahasa ini menjelaskan kebijakan yang ditandai dengan versi `2008-10-17 ` dan `2012-10-17 `. Elemen kebijakan `Version` berbeda dari versi kebijakan. Elemen kebijakan `Version` digunakan dalam kebijakan dan menentukan versi bahasa kebijakan. Versi kebijakan, di sisi lain, dibuat ketika Anda membuat perubahan pada kebijakan yang dikelola pelanggan di IAM. Perubahan kebijakan tidak mengesampingkan kebijakan yang ada. Sebagai gantinya, IAM membuat versi baru dari kebijakan yang dikelola. Untuk mempelajari lebih lanjut tentang elemen kebijakan `Version`, lihat [Elemen kebijakan IAM JSON: Version](reference_policies_elements_version.md). Untuk mempelajari selengkapnya tentang versi kebijakan, lihat [Peningkatan versi IAM](access_policies_managed-versioning.md).

```
policy  = {
     <version_block?>,
     <id_block?>,
     <statement_block>
}

<version_block> = "Version" : ("2008-10-17"		 	 	  | "2012-10-17"		 	 	 )

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = { 
    <sid_block?>,
    <principal_block?>,
    <effect_block>,
    <action_block>,
    <resource_block>,
    <condition_block?>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")  

<principal_block> = ("Principal" | "NotPrincipal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("AWS" | "Federated" | "Service" | "CanonicalUser") :   
    [<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action" | "NotAction") : 
    ("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource" | "NotResource") : 
    : ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

<condition_block> = "Condition" : { <condition_map> }
<condition_map> = { 
  <condition_type_string> : { <condition_key_string> : <condition_value_list> },
  <condition_type_string> : { <condition_key_string> : <condition_value_list> }, ...
}  
<condition_value_list> = [<condition_value>, <condition_value>, ...]
<condition_value> = (<condition_value_string> | <condition_value_string> | <condition_value_string>)
```

## Catatan tata bahasa kebijakan
<a name="policies-grammar-notes"></a>
+ Satu kebijakan dapat berisi serangkaian pernyataan.
+ Kebijakan memiliki ukuran maksimum antara 2.048 karakter hingga 10.240 karakter, bergantung pada entitas yang menyertai kebijakan tersebut. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md). Perhitungan ukuran kebijakan tidak mencakup karakter spasi kosong.
+ Elemen individu dilarang berisi beberapa kasus dari kunci yang sama. Misalnya, Anda tidak dapat menyertakan blok `Effect` dua kali dalam pernyataan yang sama. 
+ Blok dapat muncul dalam urutan apa pun. Misalnya, `version_block` dapat mengikuti `id_block` dalam kebijakan. Demikian pula, `effect_block`, `principal_block`, `action_block` dapat muncul dengan urutan apa pun dalam pernyataan.
+ `id_block` bersifat opsional dalam kebijakan berbasis sumber daya. Komponen itu *dilarang* dimasukkan dalam kebijakan berbasis identitas.
+ `principal_block` diperlukan dalam kebijakan berbasis sumber daya (misalnya, dalam kebijakan bucket Amazon S3 dan dalam kebijakan kepercayaan untuk peran IAM. Komponen itu *dilarang* dimasukkan dalam kebijakan berbasis identitas.
+ Elemen `principal_map` di kebijakan bucket Amazon S3 dapat mencakup ID `CanonicalUser`. Sebagian besar kebijakan berbasis sumber daya tidak mendukung pemetaan ini. Untuk mempelajari lebih lanjut tentang menggunakan ID pengguna kanonik dalam kebijakan bucket, lihat [Menentukan Prinsipal dalam Kebijakan di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-bucket-user-policy-specifying-principal-intro.html) Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.
+ Setiap nilai string (`policy_id_string`, `sid_string`, `principal_id_string`, `action_string`, `resource_string`, `condition_type_string`, `condition_key_string`, dan versi string dari `condition_value`) dapat memiliki batasan panjang minimal dan maksimal, nilai tertentu yang diizinkan, atau format internal yang diperlukan.

### Catatan tentang nilai string
<a name="policies-grammar-notes-strings"></a>

Bagian ini menyediakan informasi tambahan tentang nilai string yang digunakan dalam elemen yang berbeda dalam kebijakan.

**`action_string`**  
Terdiri dari namespace layanan, titik dua, dan nama tindakan Nama tindakan dapat mencakup kartu bebas. Contoh:  

```
"Action":"ec2:StartInstances"

"Action":[
  "ec2:StartInstances",
  "ec2:StopInstances"
]

"Action":"cloudformation:*"

"Action":"*"

"Action":[
  "s3:Get*",
  "s3:List*"
]
```

**`policy_id_string`**  
Menyediakan cara untuk menyertakan informasi tentang kebijakan secara keseluruhan. Beberapa layanan, seperti Amazon SQS dan Amazon SNS, menggunakan elemen `Id` dengan cara khusus. Kecuali jika dibatasi oleh layanan individu, policy\$1id\$1string dapat mencakup spasi. Beberapa layanan mewajibkan nilai ini unik di dalam akun AWS .   
`id_block` diperbolehkan dalam kebijakan berbasis sumber daya, tetapi tidak dalam kebijakan berbasis identitas
Tidak ada batas panjang, meskipun string ini berkontribusi pada panjang kebijakan secara keseluruhan, yang dibatasi.   

```
"Id":"Admin_Policy"

"Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee"
```

**`sid_string`**  
Memberikan cara untuk menyertakan informasi tentang pernyataan individu. Untuk kebijakan IAM, karakter alfanumerik dasar (A-Z,a-z,0-9) adalah hanya karakter yang diperbolehkan dalam nilai `Sid`. Layanan AWS lain yang mendukung kebijakan sumber daya mungkin memiliki persyaratan lain untuk nilai `Sid`. Misalnya, beberapa layanan memerlukan nilai ini menjadi unik di dalam Akun AWS, dan beberapa layanan memungkinkan karakter tambahan seperti spasi dalam `Sid` nilai.  

```
"Sid":"1" 

"Sid": "ThisStatementProvidesPermissionsForConsoleAccess"
```

**`principal_id_string`**  
Menyediakan cara untuk menentukan prinsipal menggunakan [*Amazon Resource Name* (ARN)](reference_identifiers.md#identifiers-arns) dari, pengguna IAM Akun AWS, peran IAM, pengguna federasi, atau pengguna peran yang dianggap. Untuk itu Akun AWS, Anda juga dapat menggunakan formulir pendek `AWS:accountnumber` alih-alih ARN penuh. Untuk semua opsi termasuk layanan AWS , peran yang diasumsikan, dan sebagainya, lihat [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying).  
Perhatikan bahwa Anda dapat menggunakan \$1 hanya untuk menentukan "semua orang/anonim". Anda tidak dapat menggunakannya Iuntuk menentukan bagian nama atau ARN.

**`resource_string`**  
Dalam sebagian besar kasus, terdiri atas [Amazon Resource Name](reference_identifiers.md#identifiers-arns) (ARN Anda dapat menggunakan wildcard (\$1 dan?) di bagian sumber daya ARN. Untuk informasi selengkapnya tentang penggunaan wildcard di ARNs, lihat[Menggunakan wildcard di jalur](reference-arns.md#arns-paths-wildcards).  
Saat Anda menentukan ARN yang tidak lengkap (satu dengan kurang dari enam bidang standar) dalam kebijakan berbasis identitas, AWS secara otomatis menyelesaikan ARN dengan menambahkan karakter wildcard (\$1) ke semua bidang yang hilang. Misalnya, menentukan `arn:aws:sqs` setara dengan`arn:aws:sqs:*:*:*`, yang memberikan akses ke semua sumber daya Amazon SQS di semua wilayah dan akun.

```
"Resource":"arn:aws:iam::123456789012:user/Bob"

"Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*"
```

**`condition_type_string`**  
Mengidentifikasi tipe kondisi yang diuji, seperti `StringEquals`, `StringLike`, `NumericLessThan`, `DateGreaterThanEquals`, `Bool`, `BinaryEquals`, `IpAddress`, `ArnEquals`, dll. Untuk daftar lengkap tipe kondisi, lihat [Elemen kebijakan JSON IAM: Operator kondisi](reference_policies_elements_condition_operators.md).   

```
"Condition": {
  "NumericLessThanEquals": {
    "s3:max-keys": "10"
  }
}

"Condition": {
  "Bool": {
    "aws:SecureTransport": "true"
  }
}

"Condition": {
  "StringEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}
```

**`condition_key_string`**  
Mengidentifikasi kunci kondisi yang nilainya akan diuji untuk menentukan apakah kondisi terpenuhi. AWS mendefinisikan satu set kunci kondisi yang tersedia di semua AWS layanan, termasuk, `aws:PrincipalType``aws:SecureTransport`, dan`aws:userid`.  
Untuk daftar kunci AWS kondisi, lihat[AWS kunci konteks kondisi global](reference_policies_condition-keys.md). Untuk kunci kondisi kepatuhan yang bersifat khusus terhadap layanan, lihat dokumentasi untuk layanan tersebut seperti berikut:  
+ [Menentukan Ketentuan dalam Kebijakan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*
+ [Kebijakan IAM untuk Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) EC2 di Panduan Pengguna *Amazon EC2*.

```
"Condition":{
  "Bool": {
      "aws:SecureTransport": "true"
   }
}

"Condition": {
  "StringNotEquals": {
      "s3:x-amz-server-side-encryption": "AES256"
   }
}

"Condition": {
  "StringEquals": {
    "aws:ResourceTag/purpose": "test"
  }
}
```

**`condition_value_string`**  
Mengidentifikasi nilai condition\$1key\$1string yang menentukan apakah kondisi terpenuhi. Untuk daftar lengkap nilai valid untuk jenis kondisi, lihat[Elemen kebijakan JSON IAM: Operator kondisi](reference_policies_elements_condition_operators.md).  

```
"Condition":{
  "ForAnyValue:StringEquals": {
		"dynamodb:Attributes": [
			"ID",
			"PostDateTime"
  	      ]
  }
}
```

# AWS kebijakan terkelola untuk fungsi pekerjaan
<a name="access_policies_job-functions"></a>

Sebaiknya gunakan kebijakan yang [memberikan hak istimewa paling sedikit](best-practices.md#grant-least-privilege), atau hanya memberikan izin yang diperlukan untuk melakukan tugas. Cara paling aman untuk memberikan hak istimewa paling sedikit adalah dengan menulis kebijakan khusus hanya dengan izin yang diperlukan oleh tim Anda. Anda harus membuat proses untuk memungkinkan tim Anda meminta lebih banyak izin bila diperlukan. Dibutuhkan waktu dan keahlian untuk [membuat kebijakan yang dikelola pelanggan IAM](access_policies_create-console.md) yang hanya memberi tim Anda izin yang mereka butuhkan.

Untuk mulai menambahkan izin ke identitas IAM Anda (pengguna, grup pengguna, dan peran), Anda dapat menggunakannya. [AWS kebijakan terkelola](access_policies_managed-vs-inline.md#aws-managed-policies) AWS kebijakan terkelola mencakup kasus penggunaan umum dan tersedia di Anda Akun AWS. AWS kebijakan terkelola tidak memberikan izin hak istimewa paling sedikit. Anda harus mempertimbangkan risiko keamanan untuk memberikan izin kepada kepala sekolah Anda lebih banyak daripada yang mereka butuhkan untuk melakukan pekerjaan mereka.

Anda dapat melampirkan kebijakan AWS terkelola, termasuk fungsi pekerjaan, ke identitas IAM apa pun. Untuk beralih ke izin hak istimewa terkecil, Anda dapat menjalankan AWS Identity and Access Management dan Access Analyzer untuk memantau prinsipal dengan kebijakan terkelola. AWS Setelah mengetahui izin yang mereka gunakan, Anda dapat menulis kebijakan khusus atau membuat kebijakan hanya dengan izin yang diperlukan untuk tim Anda. Ini kurang aman, tetapi memberikan lebih banyak fleksibilitas saat Anda mempelajari bagaimana tim Anda menggunakan AWS.

AWS kebijakan terkelola untuk fungsi pekerjaan dirancang untuk menyelaraskan secara dekat dengan fungsi pekerjaan umum di industri TI. Anda dapat menggunakan kebijakan ini untuk memberikan izin yang diperlukan untuk melaksanakan tugas yang diharapkan dari seseorang dalam fungsi pekerjaan tertentu. Kebijakan ini mengonsolidasikan izin untuk banyak layanan ke dalam kebijakan tunggal yang lebih mudah digunakan daripada memiliki izin yang tersebar di banyak kebijakan.

**Menggunakan Peran untuk Menggabungkan Layanan**  
Beberapa kebijakan menggunakan peran layanan IAM untuk membantu Anda memanfaatkan fitur yang ditemukan di AWS layanan lain. Kebijakan ini memberikan akses ke`iam:passrole`, yang memungkinkan pengguna dengan kebijakan untuk meneruskan peran ke AWS layanan. Peran ini mendelegasikan izin IAM ke AWS layanan untuk melakukan tindakan atas nama Anda.

Anda harus membuat peran sesuai dengan kebutuhan Anda. Misalnya, kebijakan Administrator Jaringan memungkinkan pengguna dengan kebijakan untuk meneruskan peran bernama "flow-logs-vpc" ke CloudWatch layanan Amazon. CloudWatch menggunakan peran itu untuk mencatat dan menangkap lalu lintas IP yang VPCs dibuat oleh pengguna.

Untuk mengikuti praktik terbaik keamanan, kebijakan untuk fungsi pekerjaan mencakup filter yang membatasi nama peran valid yang dapat diberikan. Tindakan ini membantu menghindari memberikan izin yang tidak perlu. Jika pengguna Anda memang memerlukan peran layanan opsional, Anda harus membuat peran yang mengikuti konvensi penamaan yang ditetapkan dalam kebijakan. Kemudian, Anda memberikan izin untuk peran tersebut. Setelah selesai, pengguna dapat mengonfigurasi layanan untuk menggunakan peran, memberikan izin apa pun yang diberikan oleh peran.

Di bagian berikut, nama setiap kebijakan adalah tautan ke halaman perincian kebijakan di Konsol Manajemen AWS. Di sana Anda dapat melihat dokumen kebijakan dan meninjau izin yang diberikan.

## Fungsi pekerjaan administrator
<a name="jf_administrator"></a>

**AWS nama kebijakan terkelola: [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)**

**Kasus penggunaan:** Pengguna ini memiliki akses penuh dan dapat mendelegasikan izin untuk setiap layanan dan sumber daya di AWS.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan semua tindakan untuk semua AWS layanan dan untuk semua sumber daya di akun. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [AdministratorAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

**catatan**  
Sebelum pengguna atau peran IAM dapat mengakses AWS Manajemen Penagihan dan Biaya konsol dengan izin dalam kebijakan ini, Anda harus terlebih dahulu mengaktifkan akses pengguna dan peran IAM. Untuk melakukannya, ikuti petunjuk di [Berikan akses ke konsol penagihan untuk mendelegasikan akses ke konsol](getting-started-account-iam.md) penagihan.

## Fungsi pekerjaan penagihan
<a name="jf_accounts-payable"></a>

**AWS nama kebijakan terkelola:** [Penagihan](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/Billing)

**Kasus penggunaan:** Pengguna ini perlu melihat informasi penagihan, menyiapkan pembayaran, dan mengotorisasi pembayaran. Pengguna dapat memantau biaya yang terakumulasi untuk seluruh AWS layanan.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi tugas, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin penuh untuk mengelola penagihan, biaya, metode pembayaran, anggaran, dan laporan. Untuk contoh kebijakan manajemen biaya tambahan, lihat [contoh AWS Billing kebijakan](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html) di *Panduan AWS Manajemen Penagihan dan Biaya Pengguna*. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [Penagihan](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/Billing.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

**catatan**  
Sebelum pengguna atau peran IAM dapat mengakses AWS Manajemen Penagihan dan Biaya konsol dengan izin dalam kebijakan ini, Anda harus terlebih dahulu mengaktifkan akses pengguna dan peran IAM. Untuk melakukannya, ikuti petunjuk di [Berikan akses ke konsol penagihan untuk mendelegasikan akses ke konsol](getting-started-account-iam.md) penagihan.

## Fungsi pekerjaan administrator basis data
<a name="jf_database-administrator"></a>

**AWS nama kebijakan terkelola: [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)**

**Kasus penggunaan:** Pengguna ini menyiapkan, mengonfigurasi, dan memelihara database di Cloud. AWS 

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi tugas, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk membuat, mengonfigurasi, dan memelihara basis data. Ini termasuk akses ke layanan AWS database, seperti Amazon DynamoDB, Amazon Relational Database Service (RDS), dan Amazon Redshift. Lihat kebijakan untuk mengetahui daftar lengkap layanan basis data yang mendukung kebijakan ini. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [DatabaseAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DatabaseAdministrator.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

Kebijakan fungsi pekerjaan ini mendukung kemampuan untuk meneruskan peran ke AWS layanan. Kebijakan ini mengizinkan tindakan `iam:PassRole` hanya untuk peran yang disebutkan dalam tabel berikut. Untuk informasi lebih lanjut, lihat [Menciptakan peran dan memberlakukan kebijakan (konsol)](access_policies_job-functions_create-policies.md) dalam topik ini.


| Kasus penggunaan | Nama peran (\$1 adalah wildcard) | Jenis peran layanan untuk dipilih | Pilih kebijakan AWS terkelola ini | 
| --- | --- | --- | --- | 
| Memungkinkan pengguna memantau basis data RDS | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Peran Amazon RDS untuk Pemantauan yang Ditingkatkan | [Amazon RDSEnhanced MonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Memungkinkan AWS Lambda untuk memantau database Anda dan mengakses database eksternal | [rdbms-lambda-access](https://aws.amazon.com/blogs/big-data/from-sql-to-microservices-integrating-aws-lambda-with-relational-databases) | Amazon EC2 | [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess) | 
| Izinkan Lambda mengunggah file ke Amazon S3 dan ke cluster Amazon Redshift dengan DynamoDB | [lambda\$1exec\$1role](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | AWS Lambda | Membuat kebijakan pengelolaan baru sebagaimana yang ditentukan dalam [Blog Big Data AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | 
| Izinkan fungsi Lambda bertindak sebagai pemicu untuk tabel DynamoDB Anda | [lambda-dinamodb-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaPeran Dynamo DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 
| Memungkinkan fungsi Lambda mengakses Amazon RDS dalam VPC | [lambda-vpc-execution-role](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | Membuat peran dengan kebijakan kepercayaan seperti yang didefinisikan dalam [Panduan AWS Lambda Pengembang](https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html) | [AWSLambdaVPCAccessExecutionRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole) | 
| Izinkan AWS Data Pipeline untuk mengakses AWS sumber daya Anda | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Membuat peran dengan kebijakan kepercayaan seperti yang didefinisikan dalam [Panduan AWS Data Pipeline Pengembang](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) |  AWS Data Pipeline Dokumentasi mencantumkan izin yang diperlukan untuk kasus penggunaan ini. Lihat [peran IAM](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) untuk AWS Data Pipeline | 
| Izinkan aplikasi Anda berjalan di instans Amazon EC2 untuk mengakses sumber daya Anda AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Membuat peran dengan kebijakan kepercayaan seperti yang didefinisikan dalam [Panduan AWS Data Pipeline Pengembang](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [Amazon EC2 RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Fungsi pekerjaan ilmuwan data
<a name="jf_data-scientist"></a>

**AWS nama kebijakan terkelola: [DataScientist](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DataScientist)**

**Kasus penggunaan:** Pengguna ini menjalankan pekerjaan dan kueri Hadoop. Pengguna juga mengakses dan menganalisis informasi untuk analitik data dan kecerdasan bisnis.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk membuat, mengelola, dan menjalankan kueri di klaster EMR Amazon dan melakukan analisis data dengan alat seperti Amazon. QuickSight Kebijakan tersebut mencakup akses ke layanan data scientist tambahan, seperti Amazon EC2 AWS Data Pipeline, Amazon Kinesis, Amazon Machine Learning, dan AI. SageMaker Lihat kebijakan untuk mengetahui daftar lengkap layanan ilmuwan data yang mendukung kebijakan ini. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [DataScientist](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/DataScientist.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

Kebijakan fungsi pekerjaan ini mendukung kemampuan untuk meneruskan peran ke AWS layanan. Satu pernyataan memungkinkan meneruskan peran apa pun ke SageMaker AI. Pernyataan lainnya mengizinkan tindakan `iam:PassRole` hanya untuk peran yang disebutkan dalam tabel berikut. Untuk informasi lebih lanjut, lihat [Menciptakan peran dan memberlakukan kebijakan (konsol)](access_policies_job-functions_create-policies.md) dalam topik ini.


| Kasus penggunaan | Nama peran (\$1 adalah wildcard) | Jenis peran layanan untuk dipilih | AWS kebijakan terkelola untuk memilih | 
| --- | --- | --- | --- | 
| Memungkinkan instans Amazon EC2 mengakses layanan dan sumber daya yang sesuai untuk klaster | [EMR- \$1 EC2 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR for EC2  | [AmazonElasticMapReduceforEC2Peran](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role) | 
| Memungkinkan akses Amazon EMR untuk mengakses layanan dan sumber daya Amazon EC2 untuk klaster | [EMR\$1 DefaultRole](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-iam-roles-defaultroles.html) | Amazon EMR | [EMRServiceKebijakan Amazon\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) | 
| Izinkan Kinesis Managed Service untuk Apache Flink untuk mengakses sumber data streaming | [kinesis-\$1](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Membuat peran dengan kebijakan kepercayaan sebagaimana yang ditentukan dalam [Blog Big Data AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) | Lihat [Blog Big Data AWS](https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader) yang menguraikan empat kemungkinan opsi, bergantung pada kasus penggunaan Anda | 
| Izinkan AWS Data Pipeline untuk mengakses AWS sumber daya Anda | [DataPipelineDefaultRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Membuat peran dengan kebijakan kepercayaan seperti yang didefinisikan dalam [Panduan AWS Data Pipeline Pengembang](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) |  AWS Data Pipeline Dokumentasi mencantumkan izin yang diperlukan untuk kasus penggunaan ini. Lihat [peran IAM](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) untuk AWS Data Pipeline | 
| Izinkan aplikasi Anda berjalan di instans Amazon EC2 untuk mengakses sumber daya Anda AWS  | [DataPipelineDefaultResourceRole](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | Membuat peran dengan kebijakan kepercayaan seperti yang didefinisikan dalam [Panduan AWS Data Pipeline Pengembang](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) | [Amazon EC2 RoleforDataPipelineRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole) | 

## Fungsi pekerjaan pengguna daya developer
<a name="jf_developer-power-user"></a>

**AWS nama kebijakan terkelola: [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/PowerUserAccess)**

**Kasus penggunaan:** Pengguna ini melakukan tugas pengembangan aplikasi dan dapat membuat dan mengonfigurasi sumber daya dan layanan yang mendukung pengembangan aplikasi AWS sadar.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Pernyataan pertama kebijakan ini menggunakan [`NotAction`](reference_policies_elements_notaction.md)elemen untuk mengizinkan semua tindakan untuk semua AWS layanan dan untuk semua sumber daya kecuali AWS Identity and Access Management, AWS Organizations, dan AWS Account Management. Pernyataan kedua memberikan izin IAM untuk membuat peran tertaut layanan. Ini diwajibkan oleh beberapa layanan yang harus mengakses sumber daya di layanan lain, seperti bucket Amazon S3. Ini juga memberikan AWS Organizations izin untuk melihat informasi tentang organisasi pengguna, termasuk email akun manajemen dan batasan organisasi. Meskipun kebijakan ini membatasi IAM AWS Organizations, kebijakan ini memungkinkan pengguna untuk melakukan semua tindakan Pusat Identitas IAM jika Pusat Identitas IAM diaktifkan. Ini juga memberikan izin Manajemen Akun untuk melihat AWS Wilayah mana yang diaktifkan atau dinonaktifkan untuk akun tersebut.

## Fungsi pekerjaan administrator jaringan
<a name="jf_network-administrator"></a>

**AWS nama kebijakan terkelola: [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)**

**Kasus penggunaan:** Pengguna ini ditugaskan untuk menyiapkan dan memelihara sumber daya AWS jaringan.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk membuat dan memelihara sumber daya jaringan di Auto Scaling, Amazon EC2 AWS Direct Connect,, Route 53, Amazon, Elastic CloudFront Load Balancing, Amazon SNS,, CloudWatch Log, AWS Elastic Beanstalk Amazon S3, IAM, dan Amazon CloudWatch Virtual Private Cloud. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [NetworkAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/NetworkAdministrator.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

Fungsi pekerjaan ini membutuhkan kemampuan untuk meneruskan peran ke AWS layanan. Kebijakan ini memberikan `iam:GetRole` dan `iam:PassRole` hanya untuk peran yang ditentukan dalam tabel berikut. Untuk informasi lebih lanjut, lihat [Menciptakan peran dan memberlakukan kebijakan (konsol)](access_policies_job-functions_create-policies.md) dalam topik ini.


| Kasus penggunaan | Nama peran (\$1 adalah wildcard) | Jenis peran layanan untuk dipilih | AWS kebijakan terkelola untuk memilih | 
| --- | --- | --- | --- | 
| Memungkinkan Amazon VPC membuat dan mengelola CloudWatch log di Log atas nama pengguna untuk memantau lalu lintas IP yang masuk dan keluar dari VPC Anda | [aliran-log-\$1](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Membuat peran dengan kebijakan kepercayaan sebagaimana yang ditetapkan dalam [Panduan Pengguna VPC Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam) | Kasus penggunaan ini tidak memiliki kebijakan AWS terkelola yang ada, tetapi dokumentasi mencantumkan izin yang diperlukan. Lihat [Panduan Pengguna VPC Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-logs-iam). | 

## Akses hanya-baca
<a name="awsmp_readonlyaccess"></a>

**AWS nama kebijakan terkelola: [ReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ReadOnlyAccess)**

**Kasus penggunaan:** Pengguna ini memerlukan akses hanya-baca ke setiap sumber daya dalam file. Akun AWS

**penting**  
Pengguna ini juga akan memiliki akses untuk membaca data dalam layanan penyimpanan seperti bucket Amazon S3 dan tabel Amazon DynamoDB.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi tugas, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:**Kebijakan ini memberikan izin untuk daftar, mendapatkan, menguraikan, dan sebaliknya melihat sumber daya dan atribut mereka. Ini tidak termasuk fungsi bermutasi seperti membuat atau menghapus. Kebijakan ini mencakup akses hanya-baca ke AWS layanan terkait keamanan, seperti dan. AWS Identity and Access Management AWS Manajemen Penagihan dan Biaya Lihat kebijakan untuk daftar lengkap layanan dan tindakan yang didukung kebijakan ini. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [ReadOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ReadOnlyAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*. Jika Anda memerlukan kebijakan serupa yang tidak memberikan akses untuk membaca data di layanan penyimpanan, lihat[Fungsi tugas pengguna hanya lihat](#jf_view-only-user).

## Tindakan layanan MCP akses penuh
<a name="jf_mcp-service-actions"></a>

**AWS nama kebijakan terkelola: [AWSMcpServiceActionsFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSMcpServiceActionsFullAccess)**

**Kasus penggunaan:** Pengguna ini memerlukan akses ke AWS layanan menggunakan server AWS MCP. Kebijakan ini tidak memberikan akses ke tindakan yang diambil oleh layanan MCP ke AWS layanan lain.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk memanggil tindakan layanan AWS MCP apa pun. Anda dapat menggunakan ketika Anda tidak perlu menentukan izin per layanan AWS MCP. Itu tidak memberikan izin untuk tindakan yang diambil oleh layanan MCP ke AWS layanan lain, izin tersebut harus selalu diberikan secara terpisah dan sebagai tambahan untuk tindakan layanan MCP. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [AWSMcpServiceActionsFullAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSMcpServiceActionsFullAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

## Fungsi pekerjaan auditor keamanan
<a name="jf_security-auditor"></a>

**AWS nama kebijakan terkelola: [SecurityAudit](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/SecurityAudit)**

**Kasus penggunaan:** Pengguna ini memantau akun agar mematuhi persyaratan keamanan. Pengguna ini dapat mengakses catatan dan peristiwa untuk menginvestigasi kemungkinan adanya pelanggaran keamanan atau kemungkinan adanya aktivitas berbahaya.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk melihat data konfigurasi untuk banyak AWS layanan dan meninjau log mereka. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [SecurityAudit](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SecurityAudit.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

## Fungsi pekerjaan pengguna
<a name="jf_support-user"></a>

**AWS nama kebijakan terkelola: AWSSupport** [Akses](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSSupportAccess)

**Kasus penggunaan:** Pengguna ini menghubungi AWS Support, membuat kasus dukungan, dan melihat status kasus yang ada.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk membuat dan memperbarui Dukungan kasus. Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [AWSSupportAkses](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSSupportAccess.html) di *Panduan Referensi Kebijakan AWS Terkelola*.

## Fungsi pekerjaan administrator sistem
<a name="jf_system-administrator"></a>

**AWS nama kebijakan terkelola: [SystemAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/SystemAdministrator)**

**Kasus penggunaan:** Pengguna ini mengatur dan memelihara sumber daya untuk operasi pengembangan.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan izin untuk membuat dan memelihara sumber daya di berbagai macam AWS layanan, termasuk, Amazon,,,, CloudWatch, AWS CloudTrail Amazon EC2 AWS CodeCommit AWS CodeDeploy, AWS Config, AWS Directory Service, Amazon RDS AWS Identity and Access Management AWS Key Management Service, AWS Lambda Route 53, Amazon S3, Amazon SES, Amazon SQS,, dan Amazon VPC. AWS Trusted Advisor Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [SystemAdministrator](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/SystemAdministrator.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

Fungsi pekerjaan ini membutuhkan kemampuan untuk meneruskan peran ke AWS layanan. Kebijakan ini memberikan `iam:GetRole` dan `iam:PassRole` hanya untuk peran yang ditentukan dalam tabel berikut. Untuk informasi lebih lanjut, lihat [Menciptakan peran dan memberlakukan kebijakan (konsol)](access_policies_job-functions_create-policies.md) dalam topik ini. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).


| Kasus penggunaan | Nama peran (\$1 adalah wildcard) | Jenis peran layanan untuk dipilih | AWS kebijakan terkelola untuk memilih | 
| --- | --- | --- | --- | 
| Memungkinkan aplikasi berjalan dalam instans EC2 di klaster Amazon ECS untuk mengakses Amazon ECS | [ecr-sysadmin-\$1](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) | Peran Amazon EC2 untuk Layanan EC2 Container  | [EC2ContainerServiceforEC2Peran Amazon](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role) | 
| Memungkinkan pengguna untuk memantau basis data | [rds-monitoring-role](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) | Peran Amazon RDS untuk Pemantauan yang Ditingkatkan | [Amazon RDSEnhanced MonitoringRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole) | 
| Izinkan aplikasi yang berjalan di instans EC2 untuk mengakses AWS sumber daya. | [ec2-sysadmin-\$1](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) | Amazon EC2 | Contoh kebijakan untuk peran yang memberikan akses ke bucket S3 seperti yang ditunjukkan dalam Panduan [Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html); sesuaikan sesuai kebutuhan | 
| Izinkan Lambda membaca aliran DynamoDB dan menulis ke Log CloudWatch  | [lambda-sysadmin-\$1](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html) | AWS Lambda | [AWSLambdaPeran Dynamo DBExecution](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole) | 

## Fungsi tugas pengguna hanya lihat
<a name="jf_view-only-user"></a>

**AWS nama kebijakan terkelola: [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess)**

**Kasus penggunaan:** Pengguna ini dapat melihat daftar AWS sumber daya dan metadata dasar di akun di seluruh layanan. Pengguna tidak dapat membaca konten sumber daya atau metadata yang melampaui kuota dan informasi daftar sumber daya.

**Pembaruan kebijakan:** AWS memelihara dan memperbarui kebijakan ini. Untuk riwayat perubahan kebijakan ini, lihat kebijakan di konsol IAM, lalu pilih tab **Versi kebijakan**. Untuk informasi selengkapnya tentang pembaruan kebijakan fungsi pekerjaan, lihat [Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan](#security-iam-awsmanpol-jobfunction-updates).

**Deskripsi kebijakan:** Kebijakan ini memberikan`List*`,,, `Describe*` `Get*``View*`, dan `Lookup*` akses ke sumber daya untuk AWS layanan. Untuk melihat tindakan apa yang tercakup dalam kebijakan ini untuk setiap layanan, lihat [ViewOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/ViewOnlyAccess). Untuk informasi selengkapnya tentang kebijakan terkelola, lihat [ViewOnlyAccess](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/ViewOnlyAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

## Pembaruan kebijakan AWS terkelola untuk fungsi pekerjaan
<a name="security-iam-awsmanpol-jobfunction-updates"></a>

Semua kebijakan ini dikelola oleh AWS dan terus diperbarui untuk menyertakan dukungan untuk layanan baru dan kemampuan baru saat ditambahkan oleh AWS layanan. Kebijakan ini tidak dapat dimodifikasi oleh pelanggan. Anda dapat membuat salinan kebijakan dan kemudian memodifikasi salinannya, tetapi salinan itu tidak diperbarui secara otomatis karena AWS memperkenalkan layanan baru dan operasi API.

Untuk kebijakan fungsi pekerjaan, Anda dapat melihat riwayat versi serta waktu dan tanggal setiap pembaruan di konsol IAM. Untuk melakukannya, gunakan tautan di halaman ini untuk melihat detail kebijakan. Lalu pilih tab **Versi kebijakan** untuk melihat versi. Halaman ini menunjukkan 25 versi terakhir dari sebuah kebijakan. Untuk melihat semua versi kebijakan, panggil [get-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy-version.html) AWS CLI perintah atau operasi [GetPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicyVersion.html)API.

**catatan**  
Anda dapat memiliki hingga lima versi kebijakan yang dikelola pelanggan, tetapi AWS mempertahankan riwayat versi lengkap kebijakan AWS terkelola.

# Menciptakan peran dan memberlakukan kebijakan (konsol)
<a name="access_policies_job-functions_create-policies"></a>

Beberapa kebijakan yang tercantum sebelumnya memberikan kemampuan untuk mengonfigurasi AWS layanan dengan peran yang memungkinkan layanan tersebut melakukan operasi atas nama Anda. Kebijakan fungsi pekerjaan menentukan nama peran yang tepat yang harus Anda gunakan atau setidaknya menyertakan awalan yang menentukan bagian pertama dari nama yang dapat digunakan. Untuk membuat salah satu peran ini, lakukan langkah-langkah dalam prosedur berikut.

**Untuk membuat peran untuk Layanan AWS (konsol IAM)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, pilih **Layanan AWS**.

1. Untuk **kasus Layanan atau penggunaan**, pilih layanan, lalu pilih kasus penggunaan. Kasus penggunaan ditentukan oleh layanan untuk menyertakan kebijakan kepercayaan yang diperlukan layanan.

1. Pilih **Berikutnya**.

1. Untuk **kebijakan Izin**, opsi bergantung pada kasus penggunaan yang Anda pilih:
   + Jika layanan menentukan izin untuk peran tersebut, Anda tidak dapat memilih kebijakan izin.
   + Pilih dari serangkaian kebijakan izin terbatas.
   + Pilih dari semua kebijakan izin.
   + Pilih kebijakan tanpa izin, buat kebijakan setelah peran dibuat, lalu lampirkan kebijakan ke peran.

1. (Opsional) Tetapkan [batas izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Ini adalah fitur lanjutan yang tersedia untuk peran layanan, tetapi bukan peran tertaut layanan.

   1. Buka bagian **Setel batas izin**, lalu pilih **Gunakan batas izin untuk mengontrol izin peran maksimum**. 

      IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda.

   1. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Untuk **nama Peran**, opsi bergantung pada layanan:
   + Jika layanan menentukan nama peran, Anda tidak dapat mengedit nama peran.
   + Jika layanan mendefinisikan awalan untuk nama peran, Anda dapat memasukkan akhiran opsional.
   + Jika layanan tidak menentukan nama peran, Anda dapat memberi nama peran.
**penting**  
Saat Anda memberi nama peran, perhatikan hal berikut:  
Nama peran harus unik di dalam diri Anda Akun AWS, dan tidak dapat dibuat unik berdasarkan kasus.  
Misalnya, jangan membuat peran bernama keduanya **PRODROLE** dan**prodrole**. Ketika nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil, namun ketika nama peran muncul kepada pelanggan di konsol, seperti selama proses masuk, nama peran tersebut tidak peka huruf besar/kecil.
Anda tidak dapat mengedit nama peran setelah dibuat karena entitas lain mungkin mereferensikan peran tersebut.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran tersebut.

1. **(Opsional) Untuk mengedit kasus penggunaan dan izin untuk peran, di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan izin**, pilih Edit.**

1. (Opsional) Untuk membantu mengidentifikasi, mengatur, atau mencari peran, tambahkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di *Panduan Pengguna IAM*.

1. Tinjau peran lalu pilih **Buat peran**.

## Contoh 1: Mengonfigurasi pengguna sebagai administrator basis data (konsol)
<a name="jf_example_1"></a>

Contoh ini menunjukkan langkah-langkah yang diperlukan untuk mengonfigurasi Alice, pengguna IAM, sebagai [Administrator Basis Data](access_policies_job-functions.md#jf_database-administrator). Anda menggunakan informasi di baris pertama tabel di bagian tersebut dan memungkinkan pengguna mengaktifkan pemantauan Amazon RDS. Anda melampirkan [DatabaseAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/DatabaseAdministrator)kebijakan ke pengguna IAM Alice sehingga mereka dapat mengelola layanan database Amazon. Kebijakan itu juga memungkinkan Alice untuk meneruskan peran yang dipanggil `rds-monitoring-role` ke layanan Amazon RDS yang memungkinkan layanan untuk memantau database Amazon RDS atas nama mereka.

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pilih **Kebijakan**, **database** ketik kotak pencarian, lalu tekan enter.

1. Pilih tombol radio untuk **DatabaseAdministrator**kebijakan, pilih **Tindakan**, lalu pilih **Lampirkan**.

1. Dalam daftar entitas, pilih **Alice** dan kemudian pilih **Lampirkan kebijakan**. Alice sekarang dapat mengelola database AWS . Namun, agar Alice dapat memantau basis data tersebut, Anda harus mengonfigurasi peran layanan.

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Pilih jenis peran **AWS Layanan**, lalu pilih **Amazon RDS.**

1. Pilih kasus penggunaan **Peran Amazon RDS untuk Pemantauan yang Ditingkatkan**.

1. Amazon RDS mendefinisikan izin untuk peran Anda. Pilih **Next: Review** (Berikutnya: Tinjauan) untuk melanjutkan.

1. Nama peran harus salah satu yang ditentukan oleh DatabaseAdministrator kebijakan yang dimiliki Alice sekarang. Salah satunya adalah **rds-monitoring-role**. Masukkan itu untuk **nama Peran**.

1. (Opsional) Untuk **Deskripsi peran**, masukkan deskripsi.

1. Setelah meninjau perinciannya, pilih **Buat peran**.

1. Sekarang Alice dapat mengaktifkan **RDS Enhanced Monitoring** dalam bagian **Pemantauan** di konsol Amazon RDS. Misalnya, mereka mungkin melakukan ini ketika mereka membuat instance DB, membuat replika baca, atau memodifikasi instance DB. Mereka harus memasukkan nama peran yang mereka buat (rds-monitoring-role) di kotak **Peran Pemantauan** saat mereka menyetel **Aktifkan Pemantauan yang Ditingkatkan** ke **Ya**. 

## Contoh 2: Mengonfigurasi pengguna sebagai administrator jaringan (konsol)
<a name="jf_example_2"></a>

Contoh ini menunjukkan langkah-langkah yang diperlukan untuk mengkonfigurasi Jorge, pengguna IAM, sebagai Administrator [Jaringan](access_policies_job-functions.md#jf_network-administrator). Ini menggunakan informasi dalam tabel di bagian itu untuk memungkinkan Jorge memantau lalu lintas IP yang pergi ke dan dari VPC. Ini juga memungkinkan Jorge untuk menangkap informasi itu di log di CloudWatch Log. Anda melampirkan [NetworkAdministrator](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/NetworkAdministrator)kebijakan ke pengguna IAM Jorge sehingga mereka dapat mengonfigurasi sumber daya AWS jaringan. Kebijakan itu juga memungkinkan Jorge untuk meneruskan peran yang namanya dimulai dengan `flow-logs*` Amazon EC2 saat Anda membuat log alur. Dalam skenario ini, tidak seperti Contoh 1, tidak ada jenis peran layanan yang ditentukan sebelumnya sehingga Anda harus melakukan beberapa langkah secara berbeda.

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Kebijakan** lalu masukkan **network** di kotak pencarian, lalu tekan enter.

1. Pilih tombol radio di sebelah **NetworkAdministrator**kebijakan, pilih **Tindakan**, lalu pilih **Lampirkan**.

1. Dalam daftar pengguna, pilih kotak centang di sebelah **Jorge**, lalu pilih **Lampirkan** kebijakan. Jorge sekarang dapat mengelola sumber daya AWS jaringan. Namun, untuk mengaktifkan pemantauan lalu lintas IP di VPC, Anda harus mengonfigurasi peran layanan.

1. Karena peran layanan yang perlu Anda buat tidak memiliki kebijakan yang dikelola sebelumnya, Anda harus membuatnya terlebih dahulu. Pada panel navigasi, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Di bagian **Editor kebijakan**, pilih opsi **JSON** dan salin teks dari dokumen kebijakan JSON berikut. Tempel teks ini ke kotak teks **JSON**. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Effect": "Allow",
         "Resource": "*"
       }
     ]
   }
   ```

------

1.  Selesaikan peringatan keamanan, kesalahan, atau peringatan umum yang dihasilkan selama [validasi kebijakan](access_policies_policy-validator.md), lalu pilih **Berikutnya**. 
**catatan**  
Anda dapat beralih antara opsi editor **Visual** dan **JSON** kapan saja. Namun, jika Anda melakukan perubahan atau memilih **Berikutnya** di editor **Visual**, IAM dapat merestrukturisasi kebijakan Anda untuk mengoptimalkannya bagi editor visual. Untuk informasi selengkapnya, lihat [Restrukturisasi kebijakan](troubleshoot_policies.md#troubleshoot_viseditor-restructure).

1. Pada halaman **Tinjau dan buat**, ketik **vpc-flow-logs-policy-for-service-role** nama kebijakan. Tinjau **Izin yang ditentukan dalam kebijakan ini** untuk melihat izin yang diberikan oleh kebijakan Anda, lalu pilih **Buat kebijakan** untuk menyimpan pekerjaan Anda.

   Kebijakan baru muncul dalam daftar kebijakan terkelola dan siap diberlakukan.

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Pilih jenis peran **AWS Layanan**, lalu pilih **Amazon EC2**.

1. Pilih kasus penggunaan **Amazon EC2**.

1. Pada halaman **Lampirkan kebijakan izin**, pilih kebijakan yang Anda buat sebelumnya, **vpc-flow-logs-policy- for-service-role**, lalu pilih **Berikutnya: Tinjau**.

1. Nama peran harus diizinkan oleh NetworkAdministrator kebijakan yang dimiliki Jorge sekarang. Nama apa pun yang dimulai dengan `flow-logs-` diperbolehkan. Untuk contoh ini, masukkan **flow-logs-for-jorge** untuk **nama Peran**.

1. (Opsional) Untuk **Deskripsi peran**, masukkan deskripsi.

1. Setelah meninjau perinciannya, pilih **Buat peran**.

1. Sekarang, Anda dapat mengonfigurasi kebijakan kepercayaan yang diperlukan untuk skenario ini. Pada halaman **Peran**, pilih **flow-logs-for-jorge**peran (nama, bukan kotak centang). Pada halaman perincian peran baru Anda, pilih **Hubungan kepercayaan**, lalu pilih**Edit hubungan kepercayaan**.

1. Ubah baris "Layanan" agar dibaca sebagai berikut, menggantikan entri untuk `ec2.amazonaws.com`:

   ```
           "Service": "vpc-flow-logs.amazonaws.com"
   ```

1. Jorge sekarang dapat membuat log aliran untuk VPC atau subnet di konsol Amazon EC2. Saat Anda membuat log alur, tentukan **flow-logs-for-jorge**perannya. Peran tersebut memiliki izin untuk membuat data log dan menuliskan data ke log itu.

# AWS kunci konteks kondisi global
<a name="reference_policies_condition-keys"></a>

Ketika [kepala sekolah](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal) membuat [permintaan](intro-structure.md#intro-structure-request) AWS, AWS mengumpulkan informasi permintaan ke dalam [konteks permintaan](intro-structure.md#intro-structure-request). Anda dapat menggunakan elemen `Condition` dari kebijakan JSON untuk membandingkan kunci dalam konteks permintaan dengan nilai kunci yang Anda tentukan dalam kebijakan Anda. Informasi permintaan disediakan oleh sumber yang berbeda, termasuk prinsipal yang membuat permintaan, sumber daya permintaan dibuat terhadap, dan metadata tentang permintaan itu sendiri.

**Kunci kondisi global** dapat digunakan di semua AWS layanan. Meskipun kunci kondisi ini dapat digunakan di semua kebijakan, kunci tidak tersedia di setiap konteks permintaan. Misalnya, kunci `aws:SourceAccount` kondisi hanya tersedia ketika panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services). Untuk mempelajari lebih lanjut tentang keadaan di mana kunci global disertakan dalam konteks permintaan, lihat Informasi **ketersediaan** untuk setiap kunci.

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

**Kunci kondisi khusus layanan** didefinisikan untuk digunakan dengan layanan individual AWS . Misalnya, Amazon S3 memungkinkan Anda menulis kebijakan dengan kunci `s3:VersionId` kondisi untuk membatasi akses ke versi tertentu dari objek Amazon S3. Kunci kondisi ini unik untuk layanan, artinya hanya berfungsi dengan permintaan ke layanan Amazon S3. Untuk kunci kondisi yang spesifik layanan, lihat [Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan dan pilih layanan](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) yang kuncinya ingin Anda lihat. 

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

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

**penting**  
Untuk membandingkan kondisi Anda terhadap konteks permintaan dengan beberapa nilai kunci, Anda harus menggunakan operator kumpulan `ForAllValues` atau `ForAnyValue`. Gunakan operator set hanya dengan kunci kondisi multivalued. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Untuk informasi selengkapnya, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).


| Properti kepala sekolah | Properti sesi peran | Properti jaringan | Properti dari sumber daya | Properti permintaan | 
| --- | --- | --- | --- | --- | 
|  `aws:PrincipalArn` `aws:PrincipalAccount` `aws:PrincipalOrgPaths` `aws:PrincipalOrgID` `aws:PrincipalTag/*tag-key*` `aws:PrincipalIsAWSService` `aws:PrincipalServiceName` `aws:PrincipalServiceNamesList` `aws:PrincipalType` `aws:userid` `aws:username`  |  `aws:AssumedRoot` `aws:FederatedProvider` `aws:TokenIssueTime` `aws:MultiFactorAuthAge` `aws:MultiFactorAuthPresent` `aws:ChatbotSourceArn` `aws:Ec2InstanceSourceVpc` `aws:Ec2InstanceSourcePrivateIPv4` `aws:SourceIdentity` `ec2:RoleDelivery` `ec2:SourceInstanceArn` `glue:RoleAssumedBy` `glue:CredentialIssuingService` `codebuild:BuildArn` `codebuild:ProjectArn` `lambda:SourceFunctionArn` `ssm:SourceInstanceArn` `identitystore:UserId`  |  `aws:SourceIp` `aws:SourceVpc` `aws:SourceVpcArn` `aws:SourceVpce` `aws:VpceAccount` `aws:VpceOrgID` `aws:VpceOrgPaths` `aws:VpcSourceIp`  |  `aws:ResourceAccount` `aws:ResourceOrgID` `aws:ResourceOrgPaths` `aws:ResourceTag/*tag-key*`  |  `aws:CalledVia` `aws:CalledViaFirst` `aws:CalledViaLast` `aws:CalledViaAWSMCP` `aws:ViaAWSService` `aws:ViaAWSMCPService` `aws:CurrentTime` `aws:EpochTime` `aws:referer` `aws:RequestedRegion` `aws:RequestTag/*tag-key*` `aws:TagKeys` `aws:SecureTransport` `aws:SourceAccount` `aws:SourceArn` `aws:SourceOrgID` `aws:SourceOrgPaths` `aws:UserAgent` `aws:IsMcpServiceAction`  | 

## Kunci kondisi sensitif
<a name="condition-keys-sensitive"></a>

Kunci kondisi berikut dianggap sensitif. Penggunaan wildcard dalam kunci kondisi ini tidak memiliki kasus penggunaan yang valid, bahkan dengan substring dari nilai kunci dengan wildcard. Ini karena wildcard dapat mencocokkan kunci kondisi dengan nilai apa pun, yang dapat menimbulkan risiko keamanan.
+ `aws:PrincipalAccount`
+ `aws:PrincipalOrgID`
+ `aws:ResourceAccount`
+ `aws:ResourceOrgID`
+ `aws:SourceAccount`
+ `aws:SourceOrgID`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:VpceAccount`
+ `aws:VpceOrgID`

## Properti kepala sekolah
<a name="condition-keys-principal-properties"></a>

Gunakan tombol kondisi berikut untuk membandingkan detail tentang prinsipal yang membuat permintaan dengan properti utama yang Anda tentukan dalam kebijakan. Untuk daftar kepala sekolah yang dapat membuat permintaan, lihat. [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying)

### aws:PrincipalArn
<a name="condition-keys-principalarn"></a>

Gunakan kunci ini untuk membandingkan [Amazon Resource Name](reference_identifiers.md#identifiers-arns) (ARN) prinsipal yang melakukan permintaan layanan ke layanan dengan ARN yang Anda tentukan dalam kebijakan. Untuk peran IAM, konteks permintaan memberikan ARN peran, bukan ARN pengguna yang mengambil peran tersebut. 
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan untuk semua permintaan yang ditandatangani. Permintaan anonim tidak menyertakan kunci ini. Anda dapat menentukan jenis prinsipal berikut dalam kunci kondisi ini: 
  + IAM Role
  + Pengguna IAM
  + AWS STS prinsipal pengguna federasi
  + Akun AWS pengguna root
+ **Tipe data** — ARN

  AWS merekomendasikan agar Anda menggunakan operator [ARN alih-alih operator](reference_policies_elements_condition_operators.md#Conditions_ARN) [string saat membandingkan](reference_policies_elements_condition_operators.md#Conditions_String). ARNs
+ **Jenis nilai** - Bernilai tunggal
+ **Contoh nilai** Daftar berikut menunjukkan nilai konteks permintaan yang dikembalikan untuk berbagai jenis prinsipal yang dapat Anda tentukan dalam kunci kondisi: `aws:PrincipalArn`
  + **Peran IAM** - Konteks permintaan berisi nilai berikut untuk kunci `aws:PrincipalArn` kondisi. Jangan tentukan ARN sesi peran yang diasumsikan sebagai nilai untuk kunci kondisi ini. Untuk informasi lebih lanjut tentang kepala sesi peran yang diasumsikan, lihat[Kepala sesi peran](reference_policies_elements_principal.md#principal-role-session).

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

    ```
    arn:aws:iam::123456789012:user/user-name
    ```
  + **AWS STS prinsip pengguna federasi - Konteks** permintaan berisi nilai berikut untuk kunci kondisi. `aws:PrincipalArn`

    ```
    arn:aws:sts::123456789012:federated-user/user-name
    ```
  + **Akun AWS root user** - Konteks permintaan berisi nilai berikut untuk kunci kondisi`aws:PrincipalArn`. Saat Anda menentukan ARN pengguna root sebagai nilai untuk kunci `aws:PrincipalArn` kondisi, itu membatasi izin hanya untuk pengguna root. Akun AWS Ini berbeda dengan menentukan ARN pengguna root dalam elemen utama kebijakan berbasis sumber daya, yang mendelegasikan wewenang ke. Akun AWS Untuk informasi selengkapnya tentang menentukan ARN pengguna root di elemen utama kebijakan berbasis sumber daya, lihat. [Akun AWS kepala sekolah](reference_policies_elements_principal.md#principal-accounts) 

    ```
    arn:aws:iam::123456789012:root
    ```

Anda dapat menentukan ARN pengguna root sebagai nilai untuk kunci kondisi `aws:PrincipalArn` dalam kebijakan kontrol AWS Organizations layanan ()SCPs. SCPsadalah jenis kebijakan organisasi yang digunakan untuk mengelola izin di organisasi Anda dan hanya memengaruhi akun anggota di organisasi. SCP membatasi izin untuk pengguna dan peran IAM dalam akun anggota, termasuk pengguna akun anggota. *Untuk informasi selengkapnya tentang efek SCPs pada izin, lihat [Efek SCP pada izin di Panduan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-effects-on-permissions) Pengguna.AWS Organizations *

### aws:PrincipalAccount
<a name="condition-keys-principalaccount"></a>

Gunakan kunci ini untuk membandingkan akun yang memiliki prinsipal yang meminta dengan pengenal akun yang Anda tentukan dalam kebijakan. Untuk permintaan anonim, konteks permintaan akan ditampilkan`anonymous`.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

------
#### [ JSON ]

****  

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

------

### aws:PrincipalOrgPaths
<a name="condition-keys-principalorgpaths"></a>

Gunakan kunci ini untuk membandingkan AWS Organizations jalur bagi kepala sekolah yang membuat permintaan ke jalur dalam kebijakan. Prinsipal itu dapat berupa pengguna IAM, peran IAM, prinsipal pengguna AWS STS federasi, atau. Pengguna root akun AWS Dalam kebijakan, kunci kondisi ini memastikan bahwa pemohon adalah anggota akun dalam akar organisasi tertentu atau unit organisasi (OUs) di AWS Organizations. AWS Organizations Path adalah representasi teks dari struktur suatu AWS Organizations entitas. Untuk informasi lebih lanjut tentang cara menggunakan dan memahami jalur, lihat [Memahami jalur AWS Organizations entitas](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

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

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

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

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

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

Kondisi berikut kembali `true` untuk prinsipal dalam akun yang dilampirkan langsung ke salah satu anak OUs, tetapi tidak langsung ke OU orang tua. Kondisi sebelumnya ditujukan untuk OU atau turunannya. Kondisi berikut hanya ditujukan untuk turunannya (dan turunan dari turunan tersebut).

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

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

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

`aws:PrincipalOrgPaths` adalah kunci kondisi multinilai. Kunci multivalued dapat memiliki beberapa nilai dalam konteks permintaan. Saat Anda menggunakan beberapa nilai dengan operator kondisi `ForAnyValue`, jalur prinsipal harus sesuai dengan salah satu jalur yang tercantum dalam kebijakan. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

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

### aws:PrincipalOrgID
<a name="condition-keys-principalorgid"></a>

Gunakan kunci ini untuk membandingkan pengenal organisasi tempat prinsipal permintaan berada dengan pengenal yang ditentukan dalam kebijakan. AWS Organizations 
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal merupakan anggota dari suatu organisasi. Permintaan anonim tidak menyertakan kunci ini.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Kunci global ini memberikan alternatif untuk mencantumkan semua akun IDs untuk semua AWS akun dalam suatu organisasi. Anda dapat menggunakan tombol kondisi ini untuk menyederhanakan penentuan elemen `Principal` dalam [kebijakan berbasis sumber daya](access_policies_identity-vs-resource.md). Anda dapat menentukan [ID organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) dalam elemen kondisi. Saat Anda menambah dan menghapus akun, kebijakan yang mencakup kunci `aws:PrincipalOrgID` akan secara otomatis menyertakan akun yang benar dan tidak memerlukan pembaruan manual.

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

------
#### [ JSON ]

****  

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

------

**catatan**  
Kondisi global ini juga berlaku untuk akun manajemen suatu AWS organisasi. Kebijakan ini mencegah semua kepala sekolah di luar organisasi tertentu mengakses bucket Amazon S3. Ini termasuk AWS layanan apa pun yang berinteraksi dengan sumber daya internal Anda, seperti AWS CloudTrail mengirim data log ke bucket Amazon S3 Anda. Untuk mempelajari bagaimana Anda dapat memberikan akses AWS layanan dengan aman, lihat[aws:PrincipalIsAWSService](#condition-keys-principalisawsservice).

Untuk informasi lebih lanjut tentang AWS Organizations, lihat [Apa itu AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) dalam *AWS Organizations User Guide*.

### aws:PrincipalTag/*tag-key*
<a name="condition-keys-principaltag"></a>

Gunakan kunci ini untuk membandingkan tanda yang dilampirkan ke prinsipal yang mengajukan permintaan dengan tanda yang Anda tentukan dalam kebijakan. Jika prinsipal memiliki lebih dari satu tag yang disematkan, konteks permintaan mencakup satu kunci `aws:PrincipalTag` untuk setiap kunci tag yang disematkan.
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan jika prinsipal menggunakan pengguna IAM dengan tag yang disematkan. Ini disertakan untuk prinsipal yang menggunakan peran IAM dengan tag yang disematkan atau [tag sesi](id_session-tags.md). Permintaan anonim tidak menyertakan kunci ini.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Anda dapat menambahkan atribut khusus ke pengguna atau peran dalam bentuk pasangan nilai kunci. Untuk informasi selengkapnya tentang tag IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md). Anda dapat menggunakan `aws:PrincipalTag` untuk [mengontrol akses](access_iam-tags.md#access_iam-tags_control-principals) untuk prinsipal AWS .

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

------
#### [ JSON ]

****  

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

------

### aws:PrincipalIsAWSService
<a name="condition-keys-principalisawsservice"></a>

Gunakan kunci ini untuk memeriksa apakah panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](reference_policies_elements_principal.md#principal-services). Misalnya, AWS CloudTrail menggunakan prinsip layanan `cloudtrail.amazonaws.com` untuk menulis log ke bucket Amazon S3 Anda. Kunci konteks permintaan diatur ke benar ketika layanan menggunakan prinsipal layanan untuk melakukan tindakan langsung pada sumber daya Anda. Kunci konteks disetel ke false jika layanan menggunakan kredensyal dari prinsipal IAM untuk membuat permintaan atas nama kepala sekolah. Ini juga disetel ke false jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah.
+ **Ketersediaan** — Kunci ini hadir dalam konteks permintaan untuk semua permintaan API yang ditandatangani yang menggunakan AWS kredensyal. Permintaan anonim tidak menyertakan kunci ini.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

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

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

------
#### [ JSON ]

****  

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

------

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

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gv-_H8a42G4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gv-_H8a42G4)


### aws:PrincipalServiceName
<a name="condition-keys-principalservicename"></a>

Gunakan kunci ini untuk membandingkan nama [prinsipal layanan](reference_policies_elements_principal.md#principal-services) dalam kebijakan dengan prinsipal layanan yang membuat permintaan untuk sumber daya Anda. Anda dapat menggunakan kunci ini untuk memeriksa apakah panggilan ini dibuat oleh prinsipal layanan tertentu. Ketika prinsipal layanan membuat permintaan langsung ke sumber daya Anda,kunci `aws:PrincipalServiceName`berisi nama prinsipal layanan. Misalnya, nama utama AWS CloudTrail layanan adalah`cloudtrail.amazonaws.com`.
+ **Ketersediaan** — Kunci ini ada dalam permintaan saat panggilan dilakukan oleh kepala AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:
  + Jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah.
  + Jika layanan menggunakan kredensi kepala IAM untuk mengajukan permintaan atas nama kepala sekolah.
  + Jika panggilan dilakukan langsung oleh kepala sekolah IAM.
  + Jika panggilan dilakukan oleh pemohon anonim.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

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

------
#### [ JSON ]

****  

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

------

### aws:PrincipalServiceNamesList
<a name="condition-keys-principalservicenameslist"></a>

Kunci ini menyediakan daftar semua nama [prinsipal layanan](reference_policies_elements_principal.md#principal-services) yang termasuk dalam layanan. Ini adalah kunci kondisi lanjutan. Anda dapat menggunakannya untuk membatasi layanan dari mengakses sumber daya Anda hanya dari Wilayah tertentu. Beberapa layanan dapat membuat prinsipal layanan Regional untuk menunjukkan instans layanan tertentu dalam Wilayah tertentu. Anda dapat membatasi akses ke sumber daya untuk instans layanan tertentu. Saat prinsipal layanan membuat permintaan langsung ke sumber daya Anda, `aws:PrincipalServiceNamesList` berisi daftar seluruh nama prinsipal layanan yang tidak diurutkan yang terkait dengan instans Regional layanan.
+ **Ketersediaan** — Kunci ini ada dalam permintaan saat panggilan dilakukan oleh kepala AWS layanan. Kunci ini tidak ada dalam situasi lain, termasuk berikut ini:
  + Jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah.
  + Jika layanan menggunakan kredensi kepala IAM untuk mengajukan permintaan atas nama kepala sekolah.
  + Jika panggilan dilakukan langsung oleh kepala sekolah IAM.
  + Jika panggilan dilakukan oleh pemohon anonim.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

`aws:PrincipalServiceNamesList` adalah kunci kondisi multinilai. Kunci multivalued dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan `ForAnyValue` atau `ForAllValues` mengatur operator dengan [operator kondisi string](reference_policies_elements_condition_operators.md#Conditions_String) untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:PrincipalType
<a name="condition-keys-principaltype"></a>

Gunakan kunci ini untuk membandingkan tipe prinsipal yang membuat permintaan dengan tipe prinsipal yang Anda sebutkan dalam kebijakan. Untuk informasi selengkapnya, lihat [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying). Untuk contoh spesifik dari nilai-nilai `principal` kunci, lihat[Nilai-nilai kunci utama](reference_policies_variables.md#principaltable).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

### aws:userid
<a name="condition-keys-userid"></a>

Gunakan kunci ini untuk membandingkan pengenal prinsipal pemohon dengan ID yang Anda tentukan dalam kebijakan. Untuk pengguna IAM, nilai konteks permintaan adalah ID pengguna. Untuk peran IAM, format nilai ini dapat bervariasi. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying). Untuk contoh spesifik dari nilai-nilai `principal` kunci, lihat[Nilai-nilai kunci utama](reference_policies_variables.md#principaltable).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan untuk semua permintaan, termasuk permintaan anonim.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

### aws:username
<a name="condition-keys-username"></a>

Gunakan kunci ini untuk membandingkan nama pengguna pemohon dengan nama pengguna yang Anda sebutkan dalam kebijakan. Untuk detail tentang bagaimana informasi tersebut muncul untuk prinsipal yang berbeda, lihat [Cara menentukan kepala sekolah](reference_policies_elements_principal.md#Principal_specifying). Untuk contoh spesifik dari nilai-nilai `principal` kunci, lihat[Nilai-nilai kunci utama](reference_policies_variables.md#principaltable).
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan untuk pengguna IAM. Permintaan dan permintaan anonim yang dibuat menggunakan peran Pengguna root akun AWS atau IAM tidak menyertakan kunci ini. Permintaan yang dibuat menggunakan kredensyal IAM Identity Center tidak menyertakan kunci ini dalam konteksnya.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

## Properti sesi peran
<a name="condition-keys-role-session-properties"></a>

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

[Peran](reference_policies_elements_principal.md#principal-roles) adalah jenis kepala sekolah. Anda juga dapat menggunakan kunci kondisi dari [Properti kepala sekolah](#condition-keys-principal-properties) bagian untuk mengevaluasi properti peran saat peran membuat permintaan.

### aws:AssumedRoot
<a name="condition-keys-assumedroot"></a>

Gunakan kunci ini untuk memeriksa apakah permintaan dibuat menggunakan [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html). `AssumeRoot`mengembalikan kredensi jangka pendek untuk sesi pengguna root istimewa yang dapat Anda gunakan untuk mengambil tindakan istimewa pada akun anggota di organisasi Anda. Untuk informasi selengkapnya, lihat [Kelola akses root untuk akun anggota secara terpusat](id_root-user.md#id_root-user-access-management).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensil dari [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html)untuk membuat permintaan.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

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

------
#### [ JSON ]

****  

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

------

### aws:FederatedProvider
<a name="condition-keys-federatedprovider"></a>

Gunakan kunci ini untuk membandingkan penyedia identitas penerbit (iDP) prinsipal dengan iDP yang Anda tentukan dalam kebijakan. Ini berarti bahwa peran IAM diasumsikan menggunakan [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRoleWithWebIdentity) AWS STS operasi. Bila kredensi sementara sesi peran yang dihasilkan digunakan untuk membuat permintaan, konteks permintaan mengidentifikasi IDP yang mengautentikasi identitas federasi asli.
+ **Ketersediaan** — Kunci ini hadir dalam sesi peran peran yang diasumsikan menggunakan penyedia OpenID Connect (OIDC), dan dalam kebijakan role-trust ketika penyedia OIDC digunakan untuk menelepon. `AssumeRoleWithWebIdentity`
+ **Tipe data** - [String\$1](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

\$1 Tipe data tergantung pada IDP Anda:
+ **Jika Anda menggunakan AWS iDP bawaan, seperti [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html), nilai kuncinya adalah string.** Nilai kuncinya mungkin terlihat seperti:`cognito-identity.amazonaws.com`.
+ **Jika Anda menggunakan iDP yang tidak built-in ke AWS, like atau [https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)[Amazon EKS](https://docs.aws.amazon.com//eks/latest/userguide/associate-service-account-role.html), nilai kuncinya adalah ARN.** Nilai kuncinya mungkin terlihat seperti:`arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID`.

Untuk informasi lebih lanjut tentang eksternal IdPs dan`AssumeRoleWithWebIDentity`, lihat[Skenario umum](id_federation_common_scenarios.md). Untuk informasi selengkapnya, lihat [Kepala sesi peran](reference_policies_elements_principal.md#principal-role-session).

### aws:TokenIssueTime
<a name="condition-keys-tokenissuetime"></a>

Gunakan kunci ini untuk membandingkan tanggal dan waktu saat kredensial keamanan sementara dikeluarkan dengan tanggal dan waktu yang Anda tentukan dalam kebijakan. 
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kuncinya tidak ada dalam AWS CLI, AWS API, atau permintaan AWS SDK yang dibuat menggunakan kunci akses.
+ **Tipe data** - [Tanggal](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Jenis nilai** - Bernilai tunggal

Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md).

### aws:MultiFactorAuthAge
<a name="condition-keys-multifactorauthage"></a>

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

**penting**  
Kunci kondisi ini tidak ada untuk identitas gabungan atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani permintaan AWS CLI, AWS API, atau SDK. AWS Untuk mempelajari selengkapnya tentang menambahkan perlindungan MFA ke operasi API dengan kredenal keamanan sementara, lihat. [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md)  
Untuk memeriksa apakah MFA digunakan untuk memvalidasi identitas federasi IAM, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke tag sesi. AWS Lihat perinciannya di [Lulus tag sesi di AWS STS](id_session-tags.md). Untuk menerapkan MFA untuk identitas Pusat Identitas IAM, Anda [dapat mengaktifkan atribut untuk kontrol akses untuk](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) meneruskan klaim pernyataan SAMP dengan metode otentikasi dari penyedia identitas Anda ke IAM Identity Center.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan [kredensil keamanan sementara](id_credentials_temp.md) untuk membuat permintaan. Kebijakan dengan kondisi MFA dapat dilampirkan pada:
  + Pengguna atau grup IAM
  + Sumber daya seperti bucket Amazon S3, antrean Amazon Amazon SQS, atau topik Amazon SNS
  + Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna
+ **Tipe data** - [Numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Jenis nilai** - Bernilai tunggal

### aws:MultiFactorAuthPresent
<a name="condition-keys-multifactorauthpresent"></a>

Gunakan kunci ini untuk memeriksa apakah otentikasi multi-faktor (MFA) digunakan untuk memvalidasi [kredenal keamanan sementara](id_credentials_temp.md) yang membuat permintaan.

**penting**  
Kunci kondisi ini tidak ada untuk identitas gabungan atau permintaan yang dibuat menggunakan kunci akses untuk menandatangani permintaan AWS CLI, AWS API, atau SDK. AWS Untuk mempelajari selengkapnya tentang menambahkan perlindungan MFA ke operasi API dengan kredenal keamanan sementara, lihat. [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md)  
Untuk memeriksa apakah MFA digunakan untuk memvalidasi identitas federasi IAM, Anda dapat meneruskan metode otentikasi dari penyedia identitas Anda ke tag sesi. AWS Lihat perinciannya di [Lulus tag sesi di AWS STS](id_session-tags.md). Untuk menerapkan MFA untuk identitas Pusat Identitas IAM, Anda [dapat mengaktifkan atribut untuk kontrol akses untuk](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) meneruskan klaim pernyataan SAMP dengan metode otentikasi dari penyedia identitas Anda ke IAM Identity Center.
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan hanya jika prinsipal menggunakan kredensial sementara untuk membuat permintaan. Kebijakan dengan kondisi MFA dapat dilampirkan pada:
  + Pengguna atau grup IAM
  + Sumber daya seperti bucket Amazon S3, antrean Amazon Amazon SQS, atau topik Amazon SNS
  + Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

Kredensi sementara digunakan untuk mengautentikasi peran IAM dan pengguna IAM dengan token sementara dari [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html), dan pengguna. Konsol Manajemen AWS

Kunci akses pengguna IAM adalah kredensil jangka panjang, tetapi dalam beberapa kasus, AWS membuat kredensil sementara atas nama pengguna IAM untuk melakukan operasi. Dalam kasus ini, kunci `aws:MultiFactorAuthPresent` tersedia dalam permintaan dan diatur ke nilai `false`. Ada dua kasus umum hal ini bisa terjadi:
+ Pengguna IAM secara Konsol Manajemen AWS tidak sadar menggunakan kredensi sementara. Pengguna masuk ke konsol menggunakan nama pengguna dan kata sandi yang merupakan kredensial jangka panjang. Namun, di latar belakang, konsol membuat kredensial sementara atas nama pengguna. 
+ Jika pengguna IAM melakukan panggilan ke AWS layanan, layanan menggunakan kembali kredensi pengguna untuk membuat permintaan lain ke layanan lain. Misalnya, saat memanggil Athena untuk mengakses bucket Amazon S3, atau saat CloudFormation menggunakan untuk membuat instans Amazon EC2. Untuk permintaan berikutnya, AWS gunakan kredensi sementara.

Untuk mempelajari layanan mana yang mendukung penggunaan kredensial sementara, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md).

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

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

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

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

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

**Kombinasi yang Direkomendasikan**  
Kami sarankan Anda menggunakan operator [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists) untuk memastikan permintaan teraotentikasi menggunakan MFA ataukah tidak.

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

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

**Kombinasi Alternatif**  
Anda juga dapat menggunakan [`BoolIfExists`](reference_policies_elements_condition_operators.md#Conditions_IfExists)operator untuk mengizinkan permintaan yang diautentikasi MFA dan AWS CLI atau permintaan AWS API yang dibuat menggunakan kredensil jangka panjang.

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

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

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

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

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

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

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

```
#####   WARNING: USE WITH CAUTION   #####

"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
```

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

### aws:ChatbotSourceArn
<a name="condition-keys-chatbotsourcearn"></a>

Gunakan kunci ini untuk membandingkan konfigurasi obrolan sumber ARN yang ditetapkan oleh prinsipal dengan ARN konfigurasi obrolan yang Anda tentukan dalam kebijakan peran IAM yang terkait dengan konfigurasi saluran Anda. Anda dapat mengotorisasi permintaan berdasarkan sesi peran asumsikan yang diprakarsai oleh Pengembang Amazon Q di aplikasi obrolan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan oleh Pengembang Amazon Q di layanan aplikasi obrolan setiap kali sesi peran diasumsikan. Nilai kuncinya adalah ARN konfigurasi obrolan, seperti saat Anda [menjalankan AWS CLI perintah dari saluran obrolan](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-cli-commands.html).
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - `arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel`

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

------
#### [ JSON ]

****  

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

------

### aws:Ec2InstanceSourceVpc
<a name="condition-keys-ec2instancesourcevpc"></a>

Kunci ini mengidentifikasi VPC tempat kredensyal peran Amazon EC2 IAM dikirimkan. Anda dapat menggunakan kunci ini dalam kebijakan dengan kunci [`aws:SourceVPC`](#condition-keys-sourcevpc)global untuk memeriksa apakah panggilan dilakukan dari VPC (`aws:SourceVPC`) yang cocok dengan VPC tempat kredensi dikirimkan ke (). `aws:Ec2InstanceSourceVpc`
+ **Ketersediaan** - Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi peran Amazon EC2. Ini dapat digunakan dalam kebijakan IAM, kebijakan kontrol layanan, kebijakan titik akhir VPC, dan kebijakan sumber daya.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

------
#### [ JSON ]

****  

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

------

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

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

### aws:Ec2InstanceSourcePrivateIPv4
<a name="condition-keys-ec2instancesourceprivateip4"></a>

Kunci ini mengidentifikasi alamat IPv4 pribadi dari antarmuka elastic network primer yang dikirimkan kredenal peran Amazon EC2 IAM. Anda harus menggunakan kunci kondisi ini dengan kunci pendampingnya `aws:Ec2InstanceSourceVpc` untuk memastikan bahwa Anda memiliki kombinasi unik global ID VPC dan IP pribadi sumber. Gunakan kunci ini `aws:Ec2InstanceSourceVpc` untuk memastikan bahwa permintaan dibuat dari alamat IP pribadi yang sama dengan yang dikirimkan kredensialnya.
+ **Ketersediaan** - Kunci ini disertakan dalam konteks permintaan setiap kali pemohon menandatangani permintaan dengan kredensi peran Amazon EC2. Ini dapat digunakan dalam kebijakan IAM, kebijakan kontrol layanan, kebijakan titik akhir VPC, dan kebijakan sumber daya.
+ **Tipe data** — [alamat IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Jenis nilai** - Bernilai tunggal

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

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

------
#### [ JSON ]

****  

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

------

### aws:SourceIdentity
<a name="condition-keys-sourceidentity"></a>

Gunakan kunci ini untuk membandingkan identitas sumber yang ditetapkan oleh prinsipal dengan identitas sumber yang Anda tentukan dalam kebijakan. 
+ **Ketersediaan** - Kunci ini disertakan dalam konteks permintaan setelah identitas sumber ditetapkan saat peran diasumsikan menggunakan perintah CLI AWS STS peran apa pun, atau operasi API. AWS STS `AssumeRole`
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Anda dapat menggunakan kunci ini dalam kebijakan untuk mengizinkan tindakan AWS berdasarkan prinsipal yang telah menetapkan identitas sumber saat mengambil peran. Aktivitas untuk identitas sumber yang ditentukan peran muncul di[AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds). Ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran AWS.

Tidak seperti [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname), setelah identitas sumber diatur, nilai tidak dapat diubah. Ini terdapat dalam konteks permintaan untuk semua tindakan yang diambil oleh peran. Nilai tetap ada dalam sesi peran berikutnya saat Anda menggunakan kredenal sesi untuk mengasumsikan peran lain. Mengasumsikan satu peran dari peran lain disebut [rantai peran](id_roles.md#iam-term-role-chaining). 

[`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity)Kuncinya ada dalam permintaan ketika prinsipal awalnya menetapkan identitas sumber sambil mengasumsikan peran menggunakan perintah CLI AWS STS peran apa pun, atau operasi API. AWS STS `AssumeRole` Kunci `aws:SourceIdentity` tersedia dalam permintaan untuk tindakan apa pun yang diambil dengan sesi peran yang menetapkan identitas sumber.

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

------
#### [ JSON ]

****  

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

------

Untuk informasi selengkapnya tentang menggunakan informasi identitas sumber, lihat [Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan](id_credentials_temp_control-access_monitor.md).

### ec2:RoleDelivery
<a name="condition-keys-ec2-role-delivery"></a>

Gunakan kunci ini untuk membandingkan versi layanan metadata instans dalam permintaan yang ditandatangani dengan kredensyal peran IAM untuk Amazon EC2. Layanan metadata instance membedakan antara IMDSv1 dan IMDSv2 permintaan berdasarkan apakah, untuk setiap permintaan yang diberikan, baik `GET` header `PUT` atau, yang unik untuk IMDSv2, ada dalam permintaan itu.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh instans Amazon EC2.
+ **Tipe data** - [Numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - 1.0, 2.0

Anda dapat mengonfigurasi Layanan Metadata Instance (IMDS) pada setiap instance sehingga kode lokal atau pengguna harus menggunakannya. IMDSv2 Ketika Anda menentukan yang IMDSv2 harus digunakan, IMDSv1 tidak lagi berfungsi.
+ Layanan Metadata Instance Versi 1 (IMDSv1) — Metode permintaan/respons 
+ Instance Metadata Service Version 2 (IMDSv2) — metode yang berorientasi pada sesi

Untuk informasi tentang cara mengonfigurasi instans yang akan digunakan IMDSv2, lihat [Mengonfigurasi opsi metadata instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html).

Dalam contoh berikut, akses ditolak jika RoleDelivery nilai ec2: dalam konteks permintaan adalah 1.0 (IMDSv1). Pernyataan kebijakan ini dapat diterapkan secara umum karena, jika permintaan tidak ditandatangani oleh kredensyal peran Amazon EC2, maka tidak akan berpengaruh.

------
#### [ JSON ]

****  

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

------

Untuk informasi selengkapnya, lihat [Contoh kebijakan untuk bekerja dengan metadata instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-instance-metadata).

### ec2:SourceInstanceArn
<a name="condition-keys-ec2-source-instance-arn"></a>

Gunakan kunci ini untuk membandingkan ARN dari instance dari mana sesi peran dihasilkan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan setiap kali sesi peran dibuat oleh instans Amazon EC2.
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** — arn:aws: :ec2:us-west- 2:111111111111: instance/instance-id

Untuk contoh kebijakan, lihat [Mengizinkan instance tertentu untuk melihat sumber daya di AWS layanan lain](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-source-instance).

### glue:RoleAssumedBy
<a name="condition-keys-glue-role-assumed-by"></a>

 AWS Glue Layanan menetapkan kunci kondisi ini untuk setiap permintaan AWS API yang AWS Glue membuat permintaan menggunakan peran layanan atas nama pelanggan (bukan oleh pekerjaan atau titik akhir pengembang, tetapi langsung oleh AWS Glue layanan). Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue layanan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan saat AWS Glue membuat permintaan menggunakan peran layanan atas nama pelanggan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - Kunci ini selalu diatur ke`glue.amazonaws.com`.

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

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

### glue:CredentialIssuingService
<a name="condition-keys-glue-credential-issuing"></a>

 AWS Glue Layanan menetapkan kunci ini untuk setiap permintaan AWS API menggunakan peran layanan yang berasal dari pekerjaan atau titik akhir pengembang. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari AWS Glue pekerjaan atau titik akhir pengembang.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan saat AWS Glue membuat permintaan yang berasal dari pekerjaan atau titik akhir pengembang.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - Kunci ini selalu diatur ke`glue.amazonaws.com`.

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

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

### codebuild:BuildArn
<a name="condition-keys-codebuild-build-arn"></a>

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

**catatan**  
Nilai penuh tidak `codebuild:BuildArn` diketahui sebelumnya karena berisi ID build yang dihasilkan secara dinamis.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan setiap kali permintaan dibuat oleh peran yang diasumsikan oleh CodeBuild.
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh - arn:aws:codebuild: us-east- 1**: 123456789012: build/:12345678-1234-1234-1234-123456789012 MyBuildProject

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

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

### codebuild:ProjectArn
<a name="condition-keys-codebuild-project-arn"></a>

Kunci ini mengidentifikasi ARN CodeBuild proyek bahwa kredenal peran IAM dikirimkan ke build. CodeBuild Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari CodeBuild proyek tertentu.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan setiap kali permintaan dibuat oleh peran yang diasumsikan oleh CodeBuild.
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Contoh nilai** - arn:aws:codebuild:us-east- 1:123456789012: project/ MyBuildProject

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

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

### lambda:SourceFunctionArn
<a name="condition-keys-lambda-source-function-arn"></a>

Gunakan kunci ini untuk mengidentifikasi ARN fungsi Lambda yang dikirimkan kepada kredensil peran IAM. Layanan Lambda menetapkan kunci ini untuk setiap permintaan AWS API yang berasal dari lingkungan eksekusi fungsi Anda. Gunakan kunci ini untuk memverifikasi apakah panggilan ke AWS sumber daya berasal dari kode fungsi Lambda tertentu. Lambda juga menetapkan kunci ini untuk beberapa permintaan yang datang dari luar lingkungan eksekusi, seperti menulis log ke CloudWatch dan mengirim jejak ke X-Ray.
+ **Ketersediaan** - Kunci ini disertakan dalam konteks permintaan setiap kali kode fungsi Lambda dipanggil.
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - arn:aws:lambda: us-east- 1:123456789012: fungsi: TestFunction

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

------
#### [ JSON ]

****  

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

------

*Untuk informasi selengkapnya, lihat [Bekerja dengan kredenal lingkungan eksekusi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-source-function-arn) di Panduan Pengembang.AWS Lambda *

### ssm:SourceInstanceArn
<a name="condition-keys-ssm-source-instance-arn"></a>

Gunakan kunci ini untuk mengidentifikasi ARN instance AWS Systems Manager terkelola yang dikirimkan ke kredensil peran IAM. Kunci kondisi ini tidak ada saat permintaan berasal dari instance terkelola dengan peran IAM yang terkait dengan profil instans Amazon EC2.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan setiap kali kredensil peran dikirimkan ke instance AWS Systems Manager terkelola.
+ **Tipe data** — [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** — arn:aws: :ec2:us-west- 2:111111111111: instance/instance-id

### identitystore:UserId
<a name="condition-keys-identity-store-user-id"></a>

Gunakan kunci ini untuk membandingkan identitas tenaga kerja Pusat Identitas IAM dalam permintaan yang ditandatangani dengan identitas yang ditentukan dalam kebijakan. 
+ **Ketersediaan** — Kunci ini disertakan ketika pemanggil permintaan adalah pengguna di Pusat Identitas IAM.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** — 94482488-3041-7026-18f3-be45837cd0e4

Anda dapat menemukan pengguna di IAM Identity Center dengan membuat permintaan ke [GetUserId](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_GetUserId.html)API menggunakan API AWS CLI, AWS API, atau AWS SDK. UserId 

## Properti jaringan
<a name="condition-keys-network-properties"></a>

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

### aws:SourceIp
<a name="condition-keys-sourceip"></a>

Gunakan kunci ini untuk membandingkan alamat IP pemohon dengan alamat IP yang Anda tentukan dalam kebijakan. Kunci kondisi `aws:SourceIp` hanya dapat digunakan untuk rentang alamat IP publik.
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan, kecuali saat pemohon menggunakan titik akhir VPC untuk membuat permintaan.
+ **Tipe data** — [alamat IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Jenis nilai** - Bernilai tunggal

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

**catatan**  
`aws:SourceIp`mendukung keduanya IPv4 dan IPv6 alamat atau rentang alamat IP. Untuk daftar dukungan Layanan AWS tersebut IPv6, lihat [dukungan Layanan AWS tersebut IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) di *Panduan Pengguna Amazon VPC*.

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

------
#### [ JSON ]

****  

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

------

Jika Anda perlu membatasi akses dari jaringan yang mendukung keduanya IPv4 dan IPv6 pengalamatan, Anda dapat menyertakan IPv4 dan IPv6 alamat atau rentang alamat IP dalam kondisi kebijakan IAM. Kebijakan berbasis identitas berikut akan memungkinkan pengguna untuk memasukkan objek ke dalam bucket `amzn-s3-demo-bucket3` Amazon S3 jika pengguna melakukan panggilan dari rentang yang ditentukan atau alamat. IPv4 IPv6 Sebelum Anda menyertakan rentang IPv6 alamat dalam kebijakan IAM Anda, verifikasi bahwa Layanan AWS Anda bekerja dengan dukungan IPv6. Untuk daftar dukungan Layanan AWS tersebut IPv6, lihat [dukungan Layanan AWS tersebut IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) di *Panduan Pengguna Amazon VPC*.

------
#### [ JSON ]

****  

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

------

Jika permintaan berasal dari host yang menggunakan titik akhir VPC Amazon, maka kunci `aws:SourceIp` tidak tersedia. [Sebagai gantinya, Anda harus menggunakan kunci khusus VPC seperti aws:. VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) *Untuk informasi selengkapnya tentang penggunaan titik akhir VPC, lihat [Identitas dan manajemen akses untuk titik akhir VPC dan layanan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-iam.html) di Panduan.AWS PrivateLink *

**catatan**  
Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (service-to-service panggilan), konteks otorisasi khusus jaringan tertentu akan dihapus. Jika kebijakan Anda menggunakan kunci kondisi ini dengan `Deny` pernyataan, Layanan AWS prinsipal mungkin diblokir secara tidak sengaja. Layanan AWS Agar dapat bekerja dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsip layanan dari `Deny` pernyataan Anda dengan menambahkan kunci `aws:PrincipalIsAWSService` kondisi dengan nilai. `false`

### aws:SourceVpc
<a name="condition-keys-sourcevpc"></a>

Gunakan kunci ini untuk memeriksa apakah permintaan berjalan melalui VPC tempat titik akhir VPC dilampirkan. Dalam kebijakan, Anda dapat menggunakan kunci ini untuk memungkinkan akses hanya ke VPC tertentu. Untuk informasi selengkapnya, lihat [Membatasi Akses ke VPC Tertentu](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*. 
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

Misalnya, Anda dapat melampirkan kebijakan berbasis identitas berikut ke peran IAM untuk menolak bucket `PutObject` Amazon S3`amzn-s3-demo-bucket3`, kecuali permintaan dibuat dari ID VPC Layanan AWS yang ditentukan atau menggunakan [sesi akses teruskan (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) untuk membuat permintaan atas nama peran. Berbeda dengan[aws:SourceIp](#condition-keys-sourceip), Anda harus menggunakan [aws:ViaAWSService](#condition-keys-viaawsservice) atau [aws:CalledVia](#condition-keys-calledvia) mengizinkan permintaan FAS, karena VPC sumber dari permintaan awal tidak dipertahankan.

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

------
#### [ JSON ]

****  

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

------

**catatan**  
AWS merekomendasikan untuk menggunakan `aws:SourceVpcArn` alih-alih `aws:SourceVpc` if `aws:SourceVpcArn` didukung oleh layanan yang Anda targetkan. Silakan merujuk ke [aws: SourceVpcArn](#condition-keys-sourcevpcarn) untuk daftar layanan yang didukung.

### aws:SourceVpcArn
<a name="condition-keys-sourcevpcarn"></a>

Gunakan kunci ini untuk memverifikasi ARN VPC yang melaluinya permintaan dibuat melalui titik akhir VPC. Kunci ini mengembalikan ARN dari VPC tempat titik akhir VPC dilampirkan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan untuk layanan yang didukung saat permintaan dibuat melalui titik akhir VPC. Kuncinya tidak termasuk untuk permintaan yang dibuat melalui titik akhir layanan publik. Layanan berikut mendukung kunci ini:
  + AWS App Runner (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
  + AWS Cloud Map (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Wawasan CloudWatch Aplikasi Amazon (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)
  + AWS CloudFormation (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)
  + AWS Compute Optimizer (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Registri Kontainer Elastis (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Layanan Kontainer Elastis Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (awalan [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)
  + AWS HealthImaging (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (kecuali untuk `iam:PassRole` tindakan) (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)
  + AWS Private Certificate Authority (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Recycle Bin (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)
  + Service Quotas (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)
  + Layanan Penyimpanan Sederhana Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Manajer Insiden AWS Systems Manager Kontak (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Ttract (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)
  + Amazon Transcribe (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)
  + AWS Transfer Family (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipe data** — ARN

  AWS merekomendasikan agar Anda menggunakan operator [ARN alih-alih operator](reference_policies_elements_condition_operators.md#Conditions_ARN) [string saat membandingkan](reference_policies_elements_condition_operators.md#Conditions_String). ARNs
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - `arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE`

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

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

### aws:SourceVpce
<a name="condition-keys-sourcevpce"></a>

Gunakan kunci ini untuk membandingkan pengidentifikasi VPC endpoint dari permintaan dengan ID titik akhir yang Anda sebutkan dalam kebijakan.
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan, hanya jika pemohon menggunakan titik akhir VPC untuk membuat permintaan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Dalam kebijakan, Anda dapat menggunakan kunci ini untuk membatasi akses ke VPC endpoint tertentu. Untuk informasi selengkapnya, lihat [Membatasi akses ke VPC tertentu](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-access-vpc) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*. Sama halnya dengan menggunakan[aws:SourceVpc](#condition-keys-sourcevpc), Anda harus menggunakan [aws:ViaAWSService](#condition-keys-viaawsservice) atau [aws:CalledVia](#condition-keys-calledvia) mengizinkan permintaan yang dibuat dengan Layanan AWS menggunakan [sesi akses terusan (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Ini karena titik akhir VPC sumber dari permintaan awal tidak dipertahankan.

### aws:VpceAccount
<a name="condition-keys-vpceaccount"></a>

Gunakan kunci ini untuk membandingkan ID AWS akun yang memiliki titik akhir VPC tempat permintaan dibuat dengan ID akun yang Anda tentukan dalam kebijakan. Kunci kondisi ini membantu Anda membuat kontrol perimeter jaringan dengan memastikan permintaan datang melalui titik akhir VPC yang dimiliki oleh akun tertentu.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan saat permintaan dibuat melalui titik akhir VPC. Kuncinya tidak termasuk untuk permintaan yang dibuat melalui titik akhir layanan publik.

  Layanan berikut mendukung kunci ini:
  + AWS App Runner (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
  + AWS Cloud Map (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Wawasan CloudWatch Aplikasi Amazon (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)
  + AWS CloudFormation (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)
  + AWS Compute Optimizer (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Registri Kontainer Elastis (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Layanan Kontainer Elastis Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (awalan [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)
  + AWS HealthImaging (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (kecuali untuk `iam:PassRole` tindakan) (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)
  + AWS Private Certificate Authority (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Recycle Bin (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)
  + Service Quotas (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)
  + Layanan Penyimpanan Sederhana Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Manajer Insiden AWS Systems Manager Kontak (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Ttract (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)
  + Amazon Transcribe (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)
  + AWS Transfer Family (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal
+ **Nilai contoh** - `123456789012`

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

------
#### [ JSON ]

****  

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

------

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

Beberapa AWS layanan mengakses sumber daya Anda dari jaringan mereka ketika mereka bertindak atas nama Anda. Jika Anda menggunakan layanan tersebut, Anda perlu mengedit contoh kebijakan di atas untuk memungkinkan AWS layanan mengakses sumber daya Anda dari luar jaringan Anda. Untuk informasi selengkapnya tentang pola akses yang perlu dipertanggungjawabkan saat menerapkan kontrol akses berdasarkan asal permintaan, lihat. [Tetapkan pagar pembatas izin dengan menggunakan perimeter data](access_policies_data-perimeters.md)

### aws:VpceOrgID
<a name="condition-keys-vpceorgid"></a>

Gunakan kunci ini untuk membandingkan pengenal organisasi AWS Organizations yang memiliki titik akhir VPC tempat permintaan dibuat dengan pengenal yang Anda tentukan dalam kebijakan. Kunci kondisi ini menyediakan pendekatan yang paling skalabel untuk kontrol perimeter jaringan, secara otomatis termasuk semua titik akhir VPC yang dimiliki oleh akun dalam organisasi Anda.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan ketika permintaan dibuat melalui titik akhir VPC dan akun pemilik titik akhir VPC adalah anggota organisasi. AWS Kunci tidak disertakan untuk permintaan yang dibuat melalui jalur jaringan lain atau ketika akun pemilik titik akhir VPC bukan bagian dari organisasi.

  Layanan berikut mendukung kunci ini:
  + AWS App Runner (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
  + AWS B2B Pertukaran Data (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsb2bdatainterchange.html))
  + AWS Cloud Map (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Wawasan CloudWatch Aplikasi Amazon (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)
  + AWS CloudFormation (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Cognito (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html)
  + Amazon Comprehend Medical (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)
  + AWS Compute Optimizer (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + AWS Database Migration Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html))
  + AWS Directory Service Data (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectoryservicedata.html))
  + Amazon; Registri Kontainer Elastis (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Layanan Kontainer Elastis Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (awalan [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)
  + AWS HealthImaging (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (kecuali untuk `iam:PassRole` tindakan) (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS Toko Identitas (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html))
  + AWS IoT FleetWise (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT TwinMaker (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html))
  + AWS IoT Wireless (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + Amazon Keyspaces (untuk Apache Cassandra) (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkeyspacesforapachecassandra.html)
  + AWS Key Management Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Network Firewall (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkfirewall.html))
  + AWS Payment Cryptography (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Pinpoint SMS dan Layanan Suara (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html)
  + Amazon Polly (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)
  + Daftar Harga AWS (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspricelist.html))
  + AWS Private Certificate Authority (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Recycle Bin (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)
  + Service Quotas (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)
  + Layanan Email Sederhana Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html))
  + Layanan Penyimpanan Sederhana Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + Layanan Antrian Sederhana Amazon (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html)
  + AWS Storage Gateway (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Manajer Insiden AWS Systems Manager Kontak (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Ttract (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)
  + Amazon Transcribe (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)
  + AWS Transfer Family (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
  + Amazon WorkMail (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkmail.html))
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal
+ **Contoh nilai** - `o-a1b2c3d4e5`

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

------
#### [ JSON ]

****  

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

------

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

### aws:VpceOrgPaths
<a name="condition-keys-vpceorgpaths"></a>

Gunakan kunci ini untuk membandingkan AWS Organizations jalur titik akhir VPC tempat permintaan dibuat dengan jalur yang Anda tentukan dalam kebijakan. Kunci kondisi ini memungkinkan Anda untuk menerapkan kontrol perimeter jaringan pada tingkat unit organisasi (OU), secara otomatis menskalakan dengan penggunaan titik akhir VPC Anda saat Anda menambahkan titik akhir baru dalam yang ditentukan. OUs
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan ketika permintaan dibuat melalui titik akhir VPC dan akun pemilik titik akhir VPC adalah anggota organisasi. Kunci tidak disertakan untuk permintaan yang dibuat melalui jalur jaringan lain atau ketika akun pemilik titik akhir VPC bukan bagian dari organisasi.

  Layanan berikut mendukung kunci ini:
  + AWS App Runner (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapprunner.html))
  + AWS Application Discovery Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationdiscoveryservice.html))
  + Amazon Athena (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
  + AWS Cloud Map (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html))
  + Wawasan CloudWatch Aplikasi Amazon (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)
  + AWS CloudFormation (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html))
  + Amazon Comprehend Medical (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)
  + AWS Compute Optimizer (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)
  + Amazon; Registri Kontainer Elastis (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html))
  + Layanan Kontainer Elastis Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html))
  + Amazon Kinesis Analytics (awalan [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalytics.html):)
  + Amazon Route 53 (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html))
  + AWS DataSync (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatasync.html))
  + Amazon Elastic Block Store (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html))
  + Amazon EventBridge Scheduler (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgescheduler.html)
  + Amazon Data Firehose (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)
  + AWS HealthImaging (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthimaging.html))
  + AWS HealthLake (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthlake.html))
  + AWS HealthOmics (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html))
  + AWS Identity and Access Management (kecuali untuk `iam:PassRole` tindakan) (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html))
  + AWS IoT FleetWise (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleetwise.html))
  + AWS IoT Wireless (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html))
  + AWS Key Management Service (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html))
  + AWS Lambda (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html))
  + AWS Payment Cryptography (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspaymentcryptography.html))
  + Amazon Polly (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)
  + AWS Private Certificate Authority (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsprivatecertificateauthority.html))
  + AWS Recycle Bin (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)
  + Amazon Rekognition (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)
  + Service Quotas (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)
  + Layanan Penyimpanan Sederhana Amazon (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html))
  + AWS Storage Gateway (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstoragegateway.html))
  + Manajer Insiden AWS Systems Manager Kontak (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanagercontacts.html))
  + Amazon Ttract (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)
  + Amazon Transcribe (awalan:) [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)
  + AWS Transfer Family (awalan: [https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html))
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued
+ **Contoh nilai** - `o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/`

Karena `aws:VpceOrgPaths` merupakan kunci kondisi multivalued, Anda harus menggunakan `ForAnyValue` atau `ForAllValues` mengatur operator dengan [operator kondisi string](reference_policies_elements_condition_operators.md#Conditions_String) untuk kunci ini. Contoh kebijakan bucket Amazon S3 berikut mengizinkan akses hanya jika permintaan datang melalui titik akhir VPC yang dimiliki oleh akun di unit organisasi tertentu:

------
#### [ JSON ]

****  

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

------

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

Beberapa AWS layanan mengakses sumber daya Anda dari jaringan mereka ketika mereka bertindak atas nama Anda. Jika Anda menggunakan layanan tersebut, Anda perlu mengedit contoh kebijakan di atas untuk memungkinkan AWS layanan mengakses sumber daya Anda dari luar jaringan Anda. Untuk informasi selengkapnya tentang pola akses yang perlu dipertanggungjawabkan saat menerapkan kontrol akses berdasarkan asal permintaan, lihat. [Tetapkan pagar pembatas izin dengan menggunakan perimeter data](access_policies_data-perimeters.md)

### aws:VpcSourceIp
<a name="condition-keys-vpcsourceip"></a>

Gunakan kunci ini untuk membandingkan alamat IP tempat permintaan dibuat dengan alamat IP yang Anda tentukan dalam kebijakan. Dalam kebijakan, kunci hanya cocok jika permintaan berasal dari alamat IP yang ditentukan dan melalui titik akhir VPC.
+ **Ketersediaan** – Kunci ini disertakan dalam konteks permintaan, hanya jika permintaan dibuat menggunakan titik akhir VPC.
+ **Tipe data** — [alamat IP](reference_policies_elements_condition_operators.md#Conditions_IPAddress)
+ **Jenis nilai** - Bernilai tunggal

Untuk informasi selengkapnya, lihat [Mengontrol akses ke titik akhir VPC menggunakan kebijakan titik akhir di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) Amazon *VPC*. Sama halnya dengan menggunakan[aws:SourceVpc](#condition-keys-sourcevpc), Anda harus menggunakan [aws:ViaAWSService](#condition-keys-viaawsservice) atau [aws:CalledVia](#condition-keys-calledvia) mengizinkan permintaan yang dibuat dengan Layanan AWS menggunakan [sesi akses terusan (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). Ini karena IP sumber dari permintaan awal yang dibuat menggunakan titik akhir VPC tidak disimpan dalam permintaan FAS.

**catatan**  
`aws:VpcSourceIp`mendukung keduanya IPv4 dan IPv6 alamat atau rentang alamat IP. Untuk daftar dukungan Layanan AWS tersebut IPv6, lihat [dukungan Layanan AWS tersebut IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ipv6-support.html) di *Panduan Pengguna Amazon VPC*.  
Kunci `aws:VpcSourceIp` kondisi harus selalu digunakan bersama dengan salah satu `aws:SourceVpc` atau tombol `aws:SourceVpce` kondisi. Jika tidak, panggilan API dari VPC tak terduga yang menggunakan CIDR IP yang sama atau tumpang tindih diizinkan oleh kebijakan. Hal ini dapat terjadi karena IP CIDRs dari dua yang tidak terkait VPCs bisa sama atau tumpang tindih. Sebagai gantinya, titik akhir IDs VPC atau VPC IDs harus digunakan dalam kebijakan karena mereka memiliki pengidentifikasi unik secara global. Pengidentifikasi unik ini memastikan bahwa hasil yang tidak terduga tidak akan terjadi.

**catatan**  
Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (service-to-service panggilan), konteks otorisasi khusus jaringan tertentu akan dihapus. Jika kebijakan Anda menggunakan kunci kondisi ini dengan `Deny` pernyataan, Layanan AWS prinsipal mungkin diblokir secara tidak sengaja. Layanan AWS Agar dapat bekerja dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsip layanan dari `Deny` pernyataan Anda dengan menambahkan kunci `aws:PrincipalIsAWSService` kondisi dengan nilai. `false`

## Properti dari sumber daya
<a name="condition-keys-resource-properties"></a>

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

### aws:ResourceAccount
<a name="condition-keys-resourceaccount"></a>

Gunakan kunci ini untuk membandingkan [Akun AWS ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) pemilik sumber daya yang diminta dengan akun sumber daya dalam kebijakan. Anda kemudian dapat mengizinkan atau menolak akses ke sumber daya tersebut berdasarkan akun yang memiliki sumber daya tersebut.
+ **Ketersediaan** — Kunci ini selalu disertakan dalam konteks permintaan untuk sebagian besar tindakan layanan. Tindakan berikut tidak mendukung kunci ini:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store - Semua tindakan
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat [Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) di *Panduan EventBridge Pengguna Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Layanan Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

**catatan**  
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori [Contoh Kebijakan Perimeter Data](https://github.com/aws-samples/data-perimeter-policy-examples).

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

Untuk sebagian besar sumber daya di akun Anda, [ARN](reference_policies_elements_condition_operators.md#Conditions_ARN) berisi ID akun pemilik untuk sumber daya tersebut. Untuk sumber daya tertentu, seperti bucket Amazon S3, ARN sumber daya tidak menyertakan ID akun. Dua contoh berikut menunjukkan perbedaan antara sumber daya dengan ID akun di ARN, dan Amazon S3 ARN tanpa ID akun:
+ `arn:aws:iam::123456789012:role/AWSExampleRole`— Peran IAM dibuat dan dimiliki dalam akun 123456789012. 
+ `arn:aws:s3:::amzn-s3-demo-bucket2`- Bucket Amazon S3 dibuat dan dimiliki di dalam akun`111122223333`, tidak ditampilkan di ARN.

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

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

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

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

------
#### [ JSON ]

****  

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

------

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

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

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

Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat [dokumentasi](https://docs.aws.amazon.com/index.html) layanan Anda untuk informasi lebih lanjut.

### aws:ResourceOrgPaths
<a name="condition-keys-resourceorgpaths"></a>

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang diakses dengan jalur dalam kebijakan. Dalam kebijakan, kunci kondisi ini memastikan bahwa sumber daya milik anggota akun dalam akar organisasi tertentu atau unit organisasi (OUs) di AWS Organizations. AWS Organizations Path adalah representasi teks dari struktur entitas Organizations. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat [Memahami jalur AWS Organizations entitas](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path) 
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya jika akun yang memiliki sumber daya adalah anggota organisasi. Kunci kondisi global ini tidak mendukung tindakan berikut:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store - Semua tindakan
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat [Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) di *Panduan EventBridge Pengguna Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Layanan Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

**catatan**  
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori [Contoh Kebijakan Perimeter Data](https://github.com/aws-samples/data-perimeter-policy-examples).

`aws:ResourceOrgPaths` adalah kunci kondisi multinilai. Kunci multivalued dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan `ForAnyValue` atau `ForAllValues` mengatur operator dengan [operator kondisi string](reference_policies_elements_condition_operators.md#Conditions_String) untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Misalnya, kondisi berikut mengembalikan `True` sumber daya milik organisasi`o-a1b2c3d4e5`. Ketika Anda menyertakan wildcard, Anda harus menggunakan operator kondisi [StringLike](reference_policies_elements_condition_operators.md).

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

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

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

Kondisi berikut mengembalikan sumber daya `True` yang dimiliki oleh akun yang dilampirkan langsung ke ID OU`ou-ab12-22222222`, tetapi bukan anak OUs. Contoh berikut menggunakan operator [StringEquals](reference_policies_elements_condition_operators.md)kondisi untuk menentukan persyaratan kecocokan yang tepat untuk ID OU dan bukan pencocokan wildcard.

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

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

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

Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat [dokumentasi](https://docs.aws.amazon.com/index.html) layanan Anda untuk informasi lebih lanjut.

### aws:ResourceOrgID
<a name="condition-keys-resourceorgid"></a>

Gunakan kunci ini untuk membandingkan pengenal organisasi tempat sumber daya AWS Organizations yang diminta berada dengan pengenal yang ditentukan dalam kebijakan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya jika akun yang memiliki sumber daya adalah anggota organisasi. Kunci kondisi global ini tidak mendukung tindakan berikut:
  + AWS Audit Manager
    + `auditmanager:UpdateAssessmentFrameworkShare`
  + Amazon Detective
    + `detective:AcceptInvitation`
  + AWS Directory Service
    + `ds:AcceptSharedDirectory`
  + Amazon Elastic Block Store - Semua tindakan
  + Amazon EC2
    + `ec2:AcceptTransitGatewayPeeringAttachment`
    + `ec2:AcceptVpcEndpointConnections`
    + `ec2:AcceptVpcPeeringConnection`
    + `ec2:CreateTransitGatewayPeeringAttachment`
    + `ec2:CreateVpcEndpoint`
    + `ec2:CreateVpcPeeringConnection`
  + Amazon EventBridge
    + `events:PutEvents`— EventBridge `PutEvents` memanggil bus acara di akun lain, jika bus acara itu dikonfigurasi sebagai EventBridge target lintas akun sebelum 2 Maret 2023. Untuk informasi selengkapnya, lihat [Memberikan izin untuk mengizinkan peristiwa dari AWS akun lain](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html#eb-receiving-events-from-another-account) di *Panduan EventBridge Pengguna Amazon*.
  + Amazon GuardDuty
    + `guardduty:AcceptAdministratorInvitation`
  + Amazon Macie
    + `macie2:AcceptInvitation`
  +  OpenSearch Layanan Amazon
    + `es:AcceptInboundConnection`
  + Amazon Route 53
    + `route53:AssociateVpcWithHostedZone`
    + `route53:CreateVPCAssociationAuthorization`
  + AWS Security Hub CSPM
    + `securityhub:AcceptAdministratorInvitation`
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

**catatan**  
Untuk pertimbangan tambahan untuk tindakan yang tidak didukung di atas, lihat repositori [Contoh Kebijakan Perimeter Data](https://github.com/aws-samples/data-perimeter-policy-examples).

Kunci global ini mengembalikan ID organisasi sumber daya untuk permintaan yang diberikan. Ini memungkinkan Anda untuk membuat aturan yang berlaku untuk semua sumber daya dalam organisasi yang ditentukan dalam `Resource` elemen kebijakan [berbasis identitas](access_policies_identity-vs-resource.md). Anda dapat menentukan [ID organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) dalam elemen kondisi. Saat Anda menambahkan dan menghapus akun, kebijakan yang menyertakan `aws:ResourceOrgID` kunci secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbaruinya secara manual.

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

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

------
#### [ JSON ]

****  

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

------

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

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

Gunakan contoh kebijakan ini sebagai templat untuk membuat kebijakan kustom Anda sendiri. Lihat [dokumentasi](https://docs.aws.amazon.com/index.html) layanan Anda untuk informasi lebih lanjut.

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

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/cWVW0xAiWwc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/cWVW0xAiWwc)


### aws:ResourceTag/*tag-key*
<a name="condition-keys-resourcetag"></a>

Gunakan kunci ini untuk membandingkan pasangan nilai kunci tag yang Anda tentukan dalam kebijakan dengan pasangan nilai kunci yang dilampirkan ke sumber daya. Misalnya, Anda dapat meminta agar akses ke sumber daya hanya diperbolehkan jika sumber daya memiliki kunci tanda yang dilampirkan `"Dept"` dengan nilai `"Marketing"`. Untuk informasi selengkapnya, lihat [Mengontrol akses ke AWS sumber daya](access_tags.md#access_tags_control-resources).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan ketika sumber daya yang diminta sudah memiliki tag terlampir atau dalam permintaan yang membuat sumber daya dengan tag terlampir. Kunci ini hanya dikembalikan untuk sumber daya yang [mendukung otorisasi berdasarkan tanda](reference_aws-services-that-work-with-iam.md). Ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Kunci konteks ini diformat `"aws:ResourceTag/tag-key":"tag-value"` di mana *tag-key* dan *tag-value* merupakan kunci tag dan pasangan nilai. Tombol tag tidak peka huruf besar/kecil. Ini berarti jika Anda menentukan `"aws:ResourceTag/TagKey1": "Value1"` dalam elemen ketentuan kebijakan Anda, kemudian ketentuan tersebut cocok dengan kunci tanda sumber daya bernama `TagKey1` atau `tagkey1`, tetapi tidak keduanya. Nilai dalam key/value pasangan tag ini peka huruf besar/kecil. Ini berarti bahwa jika Anda menentukan `"aws:ResourceTag/TagKey1": "Production"` dalam elemen kondisi kebijakan Anda, maka kondisi tersebut cocok dengan nilai tag sumber daya bernama `Production` tetapi tidak akan cocok `production` atau`PRODUCTION`.

Untuk contoh menggunakan `aws:ResourceTag` kunci untuk mengontrol akses ke sumber daya IAM, lihat[Mengontrol akses ke AWS sumber daya](access_tags.md#access_tags_control-resources).

Untuk contoh menggunakan `aws:ResourceTag` kunci untuk mengontrol akses ke AWS sumber daya lain, lihat[Mengontrol akses ke AWS sumber daya menggunakan tag](access_tags.md).

Untuk tutorial tentang menggunakan kunci kondisi `aws:ResourceTag` untuk kontrol akses berbasis atribut (ABAC), lihat [Tutorial IAM: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag](tutorial_attribute-based-access-control.md).

## Properti permintaan
<a name="condition-keys-request-properties"></a>

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

### aws:CalledVia
<a name="condition-keys-calledvia"></a>

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

Untuk informasi selengkapnya, lihat [Teruskan sesi akses](access_forward_access_sessions.md).
+ **Ketersedian** – Kunci ini tersedia dalam permintaan saat layanan yang mendukung `aws:CalledVia` menggunakan kredensial prinsipal IAM untuk mengajukan permintaan ke layanan lain. Kunci ini tidak ada jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

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

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

Kunci `aws:CalledVia` adalah [tombol multinilai](reference_policies_condition-single-vs-multi-valued-context-keys.md). Namun, Anda tidak dapat menerapkan perintah menggunakan kunci ini dalam suatu kondisi. Menggunakan contoh di atas, **Pengguna 1** membuat permintaan ke CloudFormation, yang memanggil DynamoDB, yang memanggil. AWS KMS Ini adalah tiga permintaan terpisah. Panggilan terakhir ke AWS KMS dilakukan oleh Pengguna 1 *melalui* CloudFormation dan kemudian DynamoDB. 

![\[Contoh menggunakan aws: CalledVia\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/condition-key-calledvia-example-diagram.png)


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

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

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

------

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

![\[Contoh menggunakan aws: CalledViaFirst dan aws: CalledViaLast\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/condition-key-calledviafirstlast-example-diagram.png)


### aws:CalledViaFirst
<a name="condition-keys-calledviafirst"></a>

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan ***layanan pertama*** yang mengajukan permintaan atas nama prinsipal IAM (pengguna atau peran). Untuk informasi selengkapnya, lihat `aws:CalledVia`.
+ **Ketersediaan** – Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredensial dari prinsipal IAM untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak ada jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

### aws:CalledViaLast
<a name="condition-keys-calledvialast"></a>

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan *layanan terakhir* yang mengajukan permintaan atas nama prinsipal IAM (pengguna atau peran). Untuk informasi selengkapnya, lihat `aws:CalledVia`.
+ **Ketersediaan** – Kunci ini tersedia dalam permintaan ketika layanan menggunakan kredensial dari prinsipal IAM untuk membuat setidaknya satu permintaan lain ke layanan yang berbeda. Kunci ini tidak ada jika layanan menggunakan peran [layanan atau peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts) untuk melakukan panggilan atas nama kepala sekolah. Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

### aws:ViaAWSService
<a name="condition-keys-viaawsservice"></a>

Gunakan kunci ini untuk memeriksa apakah Layanan AWS membuat permintaan ke layanan lain atas nama Anda menggunakan [sesi akses teruskan (FAS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html).

Kunci konteks permintaan kembali `true` ketika layanan menggunakan sesi akses penerusan untuk membuat permintaan atas nama prinsipal IAM asli. Kunci konteks permintaan juga memberikan `false` saat prisipal langsung memanggil.
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

### aws:CalledViaAWSMCP
<a name="condition-keys-calledviaawasmcp"></a>

Gunakan kunci ini untuk membandingkan layanan dalam kebijakan dengan layanan AWS MCP yang membuat permintaan atas nama prinsipal IAM (pengguna atau peran). Ketika kepala sekolah membuat permintaan ke layanan AWS MCP, layanan tersebut menggunakan kredensi kepala sekolah untuk membuat permintaan berikutnya ke layanan lain. Ketika permintaan dibuat menggunakan layanan AWS MCP, kunci ini diatur dengan nilai prinsipal layanan. `aws:CalledViaAWSMCP`Kunci tersebut berisi nama utama layanan dari layanan MCP yang membuat permintaan atas nama kepala sekolah.
+ **Ketersediaan** — Kunci ini hadir dalam permintaan ketika layanan AWS MCP menggunakan kredensi kepala IAM untuk mengajukan permintaan ke layanan. AWS Kunci ini juga tidak tersedia jika prinsipal menelepon langsung.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

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

### aws:ViaAWSMCPService
<a name="condition-keys-viaawsmcpservice"></a>

Gunakan kunci ini untuk memeriksa apakah layanan AWS MCP membuat permintaan ke AWS layanan lain atas nama Anda menggunakan sesi akses teruskan (FAS). Kunci konteks permintaan kembali `true` ketika layanan AWS MCP meneruskan permintaan ke AWS layanan atas nama prinsipal IAM asli. Kunci konteks permintaan juga memberikan `false` saat prisipal langsung memanggil.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan ketika server AWS MCP membuat permintaan ke AWS layanan hilir atas nama prinsipal IAM.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

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

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

### aws:CurrentTime
<a name="condition-keys-currenttime"></a>

Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dengan tanggal dan waktu yang Anda sebutkan dalam kebijakan. Untuk melihat contoh kebijakan yang menggunakan kunci kondisi ini, lihat [AWS: Mengizinkan akses berdasarkan tanggal dan waktu](reference_policies_examples_aws-dates.md).
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** - [Tanggal](reference_policies_elements_condition_operators.md#Conditions_Date)
+ **Jenis nilai** - Bernilai tunggal

### aws:EpochTime
<a name="condition-keys-epochtime"></a>

Gunakan kunci ini untuk membandingkan tanggal dan waktu permintaan dalam epoch atau waktu Unix dengan nilai yang Anda tentukan dalam kebijakan. Kunci ini juga menerima jumlah detik sejak 1 Januari 1970. 
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** - [Tanggal](reference_policies_elements_condition_operators.md#Conditions_Date), [Numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric)
+ **Jenis nilai** - Bernilai tunggal

### aws:referer
<a name="condition-keys-referer"></a>

Gunakan kunci ini untuk membandingkan siapa yang mereferensikan permintaan di browser klien denga perujuk yang Anda tentukan dalam kebijakan. Nilai konteks permintaan `aws:referer` diberikan oleh penelepon dalam header HTTP. Header `Referer` disertakan dalam permintaan browser web saat Anda memilih tautan di halaman web. Header `Referer` berisi URL halaman web tempat tautan dipilih.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya jika permintaan ke AWS sumber daya dipanggil dengan menautkan dari URL halaman web di browser. Kunci ini tidak disertakan untuk permintaan terprogram karena tidak menggunakan tautan browser untuk mengakses sumber daya AWS .
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

Misalnya, Anda dapat mengakses objek Amazon S3 secara langsung menggunakan URL atau menggunakan invokasi API langsung. Untuk informasi lebih lanjut, lihat [Operasi API Amazon S3 secara langsung menggunakan browser web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-4). Saat Anda mengakses objek Amazon S3 dari URL yang ada di halaman web, URL halaman web sumber digunakan. `aws:referer` Saat Anda mengakses objek Amazon S3 dengan mengetikkan URL ke browser Anda, tidak `aws:referer` ada. Saat Anda meminta API secara langsung, `aws:referer` juga tidak ada. Anda dapat menggunakan kunci kondisi `aws:referer` dalam kebijakan untuk memungkinkan permintaan yang dibuat dari perujuk spesifik, seperti tautan di halaman web dalam domain perusahaan Anda. 

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

### aws:RequestedRegion
<a name="condition-keys-requestedregion"></a>

Gunakan kunci ini untuk membandingkan AWS Wilayah yang dipanggil dalam permintaan dengan Wilayah yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci kondisi global ini untuk mengontrol Wilayah mana yang dapat diminta. Untuk melihat AWS Wilayah untuk setiap layanan, lihat [Titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) di. *Referensi Umum Amazon Web Services*
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

**catatan**  
Kunci kondisi `aws:RequestedRegion` ini memungkinkan Anda mengontrol titik akhir layanan yang dipilih tetapi tidak mengendalikan dampak operasi. Beberapa layanan memiliki dampak lintas Wilayah..  
Misalnya, Amazon S3 memiliki operasi API yang meluas di seluruh wilayah.  
Anda dapat meminta `s3:PutBucketReplication` di satu Wilayah (yang dipengaruhi oleh kunci kondisi `aws:RequestedRegion`, tetapi Wilayah lainnya dipengaruhi berdasarkan pengaturan konfigurasi replikasi.
Anda dapat memanggil `s3:CreateBucket` untuk membuat bucket di wilayah lain, dan menggunakan tombol `s3:LocationConstraint` kondisi untuk mengontrol wilayah yang berlaku.

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

------
#### [ JSON ]

****  

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

------

### aws:RequestTag/*tag-key*
<a name="condition-keys-requesttag"></a>

Gunakan kunci ini untuk membandingkan pasangan nilai kunci tanda yang diteruskan dalam permintaan dengan pasangan tanda yang Anda sebutkan dalam kebijakan. Misalnya, Anda dapat memeriksa apakah permintaan tersebut menyertakan kunci tanda `"Dept"` dan memiliki nilai `"Accounting"`. Untuk informasi selengkapnya, lihat [Mengontrol akses selama AWS permintaan](access_tags.md#access_tags_control-requests).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan saat pasangan nilai kunci tag diteruskan dalam permintaan. Ketika beberapa tanda diteruskan dalam permintaan, ada satu kunci konteks untuk setiap pasangan nilai kunci tanda.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

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

------
#### [ JSON ]

****  

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

------

### aws:TagKeys
<a name="condition-keys-tagkeys"></a>

Gunakan kunci ini untuk membandingkan kunci tanda dalam permintaan dengan kunci yang Anda sebutkan dalam kebijakan. Sebaiknya saat Anda menggunakan kebijakan untuk mengontrol akses menggunakan tag, gunakan tombol `aws:TagKeys` kondisi untuk menentukan kunci tag apa yang diizinkan. Untuk contoh kebijakan dan informasi selengkapnya, lihat [Mengontrol akses berdasarkan kunci tanda](access_tags.md#access_tags_control-tag-keys).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan jika operasi mendukung tag yang lewat dalam permintaan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

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

Karena Anda dapat memasukkan beberapa pasangan nilai kunci tanda dalam permintaan, konten permintaan dapat berupa permintaan [multinilai](reference_policies_condition-single-vs-multi-valued-context-keys.md). Dalam hal ini, Anda harus menggunakan operator kumpulan `ForAllValues` atau `ForAnyValue`. Untuk informasi selengkapnya, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

Beberapa layanan mendukung penandaan dengan operasi sumber daya, seperti membuat, mengubah, atau menghapus sumber daya. Untuk memungkinkan penandaan dan operasi sebagai satu panggilan, Anda harus membuat kebijakan yang mencakup tindakan penandaan dan tindakan pemodifikasian sumber daya. Kemudian, Anda dapat menggunakan kunci kondisi `aws:TagKeys` untuk menerapkan penggunaan kunci tanda tertentu dalam permintaan. Misalnya, untuk membatasi tag saat seseorang membuat snapshot Amazon EC2 Anda harus menyertakan `ec2:CreateSnapshot` tindakan pembuatan ***dan*** `ec2:CreateTags` menandai tindakan di dalam kebijakan. Untuk melihat kebijakan skenario yang digunakan ini`aws:TagKeys`, lihat [Membuat Snapshot dengan Tag](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-creating-snapshot-with-tags) di Panduan Pengguna *Amazon EC2*. 

### aws:SecureTransport
<a name="condition-keys-securetransport"></a>

Gunakan kunci ini untuk memeriksa apakah permintaan dikirim menggunakan TLS. Konteks permintaan mengembalikan `true` atau `false`. Dalam kebijakan, Anda dapat mengizinkan tindakan tertentu hanya jika permintaan dikirim menggunakan TLS.
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

**catatan**  
Saat Layanan AWS melakukan panggilan ke orang lain Layanan AWS atas nama Anda (service-to-service panggilan), konteks otorisasi khusus jaringan tertentu akan dihapus. Jika kebijakan Anda menggunakan kunci kondisi ini dengan `Deny` pernyataan, Layanan AWS prinsipal mungkin diblokir secara tidak sengaja. Layanan AWS Agar dapat bekerja dengan baik sambil mempertahankan persyaratan keamanan Anda, kecualikan prinsip layanan dari `Deny` pernyataan Anda dengan menambahkan kunci `aws:PrincipalIsAWSService` kondisi dengan nilai. `false` Contoh:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Kebijakan ini menolak akses ke operasi Amazon S3 ketika HTTPS tidak digunakan `aws:SecureTransport` (salah), tetapi hanya untuk prinsipal AWS non-layanan. Ini memastikan pembatasan bersyarat Anda berlaku untuk semua kepala sekolah kecuali kepala sekolah. Layanan AWS 

### aws:SourceAccount
<a name="condition-keys-sourceaccount"></a>

Gunakan kunci ini untuk membandingkan ID akun sumber daya yang membuat service-to-service permintaan dengan ID akun yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh kepala AWS layanan.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) atas nama sumber daya yang konfigurasi memicu service-to-service permintaan. Layanan panggilan meneruskan ID akun dari sumber daya asli ke layanan yang disebut.
**catatan**  
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.  
![\[aws: SourceAccount\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/sourceAccount.png)
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

------
#### [ JSON ]

****  

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

------

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

### aws:SourceArn
<a name="condition-keys-sourcearn"></a>

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

Kunci ini tidak bekerja dengan ARN dari prinsipal yang membuat permintaan. Sebaliknya, gunakan `aws:PrincipalArn`.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) atas nama sumber daya yang konfigurasi memicu service-to-service permintaan. Layanan panggilan melewati ARN dari sumber daya asli ke layanan yang disebut.
**catatan**  
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.  
![\[aws: SourceArn\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/sourceArn.png)
+ **Tipe data** — ARN

  AWS merekomendasikan agar Anda menggunakan operator [ARN alih-alih operator](reference_policies_elements_condition_operators.md#Conditions_ARN) [string saat membandingkan](reference_policies_elements_condition_operators.md#Conditions_String). ARNs
+ **Jenis nilai** - Bernilai tunggal

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

### aws:SourceOrgID
<a name="condition-keys-sourceorgid"></a>

Gunakan kunci ini untuk membandingkan [ID organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html) sumber daya yang membuat service-to-service permintaan dengan ID organisasi yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh prinsipal AWS layanan. Saat menambahkan dan menghapus akun ke organisasi AWS Organizations, kebijakan yang menyertakan `aws:SourceOrgID` kunci secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbarui kebijakan secara manual.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan meneruskan ID organisasi dari sumber daya asli ke layanan yang disebut.
**catatan**  
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.  
![\[aws: SourceOrg ID\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/sourceOrgID.png)
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

------
#### [ JSON ]

****  

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

------

### aws:SourceOrgPaths
<a name="condition-keys-sourceorgpaths"></a>

Gunakan kunci ini untuk membandingkan AWS Organizations jalur sumber daya yang membuat service-to-service permintaan dengan jalur organisasi yang Anda tentukan dalam kebijakan, tetapi hanya jika permintaan dibuat oleh kepala AWS layanan. AWS Organizations Path adalah representasi teks dari struktur suatu AWS Organizations entitas. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat [Memahami jalur AWS Organizations entitas](access_policies_last-accessed-view-data-orgs.md#access_policies_last-accessed-viewing-orgs-entity-path).
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan hanya ketika panggilan ke sumber daya Anda dilakukan langsung oleh [kepala AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) atas nama sumber daya yang dimiliki oleh akun yang merupakan anggota organisasi. Layanan panggilan melewati jalur organisasi sumber daya asli ke layanan yang disebut.
**catatan**  
Kunci ini menyediakan mekanisme yang seragam untuk menegakkan kontrol wakil lintas layanan yang membingungkan. Layanan AWS Namun, tidak semua integrasi layanan memerlukan penggunaan kunci kondisi global ini. Lihat dokumentasi yang Layanan AWS Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan untuk mengurangi risiko wakil lintas layanan yang membingungkan.  
![\[aws: SourceOrgPaths\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/sourceOrgPaths.png)
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String) (daftar)
+ **Jenis nilai** — Multivalued

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

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

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

`aws:SourceOrgPaths` adalah kunci kondisi multinilai. Kunci multivalued dapat memiliki beberapa nilai dalam konteks permintaan. Anda harus menggunakan `ForAnyValue` atau `ForAllValues` mengatur operator dengan [operator kondisi string](reference_policies_elements_condition_operators.md#Conditions_String) untuk kunci ini. Untuk informasi selengkapnya tentang kunci kondisi multinilai ini, lihat [Tetapkan operator untuk kunci konteks multivaluasi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).

### aws:UserAgent
<a name="condition-keys-useragent"></a>

Gunakan kunci ini untuk membandingkan aplikasi klien pemohon dan aplikasi yang Anda tentukan dalam kebijakan.
+ **Ketersediaan** – Kunci ini selalu disertakan dalam konteks permintaan.
+ **Tipe data** - [String](reference_policies_elements_condition_operators.md#Conditions_String)
+ **Jenis nilai** - Bernilai tunggal

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

### aws:IsMcpServiceAction
<a name="condition-keys-ismcpserviceaction"></a>

Gunakan kunci ini untuk memverifikasi bahwa tindakan yang diotorisasi adalah tindakan Layanan MCP. Kunci ini tidak mengacu pada tindakan yang diambil oleh layanan MCP ke AWS layanan lain.
+ **Ketersediaan** — Kunci ini disertakan dalam konteks permintaan dan disetel ke True hanya jika layanan MCP mengotorisasi tindakan layanan MCP.
+ **Tipe data** — [Boolean](reference_policies_elements_condition_operators.md#Conditions_Boolean)
+ **Jenis nilai** - Bernilai tunggal

## Kunci kondisi lintas layanan lainnya
<a name="condition-keys-other"></a>

AWS STS [mendukung [kunci kondisi federasi berbasis SAMP dan kunci kondisi](reference_policies_iam-condition-keys.md#condition-keys-saml) lintas layanan untuk federasi OIDC.](reference_policies_iam-condition-keys.md#condition-keys-wif) Kunci ini tersedia ketika pengguna yang difederasi menggunakan OIDC atau SAMP melakukan AWS operasi di layanan lain.

# Kunci konteks IAM dan AWS STS kondisi
<a name="reference_policies_iam-condition-keys"></a>

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: Condition](reference_policies_elements_condition.md).

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](reference_policies_actions-resources-contextkeys.html). 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#AvailableKeys-iamV2) di Panduan Pengguna Layanan *Penyimpanan Sederhana Amazon*.

**Topics**
+ [Kunci yang tersedia untuk IAM](#available-keys-for-iam)
+ [Kunci yang tersedia untuk AWS federasi OIDC](#condition-keys-wif)
+ [Kunci yang tersedia untuk federasi berbasis SAMP AWS STS](#condition-keys-saml)
+ [Kunci konteks federasi berbasis SAML AWS STS lintas layanan](#cross-condition-keys-saml)
+ [Kunci yang tersedia untuk AWS STS](#condition-keys-sts)

## Kunci yang tersedia untuk IAM
<a name="available-keys-for-iam"></a>

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

**saya: AssociatedResourceArn**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_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](id_roles_use_passrole.md) di dalam kebijakan. Kondisi ini tidak dapat digunakan untuk membatasi tindakan lainnya.   
Ketika menggunakan `iam:AssociatedResourceArn` kondisi dalam kebijakan untuk membatasi [PassRole](id_roles_use_passrole.md)tindakan, pertimbangan khusus berlaku jika kebijakan dimaksudkan untuk menentukan akses untuk tindakan tersebut [AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html). Dalam hal ini, Anda tidak dapat menentukan Region atau ID instans di ARN instance EC2. Nilai ARN harus. `arn: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 melewati 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 instance 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/*"
            ]
        }
    }
}
```
AWS layanan yang mendukung [iam: PassedToService](#ck_PassedToService) juga mendukung kunci kondisi ini.

**iam: Nama AWSService**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Menentukan AWS layanan yang peran ini dilampirkan.  
Kunci kondisi ini didukung oleh operasi [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)API.  
Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Pilih **Ya** dengan tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.
*Dalam contoh ini, Anda mengizinkan entitas membuat peran terkait layanan menggunakan operasi [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)API jika nama layanannya 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:Sertifikasi FIDO**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Memeriksa tingkat sertifikasi FIDO perangkat MFA pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari [FIDO Alliance Metadata Service](https://fidoalliance.org/metadata/) (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.    
****  

```
{
      "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: Sertifikasi FIDO-FIPS-140-2-**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Memeriksa perangkat MFA FIPS-140-2 tingkat sertifikasi validasi pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari [FIDO Alliance Metadata Service](https://fidoalliance.org/metadata/) (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.    
****  

```
{
      "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: Sertifikasi FIDO-FIPS-140-3-**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Memeriksa perangkat MFA FIPS-140-3 tingkat sertifikasi validasi pada saat pendaftaran kunci keamanan FIDO. Sertifikasi perangkat diambil dari [FIDO Alliance Metadata Service](https://fidoalliance.org/metadata/) (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.    
****  

```
{
      "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: OrganizationsPolicyId**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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](reference_policies_examples_iam_service-accessed-data-orgs.md).

**saya: PassedToService**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Menentukan prinsipal layanan untuk peran yang dapat diteruskan. Kunci kondisi ini hanya berlaku untuk tindakan [PassRole](id_roles_use_passrole.md) 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](id_roles.md#iam-term-service-role) 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 menyebutkan `cloudwatch.amazonaws.com` dalam elemen `Principal`. Untuk melihat kebijakan yang memungkinkan pengguna meneruskan peran CloudWatch, lihat[IAM: Lulus peran IAM ke layanan tertentu AWS](reference_policies_examples_iam-passrole-service.md).  
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.  
Beberapa layanan tidak mendukung kunci kondisi ini.

**saya: PermissionsBoundary**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Memastikan bahwa kebijakan yang ditentukan diberlakukan sebagai batas izin pada sumber daya utama IAM. Untuk informasi selengkapnya, lihat [Batas izin untuk entitas IAM](access_policies_boundaries.md)

**iam:PolicyARN**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Memeriksa Amazon Resource Name (ARN) dari kebijakan terkelola dengan permintaan yang melibatkan kebijakan terkelola. Untuk informasi selengkapnya, lihat [Mengendalikan akses ke kebijakan](access_controlling.md#access_controlling-policies). 

**saya: RegisterSecurityKey**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Memeriksa status pemberdayaan perangkat MFA saat ini.  
Nilai yang mungkin dari `Create` atau`Activate`.  
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:/ResourceTag*key-name***  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Memeriksa apakah tanda yang dilampirkan ke sumber daya identitas (pengguna atau peran) cocok dengan nama dan nilai kunci yang ditentukan.  
IAM dan AWS STS mendukung kunci kondisi `iam:ResourceTag` IAM dan kunci kondisi `aws:ResourceTag` global.
Anda dapat menambahkan atribut kustom ke sumber daya IAM dalam bentuk pasangan kunci-nilai. Untuk informasi selengkapnya tentang tag untuk sumber daya IAM, lihat[Tag untuk AWS Identity and Access Management sumber daya](id_tags.md). Anda dapat menggunakan `ResourceTag` untuk [mengontrol akses ke](access_tags.md#access_tags_control-resources) 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 contoh *italicized placeholder text* dalam dengan informasi Anda sendiri. Lalu, ikuti petunjuk di [buat kebijakan](access_policies_create.md) atau [edit kebijakan](access_policies_manage-edit.md).    
****  

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

**saya: ServiceSpecificCredentialAgeDays**  
Bekerja dengan [operator numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Kunci kondisi ini membatasi pembuatan kredensil khusus layanan berdasarkan setelan kedaluwarsanya. Ini memungkinkan Anda untuk mengontrol usia maksimum, dalam beberapa hari, kredensi khusus layanan yang dapat dibuat.  
Rentang yang valid untuk hari adalah 1 hingga 36600 (minimal 1 hari, maksimum 36600 hari).  
Kunci kondisi ini didukung oleh operasi [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)API.  
Dalam contoh ini, Anda mengizinkan pengguna untuk membuat kredensil khusus layanan untuk layanan Amazon Bedrock hanya jika mereka kedaluwarsa dalam 90 hari.    
****  

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

**saya: ServiceSpecificCredentialServiceName**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Menentukan AWS layanan mana yang dapat digunakan saat mengelola kredensil khusus layanan. Kunci kondisi ini memungkinkan Anda untuk membatasi AWS layanan mana yang diizinkan saat mengelola kredensi khusus layanan.  
Kunci kondisi ini didukung oleh operasi API berikut:  
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html)
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html)
Layanan berikut didukung untuk kredensi khusus layanan dengan pemformatan nilai persisnya:  
+ `bedrock.amazonaws.com`
+ `cassandra.amazonaws.com`
+ `codecommit.amazonaws.com`
Dalam contoh ini, Anda mengizinkan pengguna untuk membuat kredensyal khusus layanan menggunakan operasi [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html)API hanya untuk layanan Amazon Bedrock.    
****  

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

**saya: DelegationDuration**  
Bekerja dengan [operator numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
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 hitungan detik dan menentukan berapa lama kredensi sementara tetap berlaku setelah pelanggan merilis token pertukaran. Ini membantu penyedia produk menegakkan kebijakan internal seputar batas durasi akses berdasarkan kasus penggunaannya.  
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"
                }
            }
        }
    ]
}
```

**saya: NotificationChannel**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_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 API. CreateDelegationRequest Penyedia produk harus menentukan topik SNS untuk menerima pemberitahuan perubahan status dan token pertukaran. Ini memastikan bahwa pemberitahuan 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 notifikasi.  

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

**saya: TemplateArn**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Memfilter akses berdasarkan templat 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 untuk 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_*"
                }
            }
        }
    ]
}
```

**saya: DelegationRequestOwner**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Memfilter akses berdasarkan AWS identitas atau prinsipal yang memiliki permintaan delegasi.  
Pelanggan dapat menggunakan tombol kondisi ini untuk mengontrol siapa yang dapat melakukan tindakan pada permintaan delegasi berdasarkan kepemilikan. Pemilik permintaan delegasi adalah AWS identitas atau prinsipal dalam 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
<a name="condition-keys-wif"></a>

Anda dapat menggunakan federasi OIDC untuk memberikan kredensyal keamanan sementara kepada pengguna yang telah diautentikasi melalui penyedia identitas yang kompatibel dengan OpenID Connect (IDP) ke penyedia identitas OpenID Connect (OIDC) IAM di akun Anda. 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](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-account-tokens) yang diberikan kepada beban kerja Amazon Elastic Kubernetes Service.

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 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 kondisi OIDC hanya dapat digunakan dalam kebijakan kepercayaan peran untuk otentikasi awal [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

Pilih iDP Anda untuk melihat bagaimana klaim dari peta idP Anda 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 cara mereka memetakan untuk AWS STS mengkondisikan kunci konteks. 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 **IDP JWT**. 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 dalam token ID OIDC JWT mereka.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| amr | amr | Ya | 
| aud | azp Jika tidak ada nilai yang ditetapkan`azp`, kunci `aud` kondisi akan 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, lihat. [Mengkonfigurasi peran untuk penyedia identitas GitHub OIDC](id_roles_create_for-idp_oidc.md#idp_oidc_Create_GitHub) Untuk informasi selengkapnya tentang kolom `aud` dan `azp` Google, lihat Panduan [Google Identity Platform OpenID Connect](https://developers.google.com/identity/protocols/OpenIDConnect). 

**amr**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String). Kunci ini memiliki banyak nilai, artinya jika Anda mengujinya dalam suatu kebijakan yang menggunakan [operator kumpulan kondisi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh:**   
+ `accounts.google.com:aud`
+ `token.actions.githubusercontent.com:aud`
Gunakan tombol `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 OAuth 2.0 klien IDs Google aplikasi Anda, ketika `azp` bidang tidak disetel. Ketika `azp` bidang diatur, `aud` bidang cocok dengan kunci `accounts.google.com:oaud` kondisi.
+ `azp` jika kolom `azp` ditetapkan. Ini dapat terjadi untuk aplikasi hybrid di mana aplikasi web dan aplikasi Android memiliki ID klien Google OAuth 2.0 yang berbeda tetapi berbagi APIs proyek 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.   
`azp`Kolom 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`.    
****  

```
{
    "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`.    
****  

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

**email**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 pengenal utama untuk memverifikasi catatan pengguna Anda.

**oaud**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh**: `accounts.google.com:oaud`  
Kunci ini menentukan audience (`aud`) lain yang dimaksudkan untuk token ID ini. Itu harus menjadi salah satu klien OAuth 2.0 IDs dari aplikasi Anda.

**sub**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh:**  
+ `accounts.google.com:sub`
+ token.actions.githubusercontent.com:sub
Gunakan kunci ini untuk memverifikasi bahwa subjek cocok dengan 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 GitHib cabang bernama`demo`.    
****  

```
{
  "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 bagaimana Amazon Cognito memetakan klaim OIDC untuk AWS STS mengkondisikan 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 **IDP JWT**.

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

Untuk informasi selengkapnya tentang pemetaan klaim kumpulan identitas, lihat [Pemetaan penyedia default](https://docs.aws.amazon.com/cognito/latest/developerguide/provider-mappings.html) di Panduan Pengembang *Amazon* Cognito. Untuk informasi selengkapnya tentang pemetaan klaim kumpulan pengguna, lihat [Menggunakan token ID](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html) 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](reference_policies_elements_condition_operators.md#Conditions_String). Kunci ini memiliki banyak nilai, artinya jika Anda mengujinya dalam suatu kebijakan yang menggunakan [operator kumpulan kondisi](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys).  
**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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `cognito-identity.amazonaws.com:aud`  
Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito memberikan nilai yang sama dalam klaim token akses. `client_id`

**oaud**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `cognito-identity.amazonaws.com:oaud`  
Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito memberikan nilai yang sama dalam klaim token akses. `client_id`

**sub**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `cognito-identity.amazonaws.com:sub`  
Pengenal 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 bagaimana Login with Amazon memetakan klaim OIDC untuk AWS STS mengkondisikan 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
|  app\$1id  |  ID Aplikasi  |  Ya  | 
|  sub  |  ID Pengguna  |  Ya  | 
|  user\$1id  |  ID Pengguna  |  Ya  | 

**app\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `www.amazon.com:sub`  
Kunci ini memverifikasi bahwa ID pengguna cocok dengan yang Anda tentukan dalam kebijakan. Anda dapat menggunakan kunci `sub ` dengan kunci `aud` untuk penyedia identitas yang sama.

**user\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 AWS STS mengkondisikan 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| app\$1id | ID Aplikasi | Ya | 
| id | id | Ya | 

**app\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `graph.facebook.com:app_id`  
Kunci ini memverifikasi bahwa konteks audiens cocok dengan `aud` bidang yang digunakan oleh penyedia identitas lain.

**id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 GitHub Actions memetakan klaim OIDC untuk AWS STS mengkondisikan kunci konteks. 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| aktor | aktor | Tidak | 
| actor\$1id | actor\$1id | Tidak | 
| job\$1workflow\$1ref | job\$1workflow\$1ref | Tidak | 
| repositori | repositori | Tidak | 
| repository\$1id | repository\$1id | Tidak | 
| alur kerja | alur kerja | Tidak | 
| ref | ref | Tidak | 
| lingkungan | lingkungan | Tidak | 
| enterprise\$1id | enterprise\$1id | Tidak | 

**aktor**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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.

**actor\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `token.actions.githubusercontent.com:actor_id`  
Kunci ini memverifikasi ID akun pribadi yang memulai proses alur kerja. Aktor IDs dihasilkan oleh GitHub dan tidak dapat diubah.

**job\$1workflow\$1ref**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `token.actions.githubusercontent.com:repository`  
Kunci ini mengidentifikasi repositori dari mana alur kerja berjalan. Gunakan ini untuk membatasi akses ke GitHub repositori tertentu.

**repository\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `token.actions.githubusercontent.com:repository_id`  
Kunci ini memverifikasi ID repositori dari tempat alur kerja berjalan. Repositori IDs tidak dapat diubah dan tidak berubah meskipun repositori diganti namanya.

**alur kerja**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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.

**ref**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `token.actions.githubusercontent.com:ref`  
Kunci ini mengidentifikasi git ref (cabang atau tag) yang memicu alur kerja berjalan. Gunakan ini untuk membatasi akses berdasarkan cabang tertentu, seperti hanya mengizinkan `main` atau `production` cabang.

**lingkungan**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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.  
Jika klaim lingkungan disertakan dalam kebijakan kepercayaan Anda, lingkungan harus dikonfigurasi dan disediakan dalam GitHub alur kerja.

**enterprise\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 GitHub organisasi Enterprise Anda.

Contoh kebijakan kepercayaan berikut menggunakan klaim khusus 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 cara Google memetakan klaim OIDC untuk AWS STS mengkondisikan kunci konteks. 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| google/organisasi\$1number | google:organisasi\$1nomor | Tidak | 

**google/organisasi\$1number**  
Bekerja dengan [operator numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
**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 untuk mengkondisikan kunci konteks di. AWS STS 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| oidc.circleci.com/project-id | oidc.circleci.com/project-id | Tidak | 

**oidc.circleci.com/project-id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `circleci-issuer-url:oidc.circleci.com/project-id`  
Kunci ini mengidentifikasi proyek CircleCI di mana 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 bagaimana Oracle Cloud Infrastructure memetakan klaim OIDC untuk AWS STS mengkondisikan kunci konteks. 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 **IDP JWT**.


| AWS STS kunci kondisi | Klaim IDP JWT | Tersedia dalam sesi | 
| --- | --- | --- | 
| rpst\$1id | rpst\$1id | Tidak | 

**rpst\$1id**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
**Contoh** - `oci-issuer-url:rpst_id`  
Kunci ini secara unik mengidentifikasi prinsip sumber daya di OCI. Gunakan ini untuk membatasi akses ke prinsip sumber daya OCI tertentu. Rpst\$1id (Resource Principal Session Token ID) menyediakan pengidentifikasi 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"
        }
      }
    }
  ]
}
```

------

### Informasi lebih lanjut tentang federasi OIDC
<a name="condition-keys-wif-more-info"></a>


+ [Panduan Pengguna Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)
+ [Federasi OIDC](id_roles_providers_oidc.md)

## Kunci yang tersedia untuk federasi berbasis SAMP AWS STS
<a name="condition-keys-saml"></a>

Jika Anda bekerja dengan [federasi berbasis SAMP](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html) menggunakan AWS Security Token Service (AWS STS), Anda dapat menyertakan kunci kondisi tambahan dalam kebijakan. 

### Kebijakan kepercayaan peran SAML
<a name="condition-keys-saml_trust-policy"></a>

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](reference_policies_elements_condition_operators.md#Conditions_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](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `commonName`.

**saml:cn[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:doc**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini mewakili prinsipal yang digunakan untuk menerima peran tersebut. Formatnya adalah*account-ID*/*provider-friendly-name*, seperti`123456789012/SAMLProviderName`. Nilai *account-ID* merujuk pada akun yang memiliki [penyedia SAML](id_roles_providers_create_saml.md). 

**saml:edupersonaffiliation[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonassurance[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonentitlement[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonnickname[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonorgdn**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonorgunitdn[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonprimaryaffiliation**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonprimaryorgunitdn**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonprincipalname**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersonscopedaffiliation[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:edupersontargetedid[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduPerson`.

**saml:eduorghomepageuri[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:eduorgidentityauthnpolicyuri[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:eduorglegalname[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:eduorgsuperioruri[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:eduorgwhitepagesuri[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `eduOrg`.

**saml:givenName[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `givenName`.

**sml:iss**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Penerbit yang diwakili oleh URN. 

**saml:mail[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `mail`.

**saml:name[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `name`.

**saml:namequalifier**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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`)

1. ID akun `AWS`

1.  Nama yang dikenal (bagian terakhir ARN) penyedia SAML di IAM 
Gabungan ID akun dan nama ramah penyedia SAMP tersedia untuk kebijakan IAM sebagai kuncinya. `saml:doc` Untuk informasi selengkapnya, lihat [Mengidentifikasi pengguna secara unik dalam federasi berbasis SAML](id_roles_providers_saml.md#CreatingSAML-userid).

**saml:organizationStatus[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `organizationStatus`.

**saml:primaryGroupSID[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `primaryGroupSID`.

**saml:sub**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna individu dalam suatu organisasi (misalnya, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**saml:sub\$1type**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md).

**saml:surname[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `surnameuid`.

**saml:uid[]**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `uid`.

**saml:x500 [] UniqueIdentifier**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah atribut `x500UniqueIdentifier`.

Untuk informasi umum tentang atribut `eduPerson` dan `eduOrg`, lihat [situs web Wiki REFEDS](https://wiki.refeds.org/display/STAN/eduPerson). Untuk daftar atribut `eduPerson`, lihat [Spesifikasi Kelas Objek eduPerson (201602)](https://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201602.html). 

Kunci kondisi dengan tipe berupa daftar dapat mencakup beberapa nilai. Untuk membuat kondisi dalam kebijakan untuk nilai-nilai daftar, Anda dapat menggunakan [operator kumpulan](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) (`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 federasi berbasis SAML AWS STS lintas layanan
<a name="cross-condition-keys-saml"></a>

Beberapa kunci kondisi federasi berbasis SAMP dapat digunakan dalam permintaan berikutnya untuk mengotorisasi AWS operasi di layanan dan panggilan lain. `AssumeRole` 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 berbasis SAMP 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html#CreatingSAML-userid). 

Pilih tombol kondisi untuk melihat deskripsi.
+ [saml:namequalifier](#ck_saml-namequalifier)
+ [saml:sub](#ck_saml-sub)
+ [saml:sub_type](#ck_saml-subtype)

**catatan**  
Tidak ada kunci kondisi federasi berbasis SAML lainnya yang tersedia untuk digunakan setelah respons otentikasi penyedia identitas eksternal (iDP) awal.

## Kunci yang tersedia untuk AWS STS
<a name="condition-keys-sts"></a>

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](reference_policies_elements_condition_operators.md#Conditions_String).  
Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna individu dalam suatu organisasi (misalnya, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 

**sts: AWSService Nama**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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](id_credentials_bearer.md).   
Anda dapat menggunakan kunci kondisi ini untuk mengizinkan prinsipal mendapatkan token pembawa untuk digunakan dengan layanan tertentu.

**sts: DurationSeconds**  
Bekerja dengan [operator numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric).  
Gunakan kunci ini untuk menentukan durasi (dalam detik) yang dapat digunakan prinsipal saat mendapatkan token AWS AWS STS pembawa atau Token Web JSON dari API. [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)  
**Ketersediaan** — Kunci ini hadir dalam permintaan yang mendapatkan token pembawa atau Token Web JSON dari API. GetWebIdentityToken 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 peran asumsi.  
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](id_credentials_bearer.md). 

**sts: IdentityTokenAudience**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_String).  
Gunakan kunci ini untuk menentukan audiens yang prinsipal IAM dapat meminta JSON Web Tokens (JWTs) menggunakan API. [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Jika kunci kondisi ini ada dalam kebijakan IAM, prinsipal 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 JSON Web Tokens (JWTs) 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).  
Contoh kebijakan berikut memungkinkan prinsipal untuk 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](reference_policies_elements_condition_operators.md#Conditions_String).  
Gunakan kunci ini untuk menentukan algoritma kriptografi yang AWS AWS STS digunakan untuk menandatangani JSON Web Tokens (JWTs) yang dihasilkan oleh API. [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Saat Anda menggunakan kunci kondisi ini dalam kebijakan, tentukan ES384 (ECDSA dengan kurva P-384 dan SHA-384) atau (RSA dengan SHA-256). RS256   
**Ketersediaan** — Kunci ini hadir dalam permintaan ke GetWebIdentityToken API yang digunakan untuk mendapatkan JSON Web Tokens (JWTs) untuk otentikasi dengan layanan eksternal.  
Anda dapat menggunakan kunci kondisi ini untuk menegakkan bahwa kepala sekolah IAM meminta token menggunakan algoritme 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.  
Contoh kebijakan 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](reference_policies_elements_condition_operators.md#Conditions_String).  
Gunakan kunci ini untuk mengharuskan kepala sekolah memberikan pengenal khusus saat mengambil peran IAM.  
**Ketersediaan** — Kunci ini hadir dalam permintaan ketika prinsipal memberikan ID eksternal sambil mengambil peran menggunakan AWS API AWS CLI atau.   
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](id_roles_common-scenarios_third-party.md).  
Nilai `ExternalId` harus memiliki minimal 2 karakter dan maksimal 1.224 karakter. Nilai harus berupa alfanumerik tanpa spasi. Alfanumerik dapat mencakup simbol berikut: plus (\$1), sama (=), koma (,), titik (.), di (@), titik dua (:), garis miring (/), dan tanda hubung (-).

**sts:RequestContext/*kunci-konteks***  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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 API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)  
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 selengkapnya tentang kunci konteks Pusat Identitas IAM yang didukung yang dapat digunakan dengan kunci ini, lihat [tombol AWS STS kondisi untuk Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html) di *AWS IAM Identity Center Panduan 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 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 IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Gunakan kunci ini untuk membandingkan ARN penyedia konteks 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 API. AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)  
Contoh kondisi berikut memeriksa apakah penyedia konteks ARN yang diteruskan dalam permintaan cocok dengan ARN yang ditentukan dalam kondisi kebijakan kepercayaan peran. Kami menyarankan Anda menambahkan cek nol `ForAllValues` untuk mencegah kunci konteks atau kunci konteks yang hilang dengan nilai kosong dari evaluasi ke true. Lihat perinciannya di [Operator ketentuan memeriksa keberadaan kunci kondisi](reference_policies_elements_condition_operators.md#Conditions_Null).    
****  

```
{
  "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: RoleSessionName**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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, perintah CLI peran apa pun Konsol Manajemen AWS, 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](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) 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](reference_policies_variables.md) 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.  
Anda dapat menggunakan kunci kondisi bernilai tunggal apa pun sebagai [variabel](reference_policies_variables.md). 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": "prefix-${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 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](id_roles_common-scenarios_aws-accounts.md), 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, 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](reference_policies_elements_condition_operators.md#Conditions_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 CLI AWS STS peran apa pun, atau operasi API. AWS STS `AssumeRole`  
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 dikirimkan ke. AWS Nilai atribut identitas sumber mengidentifikasi pengguna atau aplikasi yang mengambil peran.  
Setelah pengguna mengambil peran, aktivitas muncul di [log AWS CloudTrail](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) dengan nilai identitas sumber yang ditetapkan. Hal ini memudahkan administrator untuk menentukan siapa atau apa yang melakukan tindakan dengan peran di dalamnya AWS. Anda harus memberikan izin untuk tindakan `sts:SetSourceIdentity` untuk mengizinkan identitas menetapkan identitas sumber.   
Tidak seperti [`sts:RoleSessionName`](#ck_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](id_roles.md#iam-term-role-chaining).   
Anda dapat menggunakan kunci kondisi [`aws:SourceIdentity`](reference_policies_condition-keys.md#condition-keys-sourceidentity)global untuk mengontrol akses lebih lanjut ke AWS sumber daya berdasarkan nilai identitas sumber dalam permintaan berikutnya.   
Kebijakan kepercayaan peran berikut memungkinkan pengguna IAM `AdminUser` untuk mengambil peran dalam akun`111122223333`. Ini juga memberikan izin ke `AdminUser` untuk mengatur identitas sumber, selama identitas sumber yang ditetapkan adalah `DiegoRamirez`.    
****  

```
{
    "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](id_credentials_temp_control-access_monitor.md).

**sts: TaskPolicyArn**  
Bekerja IT [Operator ARN ](reference_policies_elements_condition_operators.md#Conditions_ARN).  
Gunakan kunci ini untuk membandingkan ARN kebijakan dalam AssumeRoot permintaan [sts:](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) dengan ARN kebijakan yang ditentukan dalam kebijakan.  
**Ketersediaan** — Kunci ini ada dalam permintaan saat Anda membuat permintaan menggunakan [sts: AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html).  
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 kredensyal root. Untuk informasi selengkapnya, lihat [Lakukan tugas istimewa di akun AWS Organizations anggota](id_root-user-privileged-task.md).

**sts: TransitiveTagKeys**  
Bekerja dengan [operator string](reference_policies_elements_condition_operators.md#Conditions_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](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) mencakup kunci konteks `aws:PrincipalTag`. Kunci ini mencakup daftar [tanda sesi](id_session-tags.md), [tanda sesi transitif](id_session-tags.md#id_session-tags_role-chaining), 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](id_roles.md#iam-term-role-chaining).   
Anda dapat menggunakan kunci kondisi ini dalam kebijakan untuk mewajibkan pengaturan tanda sesi tertentu sebagai transitif saat mengambil peran atau menggabungkan pengguna.

# Tindakan, sumber daya, dan kunci kondisi untuk AWS layanan
<a name="reference_policies_actions-resources-contextkeys"></a>

Setiap AWS layanan dapat menentukan tindakan, sumber daya, dan kunci konteks kondisi untuk digunakan dalam kebijakan IAM. Untuk daftar AWS layanan dan tindakan, sumber daya, dan kunci konteks kondisinya, lihat [Tindakan, sumber daya, dan kunci kondisi](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) di *Referensi Otorisasi Layanan*.