

**Memperkenalkan pengalaman konsol baru untuk AWS WAF**

Anda sekarang dapat menggunakan pengalaman yang diperbarui untuk mengakses AWS WAF fungsionalitas di mana saja di konsol. Untuk detail selengkapnya, lihat [Bekerja dengan konsol](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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

# Bagaimana AWS WAF bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Bagian ini menjelaskan cara menggunakan fitur IAM dengan AWS WAF.

**catatan**  
Memperkenalkan tindakan baru dalam kebijakan IAM yang memberi Anda kontrol lebih terperinci saat menjalankan operasi terkait Asosiasi ACL web untuk Application Load Balancer dan. AWS AppSync Lihat [Tindakan yang memerlukan pengaturan izin tambahan](#security_iam_action-additions).

Sebelum Anda menggunakan IAM untuk mengelola akses AWS WAF, pelajari fitur IAM yang tersedia untuk digunakan. AWS WAF






**Fitur IAM yang dapat Anda gunakan AWS WAF**  

| Fitur IAM | AWS WAF dukungan | 
| --- | --- | 
| [Kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies) |  Ya | 
| [Kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies) |  Ya | 
| [Tindakan kebijakan](#security_iam_service-with-iam-id-based-policies-actions) |  Ya | 
| [Sumber daya kebijakan](#security_iam_service-with-iam-id-based-policies-resources) |  Ya | 
| [kunci-kunci persyaratan kebijakan (spesifik layanan)](#security_iam_service-with-iam-id-based-policies-conditionkeys) |  Ya | 
| [ACLs](#security_iam_service-with-iam-acls) |  Tidak  | 
| [ABAC (tanda dalam kebijakan)](#security_iam_service-with-iam-tags) |  Parsial | 
| [Kredensial sementara](#security_iam_service-with-iam-roles-tempcreds) |  Ya | 
| [Sesi akses teruskan (FAS)](#security_iam_service-with-iam-principal-permissions) |  Ya | 
| [Peran layanan](#security_iam_service-with-iam-roles-service) |  Ya | 
| [Peran terkait layanan](#security_iam_service-with-iam-roles-service-linked) |  Ya | 

Untuk mendapatkan tampilan tingkat tinggi tentang cara AWS WAF dan AWS layanan lain bekerja dengan sebagian besar fitur IAM, lihat [AWS layanan yang bekerja dengan IAM di Panduan Pengguna *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

## Kebijakan berbasis identitas untuk AWS WAF
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Mendukung kebijakan berbasis identitas**: Ya

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke sebuah identitas, seperti pengguna IAM, grup pengguna IAM, atau peran IAM. Kebijakan ini mengontrol jenis tindakan yang dapat dilakukan oleh pengguna dan peran, di sumber daya mana, dan berdasarkan kondisi seperti apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan terkelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan secara spesifik apakah tindakan dan sumber daya diizinkan atau ditolak, serta kondisi yang menjadi dasar dikabulkan atau ditolaknya tindakan tersebut. Untuk mempelajari semua elemen yang dapat Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

Untuk melihat contoh kebijakan AWS WAF berbasis identitas, lihat. [Contoh kebijakan berbasis identitas untuk AWS WAF](security_iam_id-based-policy-examples.md)

## Kebijakan berbasis sumber daya dalam AWS WAF
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Mendukung kebijakan berbasis sumber daya**: Ya

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contoh kebijakan berbasis sumber daya adalah *kebijakan kepercayaan peran* IAM dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya tempat kebijakan dilampirkan, kebijakan menentukan tindakan apa yang dapat dilakukan oleh principal tertentu pada sumber daya tersebut dan dalam kondisi apa. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau. Layanan AWS

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan secara spesifik seluruh akun atau entitas IAM di akun lain sebagai principal dalam kebijakan berbasis sumber daya. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

AWS WAF menggunakan kebijakan berbasis sumber daya untuk mendukung pembagian grup aturan di seluruh akun. Anda membagikan grup aturan yang Anda miliki dengan AWS akun lain dengan menyediakan setelan kebijakan berbasis sumber daya ke panggilan AWS WAF API `PutPermissionPolicy` atau panggilan CLI atau SDK yang setara. Untuk informasi tambahan, termasuk contoh dan tautan ke dokumentasi untuk bahasa lain yang tersedia, lihat [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)di Referensi AWS WAF API. Fungsionalitas ini tidak tersedia melalui cara lain, seperti konsol atau CloudFormation. 

## Tindakan kebijakan untuk AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Mendukung tindakan kebijakan:** Ya

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Sertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.



Untuk melihat daftar AWS WAF tindakan dan izin untuk masing-masing tindakan, lihat [Tindakan yang ditentukan oleh AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) di Referensi *Otorisasi Layanan*.

Tindakan kebijakan AWS WAF menggunakan awalan berikut sebelum tindakan:

```
wafv2
```

Untuk menetapkan secara spesifik beberapa tindakan dalam satu pernyataan, pisahkan tindakan tersebut dengan koma.

```
"Action": [
      "wafv2:{{action1}}",
      "wafv2:{{action2}}"
         ]
```



Anda juga dapat menentukan beberapa tindakan menggunakan wildcard (\*). Misalnya, untuk menentukan semua tindakan AWS WAF yang dimulai dengan`List`, sertakan tindakan berikut:

```
"Action": "wafv2:List*"
```

Untuk melihat contoh kebijakan AWS WAF berbasis identitas, lihat. [Contoh kebijakan berbasis identitas untuk AWS WAF](security_iam_id-based-policy-examples.md)

### Tindakan yang memerlukan pengaturan izin tambahan
<a name="security_iam_action-additions"></a>

Beberapa tindakan memerlukan izin yang tidak dapat dijelaskan sepenuhnya dalam [Tindakan yang ditentukan oleh AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) di Referensi *Otorisasi Layanan*. Bagian ini memberikan informasi izin tambahan.

**Topics**
+ [Izin untuk `AssociateWebACL`](#security_iam_action-AssociateWebACL)
+ [Izin untuk `DisassociateWebACL`](#security_iam_action-DisassociateWebACL)
+ [Izin untuk `GetWebACLForResource`](#security_iam_action-GetWebACLForResource)
+ [Izin untuk `ListResourcesForWebACL`](#security_iam_action-ListResourcesForWebACL)

#### Izin untuk `AssociateWebACL`
<a name="security_iam_action-AssociateWebACL"></a>

Bagian ini mencantumkan izin yang diperlukan untuk mengaitkan paket perlindungan (web ACL) ke sumber daya menggunakan tindakan. AWS WAF `AssociateWebACL` 

Untuk CloudFront distribusi Amazon, alih-alih tindakan ini, gunakan CloudFront tindakan`UpdateDistribution`. Untuk selengkapnya, lihat [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)di *Referensi Amazon CloudFront API*. 

**API REST Amazon API Gateway**  
Memerlukan izin untuk memanggil API Gateway `SetWebACL` pada jenis sumber daya REST API dan memanggil AWS WAF `AssociateWebACL` paket perlindungan (web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Penyeimbang Beban Aplikasi**  
 **Pengaturan Izin Lama**

Memerlukan izin untuk memanggil `elasticloadbalancing:SetWebACL` tindakan pada jenis sumber daya Application Load Balancer dan memanggil AWS WAF `AssociateWebACL` paket perlindungan (web ACL). 

```
{
                  "Sid": "AssociateWebACL1",
                  "Effect": "Allow",
                  "Action": [
                     "wafv2:AssociateWebACL"
                  ],
                  "Resource": [
                     "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
                  ]
               },
               {
                  "Sid": "AssociateWebACL2",
                  "Effect": "Allow",
                  "Action": [
                     "elasticloadbalancing:SetWebACL"
                  ],
                  "Resource": [
                     "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
                  ]
               }
```

 **Pengaturan Izin Baru**

 Memerlukan izin untuk memanggil `elasticloadbalancing:CreateWebACLAssociation` tindakan pada jenis sumber daya Application Load Balancer dan memanggil AWS WAF `AssociateWebACL` paket perlindungan (web ACL).

```
{
   "Sid": "AssociateWebACL1",
   "Effect": "Allow",
   "Action": [
      "wafv2:AssociateWebACL"
   ],
   "Resource": [
      "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
   ]
},
{
   "Sid": "AssociateWebACL2",
   "Effect": "Allow",
   "Action": [
      "elasticloadbalancing:CreateWebACLAssociation"
   ],
   "Resource": [
         "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
   ]
}
```

**AWS AppSync GraphQL API**  
 **Pengaturan Izin Lama**

Memerlukan izin untuk memanggil AWS AppSync `SetWebACL` tipe sumber daya API GraphQL dan AWS WAF `AssociateWebACL` memanggil paket perlindungan (web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin untuk memanggil `appsync:AssociateWebACL` tindakan pada tipe sumber daya GraphQL API dan AWS WAF `AssociateWebACL` memanggil paket perlindungan (web ACL).

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Kumpulan pengguna Amazon Cognito**  
Memerlukan izin untuk memanggil `AssociateWebACL` tindakan Amazon Cognito pada jenis sumber daya kumpulan pengguna dan memanggil AWS WAF `AssociateWebACL` paket perlindungan (web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner layanan**  
Memerlukan izin untuk memanggil `AssociateWebACL` tindakan App Runner pada jenis sumber daya layanan App Runner dan memanggil AWS WAF `AssociateWebACL` ACL web. 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:AssociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instans Akses Terverifikasi**  
Memerlukan izin untuk memanggil `ec2:AssociateVerifiedAccessInstanceWebAcl` tindakan pada jenis sumber daya instans Akses Terverifikasi dan memanggil AWS WAF `AssociateWebACL` ACL web. 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:AssociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Izin untuk `DisassociateWebACL`
<a name="security_iam_action-DisassociateWebACL"></a>

Bagian ini mencantumkan izin yang diperlukan untuk memisahkan paket perlindungan (web ACL) dari sumber daya menggunakan tindakan. AWS WAF `DisassociateWebACL` 

Untuk CloudFront distribusi Amazon, alih-alih tindakan ini, gunakan CloudFront tindakan `UpdateDistribution` dengan ID paket perlindungan kosong (web ACL). Untuk selengkapnya, lihat [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)di *Referensi Amazon CloudFront API*. 

**API REST Amazon API Gateway**  
Memerlukan izin untuk memanggil API Gateway `SetWebACL` pada jenis sumber daya REST API. Tidak memerlukan izin untuk menelepon AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Penyeimbang Beban Aplikasi**  
 **Pengaturan Izin Lama**

Memerlukan izin untuk memanggil `elasticloadbalancing:SetWebACL` tindakan pada tipe sumber daya Application Load Balancer. Tidak memerlukan izin untuk menelepon AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin untuk memanggil `elasticloadbalancing:DeleteWebACLAssociation` tindakan pada tipe sumber daya Application Load Balancer. Juga membutuhkan izin untuk menelepon AWS WAF `DisassociateWebACL`.

```
{
      "Sid": "DisassociateWebACL",
      "Effect": "Allow",
      "Action": "wafv2:DisassociateWebACL",
      "Resource": "*" 
    },
    {
      "Sid": "DisassociateWebACL2",
      "Effect": "Allow",
      "Action": [
         "elasticloadbalancing:DeleteWebACLAssociation"
      ],
      "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
      ]
   }   
}
```

**AWS AppSync GraphQL API**  
**Pengaturan Izin Lama**

Memerlukan izin untuk memanggil AWS AppSync `SetWebACL` tipe sumber daya GraphQL API. Tidak memerlukan izin untuk menelepon AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin untuk memanggil `appsync:DisassociateWebACL` tindakan pada tipe sumber daya GraphQL API. Juga membutuhkan izin untuk menelepon AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Kumpulan pengguna Amazon Cognito**  
Memerlukan izin untuk memanggil `DisassociateWebACL` tindakan Amazon Cognito pada jenis sumber daya kumpulan pengguna dan untuk memanggil. AWS WAF `DisassociateWebACL` 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner layanan**  
Memerlukan izin untuk memanggil `DisassociateWebACL` tindakan App Runner pada jenis sumber daya layanan App Runner dan untuk memanggil. AWS WAF `DisassociateWebACL` 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DisassociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instans Akses Terverifikasi**  
Memerlukan izin untuk memanggil `ec2:DisassociateVerifiedAccessInstanceWebAcl` tindakan pada jenis sumber daya instans Akses Terverifikasi dan untuk memanggil AWS WAF `DisassociateWebACL`. 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DisassociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Izin untuk `GetWebACLForResource`
<a name="security_iam_action-GetWebACLForResource"></a>

Bagian ini mencantumkan izin yang diperlukan untuk mendapatkan paket perlindungan (web ACL) untuk sumber daya yang dilindungi menggunakan tindakan. AWS WAF `GetWebACLForResource` 

Untuk CloudFront distribusi Amazon, alih-alih tindakan ini, gunakan CloudFront tindakan`GetDistributionConfig`. Untuk selengkapnya, lihat [GetDistributionConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html)di *Referensi Amazon CloudFront API*. 

**catatan**  
`GetWebACLForResource`membutuhkan izin untuk menelepon`GetWebACL`. Dalam konteks ini, AWS WAF gunakan `GetWebACL` hanya untuk memverifikasi bahwa akun Anda memiliki izin yang diperlukan untuk mengakses paket perlindungan (web ACL) yang `GetWebACLForResource` kembali. Ketika Anda menelepon`GetWebACLForResource`, Anda mungkin mendapatkan kesalahan yang menunjukkan bahwa akun Anda tidak diizinkan untuk bekerja `wafv2:GetWebACL` pada sumber daya. AWS WAF tidak menambahkan jenis kesalahan ini ke riwayat AWS CloudTrail acara. 

**API REST Amazon API Gateway**  
Memerlukan izin untuk menelepon AWS WAF `GetWebACLForResource` dan `GetWebACL` untuk paket perlindungan (web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

**Penyeimbang Beban Aplikasi**  
 **Pengaturan Izin Lama**

Memerlukan izin untuk menelepon AWS WAF `GetWebACLForResource` dan `GetWebACL` untuk paket perlindungan (web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin untuk menelepon AWS WAF `GetWebACLForResource` dan `GetWebACL` untuk paket perlindungan (web ACL). Juga memerlukan izin untuk menelepon`elasticloadbalancing:GetLoadBalancerWebACL`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:GetLoadBalancerWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync GraphQL API**  
 **Pengaturan Izin Lama**

Memerlukan izin untuk menelepon AWS WAF `GetWebACLForResource` dan `GetWebACL` untuk paket perlindungan (web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin untuk menelepon AWS WAF `GetWebACLForResource` dan `GetWebACL` untuk paket perlindungan (web ACL). Juga memerlukan izin untuk menelepon`appsync:GetWebACLForResource`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "appsync:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

**Kumpulan pengguna Amazon Cognito**  
Memerlukan izin untuk memanggil `GetWebACLForResource` tindakan Amazon Cognito pada jenis sumber daya kumpulan pengguna dan untuk memanggil AWS WAF `GetWebACLForResource` dan. `GetWebACL` 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [ 
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner layanan**  
Memerlukan izin untuk memanggil `DescribeWebAclForService` tindakan App Runner pada jenis sumber daya layanan App Runner dan untuk memanggil AWS WAF `GetWebACLForResource` dan. `GetWebACL` 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DescribeWebAclForService"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instans Akses Terverifikasi**  
Memerlukan izin untuk memanggil `ec2:GetVerifiedAccessInstanceWebAcl` tindakan pada jenis sumber daya instans Akses Terverifikasi dan untuk memanggil AWS WAF `GetWebACLForResource` dan`GetWebACL`. 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "ec2:GetVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Izin untuk `ListResourcesForWebACL`
<a name="security_iam_action-ListResourcesForWebACL"></a>

Bagian ini mencantumkan izin yang diperlukan untuk mengambil daftar sumber daya yang dilindungi untuk paket perlindungan (web ACL) menggunakan tindakan. AWS WAF `ListResourcesForWebACL` 

Untuk CloudFront distribusi Amazon, alih-alih tindakan ini, gunakan CloudFront tindakan`ListDistributionsByWebACLId`. Untuk selengkapnya, lihat [ListDistributionsByWebACLId](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html)di *Referensi Amazon CloudFront API*. 

**API REST Amazon API Gateway**  
Memerlukan izin AWS WAF `ListResourcesForWebACL` untuk memanggil ACL web. 

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

**Penyeimbang Beban Aplikasi**  
 **Pengaturan Izin Lama**

Memerlukan izin AWS WAF `ListResourcesForWebACL` untuk memanggil paket perlindungan (web ACL). 

```
{
    "Sid": "ListWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin AWS WAF `ListResourcesForWebACL` untuk memanggil paket perlindungan (web ACL). Juga memerlukan izin untuk menelepon`elasticloadbalancing:DescribeWebACLAssociation`.

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL",
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:DescribeWebACLAssociation"
    ],
    "Resource": "*"
}
```

**AWS AppSync GraphQL API**  
 **Pengaturan Izin Lama**

Memerlukan izin AWS WAF `ListResourcesForWebACL` untuk memanggil paket perlindungan (web ACL). 

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL",
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Pengaturan Izin Baru**

Memerlukan izin AWS WAF `ListResourcesForWebACL` untuk memanggil paket perlindungan (web ACL). Juga memerlukan izin untuk menelepon`appsync:ListResourcesForWebACL`.

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:ListResourcesForWebACL"
    ],
    "Resource": "*"
}
```

**Kumpulan pengguna Amazon Cognito**  
Memerlukan izin untuk memanggil `ListResourcesForWebACL` tindakan Amazon Cognito pada jenis sumber daya kumpulan pengguna dan untuk memanggil. AWS WAF `ListResourcesForWebACL` 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner layanan**  
Memerlukan izin untuk memanggil `ListAssociatedServicesForWebAcl` tindakan App Runner pada jenis sumber daya layanan App Runner dan untuk memanggil. AWS WAF `ListResourcesForWebACL` 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:ListAssociatedServicesForWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instans Akses Terverifikasi**  
Memerlukan izin untuk memanggil `ec2:DescribeVerifiedAccessInstanceWebAclAssociations` tindakan pada jenis sumber daya instans Akses Terverifikasi dan untuk memanggil AWS WAF `ListResourcesForWebACL`. 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeVerifiedAccessInstanceWebAclAssociations"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

## Sumber daya kebijakan untuk AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Mendukung sumber daya kebijakan:** Ya

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\*) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

```
"Resource": "*"
```

Untuk melihat daftar jenis AWS WAF sumber daya dan jenisnya ARNs, lihat Sumber [daya yang ditentukan oleh AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-resources-for-iam-policies) di *Referensi Otorisasi Layanan*. Untuk mempelajari tindakan mana yang dapat Anda tentukan ARN dari setiap sumber daya, lihat [Tindakan yang ditentukan oleh AWS WAF](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) V2. Untuk mengizinkan atau menolak akses ke subset sumber AWS WAF daya, sertakan ARN sumber daya dalam elemen `resource` kebijakan Anda.

 ARNs Sumber AWS WAF `wafv2` daya memiliki format berikut:

```
arn:{{partition}}:wafv2:{{region}}:{{account-id}}:{{scope}}/{{resource-type}}/{{resource-name}}/{{resource-id}}
```

Untuk informasi umum tentang spesifikasi ARN, lihat [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di. Referensi Umum Amazon Web Services

Berikut daftar persyaratan yang khusus untuk ARNs sumber `wafv2` daya: 
+ {{region}}: Untuk AWS WAF sumber daya yang Anda gunakan untuk melindungi CloudFront distribusi Amazon, setel ini ke`us-east-1`. Jika tidak, setel ini ke Wilayah yang Anda gunakan dengan sumber daya regional yang dilindungi. 
+ {{scope}}: Tetapkan cakupan `global` untuk digunakan dengan CloudFront distribusi Amazon atau `regional` untuk digunakan dengan sumber daya regional mana pun yang AWS WAF mendukung. Sumber daya regional adalah Amazon API Gateway REST API, Application Load Balancer, GraphQL API AWS AppSync , kumpulan pengguna Amazon Cognito, layanan, dan instance Akses Terverifikasi. AWS App Runner AWS 
+ {{resource-type}}: Tentukan salah satu nilai berikut:`webacl`,`rulegroup`,`ipset`,`regexpatternset`, atau`managedruleset`.
+ {{resource-name}}: Tentukan nama yang Anda berikan AWS WAF sumber daya, atau tentukan wildcard (`*`) untuk menunjukkan semua sumber daya yang memenuhi spesifikasi lain di ARN. Anda harus menentukan nama sumber daya dan ID sumber daya atau menentukan wildcard untuk keduanya. 
+ {{resource-id}}: Tentukan ID AWS WAF sumber daya, atau tentukan wildcard (`*`) untuk menunjukkan semua sumber daya yang memenuhi spesifikasi lain di ARN. Anda harus menentukan nama sumber daya dan ID sumber daya atau menentukan wildcard untuk keduanya.

Misalnya, ARN berikut menentukan semua paket perlindungan (web ACLs) dengan cakupan regional untuk akun `111122223333` di Wilayah: `us-west-1`

```
arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*
```

ARN berikut menentukan grup aturan bernama `MyIPManagementRuleGroup` dengan cakupan global untuk akun `111122223333` di Wilayah: `us-east-1`

```
arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id
```

Untuk melihat contoh kebijakan AWS WAF berbasis identitas, lihat. [Contoh kebijakan berbasis identitas untuk AWS WAF](security_iam_id-based-policy-examples.md)

## Kunci kondisi kebijakan untuk AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Mendukung kunci kondisi kebijakan khusus layanan:** Yes

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

Selain itu, AWS WAF mendukung kunci kondisi berikut yang dapat Anda gunakan untuk memberikan pemfilteran halus untuk kebijakan IAM Anda:
+ **wafv2: LogDestinationResource**

  Kunci kondisi ini mengambil spesifikasi Nama Sumber Daya Amazon (ARN) untuk tujuan pencatatan. Ini adalah ARN yang Anda sediakan untuk tujuan pencatatan saat Anda menggunakan panggilan REST API. `PutLoggingConfiguration` 

  Anda dapat secara eksplisit menentukan ARN dan Anda dapat menentukan pemfilteran untuk ARN. Contoh berikut menentukan pemfilteran untuk ARNs bucket Amazon S3 yang memiliki lokasi dan awalan tertentu. 

  ```
  "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  ```
+ **wafv2: LogScope**

  Kunci kondisi ini mendefinisikan sumber konfigurasi logging dalam string. Saat ini, ini selalu diatur ke default`Customer`, yang menunjukkan bahwa tujuan logging dimiliki dan dikelola oleh Anda. 

Untuk melihat daftar kunci AWS WAF kondisi, lihat [Kunci kondisi untuk AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-policy-keys) di *Referensi Otorisasi Layanan*. Untuk mempelajari tindakan dan sumber daya yang dapat Anda gunakan kunci kondisi, lihat [Tindakan yang ditentukan oleh AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions).

Untuk melihat contoh kebijakan AWS WAF berbasis identitas, lihat. [Contoh kebijakan berbasis identitas untuk AWS WAF](security_iam_id-based-policy-examples.md)

## ACLs di AWS WAF
<a name="security_iam_service-with-iam-acls"></a>

**Mendukung ACLs:** Tidak 

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

## ABAC dengan AWS WAF
<a name="security_iam_service-with-iam-tags"></a>

**Mendukung ABAC (tag dalam kebijakan): Sebagian**

Kontrol akses berbasis atribut (ABAC) adalah strategi otorisasi yang menentukan izin berdasarkan atribut tanda. Anda dapat melampirkan tag ke entitas dan AWS sumber daya IAM, lalu merancang kebijakan ABAC untuk mengizinkan operasi saat tag prinsipal cocok dengan tag pada sumber daya.

Untuk mengendalikan akses berdasarkan tanda, berikan informasi tentang tanda di [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dari kebijakan menggunakan kunci kondisi `aws:ResourceTag/{{key-name}}`, `aws:RequestTag/{{key-name}}`, atau `aws:TagKeys`.

Jika sebuah layanan mendukung ketiga kunci kondisi untuk setiap jenis sumber daya, nilainya adalah **Ya** untuk layanan tersebut. Jika suatu layanan mendukung ketiga kunci kondisi untuk hanya beberapa jenis sumber daya, nilainya adalah **Parsial**.

Untuk informasi selengkapnya tentang ABAC, lihat [Tentukan izin dengan otorisasi ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dalam *Panduan Pengguna IAM.* Untuk melihat tutorial yang menguraikan langkah-langkah pengaturan ABAC, lihat [Menggunakan kontrol akses berbasis atribut (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) dalam *Panduan Pengguna IAM*.

## Menggunakan kredensi sementara dengan AWS WAF
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Mendukung kredensial sementara:** Ya

Kredensi sementara menyediakan akses jangka pendek ke AWS sumber daya dan secara otomatis dibuat saat Anda menggunakan federasi atau beralih peran. AWS merekomendasikan agar Anda secara dinamis menghasilkan kredensi sementara alih-alih menggunakan kunci akses jangka panjang. Untuk informasi selengkapnya, lihat [Kredensial keamanan sementara di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dan [Layanan AWS yang berfungsi dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dalam *Panduan Pengguna IAM*.

## Teruskan sesi akses untuk layanan AWS WAF
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Mendukung sesi akses terusan (FAS):** Ya

 Sesi akses teruskan (FAS) menggunakan izin dari pemanggilan utama Layanan AWS, dikombinasikan dengan permintaan Layanan AWS untuk membuat permintaan ke layanan hilir. Untuk detail kebijakan ketika mengajukan permintaan FAS, lihat [Sesi akses terusan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Peran layanan untuk AWS WAF
<a name="security_iam_service-with-iam-roles-service"></a>

**Mendukung peran layanan:** Ya

 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

**Awas**  
Mengubah izin untuk peran layanan dapat merusak AWS WAF fungsionalitas. Edit peran layanan hanya jika AWS WAF memberikan panduan untuk melakukannya.

## Peran terkait layanan untuk AWS WAF
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Mendukung peran terkait layanan**: Ya

 Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan. 

Untuk detail tentang membuat atau mengelola peran AWS WAF terkait layanan, lihat. [Menggunakan peran terkait layanan untuk AWS WAF](using-service-linked-roles.md)