

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

# Rencanakan penyebaran Anda
<a name="plan-your-deployment"></a>

Bagian ini menjelaskan [biaya](cost.md), [keamanan](security.md), [Kuota](quotas.md), dan pertimbangan lain sebelum menerapkan solusi.

## Wilayah AWS yang Didukung
<a name="supported-aws-regions"></a>

Bergantung pada nilai parameter input template yang Anda tentukan, solusi ini membutuhkan sumber daya yang berbeda. Sumber daya ini (tercantum dalam tabel berikut) mungkin tidak tersedia di semua Wilayah AWS. Oleh karena itu, Anda harus meluncurkan solusi ini di Wilayah AWS tempat layanan ini tersedia. Untuk ketersediaan terbaru layanan AWS menurut Wilayah, lihat [Daftar Layanan Regional AWS](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).


|  | AWS WAF Web ACL | AWS Glue | Amazon Athena | Amazon Kinesis Data Firehose | 
| --- | --- | --- | --- | --- | 
|   **Jenis titik akhir**   |  |  |  |  | 
|  CloudFront  |  ✓  |  |  |  | 
|  Application Load Balancer (ALB)  |  ✓  |  |  |  | 
|   **Aktifkan Perlindungan Banjir HTTP**   |  |  |  |  | 
|  ya - Pengurai log AWS Lambda  |  |  |  |  ✓  | 
|  ya - Pengurai log Amazon Athena  |  |  ✓  |  ✓  |  ✓  | 
|   **Aktifkan Scanner & Probe Protection**   |  |  |  |  | 
|  ya - Pengurai log Amazon Athena  |  |  ✓  |  ✓  |  | 

**catatan**  
Jika Anda memilih `CloudFront` sebagai **Endpoint** Anda, Anda harus menerapkan solusi di Wilayah AS Timur (Virginia N.) (). `us-east-1`

# Biaya
<a name="cost"></a>

Anda bertanggung jawab atas biaya layanan AWS yang digunakan saat menjalankan solusi Automasi Keamanan untuk AWS WAF. Total biaya untuk menjalankan solusi ini tergantung pada perlindungan yang diaktifkan dan jumlah data yang dicerna, disimpan, dan diproses.

Sebaiknya buat [anggaran](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/budgets-create.html) melalui [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) untuk membantu mengelola biaya. Untuk detail selengkapnya, lihat halaman web harga untuk setiap layanan AWS yang Anda gunakan dalam solusi ini.

Tabel berikut adalah contoh rincian biaya untuk menjalankan solusi ini di Wilayah AS Timur (Virginia N.) (tidak termasuk AWS Tingkat Gratis). Harga dapat berubah sewaktu-waktu.

 **Contoh 1: Aktifkan Perlindungan Daftar Reputasi, Perlindungan Bot Buruk, Parser Log AWS Lambda untuk Perlindungan Banjir HTTP, dan Perlindungan Pemindai & Probe** 


| AWS service | Dimensi/Bulan | Biaya [USD] | 
| --- | --- | --- | 
|  Amazon Data Firehose  |  100 GB  |  \$1\$12,90  | 
|  Amazon S3  |  100 GB  |  \$1\$12,30  | 
|  AWS Lambda  |  128 MB: 3 fungsi, 1M pemanggilan, dan durasi rata-rata 500 milidetik per Lambda dijalankan 512 MB: 2 fungsi, 1M pemanggilan, dan durasi rata-rata 500 milidetik per Lambda run  |  \$1\$15,40  | 
|  AWS WAF web ACL  |  1  |  \$15.00  | 
|  Aturan AWS WAF  |  4  |  \$14,00  | 
|  Permintaan AWS WAF  |  1M  |  \$10,60  | 
|   **Jumlah**   |  |   **\$1 \$120,60 per bulan**   | 

 **Contoh 2: Aktifkan Perlindungan Daftar Reputasi, Perlindungan Bot Buruk, Parser Log Amazon Athena untuk Perlindungan Banjir HTTP, dan Perlindungan Pemindai & Probe** 


| AWS service | Dimensi/Bulan | Biaya [USD] | 
| --- | --- | --- | 
|  Amazon Data Firehose  |  100 GB  |  \$1\$12,90  | 
|  Amazon S3  |  100 GB  |  \$1\$12,30  | 
|  AWS Lambda  |  128 MB: 3 fungsi, 1M pemanggilan, dan durasi rata-rata 500 milidetik per Lambda dijalankan 512 MB: 2 fungsi, 7560 pemanggilan, dan durasi rata-rata 500 milidetik per Lambda run  |  \$1\$11,26  | 
|  Amazon Athena  |  1.2M CloudFront objek hits atau 1.2M permintaan ALB per hari yang menghasilkan catatan log \$1 500 byte per hit atau permintaan  |  \$1\$14,32  | 
|  AWS WAF web ACL  |  1  |  \$15.00  | 
|  Aturan AWS WAF  |  4  |  \$14,00  | 
|  Permintaan AWS WAF  |  1M  |  \$10,60  | 
|   **Jumlah**   |  |   ****\$1 \$120,38 per bulan****   | 

 **Contoh 3: Aktifkan Retensi IP untuk Set IP yang Diizinkan dan Ditolak** 


| AWS service | Dimensi/Bulan | Biaya [USD] | 
| --- | --- | --- | 
|  Amazon DynamoDB  |  1K menulis dan penyimpanan data 1 MB  |  \$1 \$10,00  | 
|  AWS Lambda  |  128 MB: 1 fungsi, pemanggilan 2K, dan durasi rata-rata 500 milidetik per lari Lambda 512 MB: 1 fungsi, pemanggilan 2K, dan durasi rata-rata 500 milidetik per Lambda run  |  \$1 \$10,01  | 
|  Amazon CloudWatch  |  Acara 2K  |  \$1 \$10,00  | 
|  AWS WAF Web ACL  |  1  |  \$15.00  | 
|  Aturan AWS WAF  |  2  |  \$12,00  | 
|  Permintaan WAF WAF  |  1M  |  \$10,60  | 
|   **Jumlah**   |  |   ****\$1 \$17,61 per bulan****   | 

## Perkiraan biaya CloudWatch log
<a name="cost-estimate-of-cloudwatch-logs"></a>

Beberapa layanan AWS yang digunakan dalam solusi ini, seperti Lambda, menghasilkan CloudWatch log. Log ini dikenakan [biaya](https://aws.amazon.com/cloudwatch/pricing/). Kami merekomendasikan menghapus atau mengarsipkan log untuk mengurangi biaya. Untuk detail arsip log, lihat [Mengekspor data log ke Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html) S3 di Panduan Pengguna * CloudWatch Amazon Logs*.

Jika Anda memilih untuk menggunakan pengurai log Athena saat penginstalan, solusi ini menjadwalkan kueri untuk dijalankan terhadap AWS WAF atau log akses aplikasi di bucket Amazon S3 Anda seperti yang dikonfigurasi. Anda dikenakan biaya berdasarkan jumlah data yang dipindai oleh setiap kueri. Solusinya menerapkan partisi ke log dan kueri untuk meminimalkan biaya. Secara default, solusi memindahkan log akses aplikasi dari lokasi Amazon S3 aslinya ke struktur folder yang dipartisi. Anda juga dapat mempertahankan yang asli, tetapi Anda akan dikenakan biaya untuk penyimpanan log duplikat. Solusi ini menggunakan [grup kerja untuk mengelompokkan](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html) beban kerja, dan Anda dapat mengonfigurasi keduanya untuk mengelola akses kueri dan biaya. Lihat [Estimasi biaya Athena](#cost-estimate-of-athena) untuk perhitungan perkiraan biaya sampel. Untuk informasi lebih lanjut, lihat Harga [Amazon Athena](https://aws.amazon.com/athena/pricing/).

## Perkiraan biaya Athena
<a name="cost-estimate-of-athena"></a>

Jika Anda menggunakan opsi pengurai log Athena saat menjalankan aturan **Perlindungan Banjir HTTP, Perlindungan** **Pemindai & Probe atau Perlindungan** **Bad Bot**, Anda akan dikenakan biaya untuk penggunaan Athena. Secara default, setiap kueri Athena berjalan setiap lima menit dan memindai data empat jam terakhir. Solusinya menerapkan partisi ke log dan kueri Athena untuk meminimalkan biaya. Anda dapat mengonfigurasi jumlah jam data yang dipindai kueri dengan mengubah nilai untuk parameter template **Periode Blok WAF**. Namun, meningkatkan jumlah data yang dipindai kemungkinan akan meningkatkan biaya Athena.

**Tip**  
Berikut ini adalah contoh perhitungan biaya CloudFront log:  
Rata-rata, setiap CloudFront hit mungkin menghasilkan sekitar 500 byte data.  
Jika ada 1,2 juta CloudFront objek yang terkena per hari, maka akan ada 200K (1.2M/6) hit per empat jam, dengan asumsi bahwa data dicerna pada tingkat yang konsisten. Pertimbangkan pola lalu lintas Anda yang sebenarnya saat menghitung biaya Anda.  
 `[500 bytes of data] * [200K hits per four hours] = [an average 100 MB (0.0001TB) data scanned per query]`   
Athena mengenakan biaya \$15,00 per TB data yang dipindai.  
 `[0.0001 TB] * [$5] = [$0.0005 per query scan]`   
Kueri Athena berjalan setiap lima menit, yaitu 12 kali per jam.  
 `[12 runs] * [24 hours] = [288 runs per day]`   
 `[$0.0005 per query scan] * [288 runs per day] * [30 days] = [$4.32 per month]`   
Biaya aktual bervariasi tergantung pada pola lalu lintas aplikasi Anda. Untuk informasi lebih lanjut, lihat Harga [Amazon Athena](https://aws.amazon.com/athena/pricing/).

# Keamanan
<a name="security"></a>

Saat Anda membangun sistem pada infrastruktur AWS, tanggung jawab keamanan dibagi antara Anda dan AWS. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) ini mengurangi beban operasional Anda karena AWS mengoperasikan, mengelola, dan mengontrol komponen termasuk sistem operasi host, lapisan virtualisasi, dan keamanan fisik fasilitas tempat layanan beroperasi. Untuk informasi selengkapnya tentang keamanan AWS, kunjungi [AWS Cloud Security](https://aws.amazon.com/security/).

## Peran IAM
<a name="iam-roles"></a>

Dengan peran IAM, Anda dapat menetapkan akses terperinci, kebijakan, dan izin ke layanan dan pengguna di AWS Cloud. Solusi ini menciptakan peran IAM dengan hak istimewa paling sedikit, dan peran ini memberikan sumber daya solusi dengan izin yang diperlukan.

## Data
<a name="data"></a>

Semua data yang disimpan dalam bucket Amazon S3 dan tabel DynamoDB memiliki enkripsi saat istirahat. Data dalam perjalanan dengan Firehose juga dienkripsi.

## Kemampuan perlindungan
<a name="protection-capabilities"></a>

Aplikasi web rentan terhadap berbagai serangan. Serangan ini termasuk permintaan yang dibuat khusus yang dirancang untuk mengeksploitasi kerentanan atau mengendalikan server; serangan volumetrik yang dirancang untuk menjatuhkan situs web; atau bot dan pencakar buruk yang diprogram untuk mengikis dan mencuri konten web.

Solusi ini digunakan CloudFormation untuk mengonfigurasi aturan AWS WAF, termasuk grup aturan AWS Managed Rules dan aturan khusus, untuk memblokir serangan umum berikut:
+  **AWS Managed Rules** - Layanan terkelola ini memberikan perlindungan terhadap kerentanan aplikasi umum atau lalu lintas lain yang tidak diinginkan. Solusi ini mencakup [grup aturan reputasi AWS Managed IP, grup aturan](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html) [dasar AWS Managed, dan grup aturan](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html) khusus [kasus penggunaan AWS Managed](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html). Anda memiliki pilihan untuk memilih satu atau beberapa grup aturan untuk ACL web Anda, hingga kuota unit kapasitas ACL web maksimum (WCU).
+  **SQL injection** - Penyerang memasukkan kode SQL berbahaya ke dalam permintaan web untuk mengekstrak data dari database Anda. Kami merancang solusi ini untuk memblokir permintaan web yang berisi kode SQL yang berpotensi berbahaya.
+  **XSS** - Penyerang menggunakan kerentanan di situs web jinak sebagai kendaraan untuk menyuntikkan skrip situs-klien berbahaya ke browser web pengguna yang sah. Kami merancang ini untuk memeriksa elemen permintaan masuk yang umum dieksplorasi untuk mengidentifikasi dan memblokir serangan XSS.
+  **Banjir HTTP** - Server web dan sumber daya backend lainnya berisiko terkena serangan DDo S, seperti banjir HTTP. Solusi ini secara otomatis memanggil aturan berbasis tarif ketika permintaan web dari klien melebihi kuota yang dapat dikonfigurasi. Atau, Anda dapat menerapkan kuota ini dengan memproses log AWS WAF menggunakan fungsi Lambda atau kueri Athena.
+  **Pemindai dan probe** - Sumber berbahaya memindai dan menyelidiki aplikasi web yang menghadap ke internet untuk kerentanan, dengan mengirimkan serangkaian permintaan yang menghasilkan kode kesalahan HTTP 4xx. Anda dapat menggunakan riwayat ini untuk membantu mengidentifikasi dan memblokir alamat IP sumber berbahaya. Solusi ini membuat fungsi Lambda atau kueri Athena yang secara otomatis mem-parsing CloudFront atau log akses ALB, menghitung jumlah permintaan buruk dari alamat IP sumber unik per menit, dan memperbarui AWS WAF untuk memblokir pemindaian lebih lanjut dari alamat yang mencapai kuota kesalahan yang ditentukan.
+  **Asal penyerang yang dikenal (daftar reputasi IP)** - Banyak organisasi mempertahankan daftar reputasi alamat IP yang dioperasikan oleh penyerang yang dikenal, seperti spammer, distributor malware, dan botnet. Solusi ini memanfaatkan informasi dalam daftar reputasi ini untuk membantu Anda memblokir permintaan dari alamat IP berbahaya. Selain itu, solusi ini memblokir penyerang yang diidentifikasi oleh kelompok aturan reputasi IP berdasarkan intelijen ancaman internal Amazon.
+  **Bot dan pencakar** - Operator aplikasi web yang dapat diakses publik perlu percaya bahwa klien yang mengakses konten mereka mengidentifikasi diri mereka secara akurat, dan bahwa mereka menggunakan layanan sebagaimana dimaksud. Namun, beberapa klien otomatis, seperti pencakar konten atau bot buruk, salah menggambarkan diri mereka sendiri untuk melewati batasan. Solusi ini membantu Anda mengidentifikasi dan memblokir bot dan pencakar yang buruk.

# Kuota
<a name="quotas"></a>

Service quotas, juga disebut batasan, adalah jumlah maksimum sumber daya layanan atau operasi untuk akun AWS Anda.

## Kuota untuk layanan AWS dalam solusi ini
<a name="quotas-for-aws-services-in-this-solution"></a>

Pastikan Anda memiliki kuota yang cukup untuk setiap [layanan yang diterapkan dalam solusi ini](architecture-details.md#aws-services-in-this-solution). Untuk informasi selengkapnya, lihat [kuota layanan AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). Untuk melihat kuota layanan untuk semua layanan AWS dalam dokumentasi tanpa berpindah halaman, lihat informasi di [titik akhir Layanan dan halaman kuota di PDF sebagai](https://docs.aws.amazon.com/general/latest/gr/aws-general.pdf#aws-service-information) gantinya.

## Kuota AWS WAF
<a name="aws-waf-quotas"></a>

AWS WAF dapat memblokir maksimum 10.000 rentang alamat IP dalam notasi Classless Inter-Domain Routing (CIDR) per kondisi kecocokan IP. Setiap daftar yang dibuat oleh solusi ini tunduk pada kuota ini. Untuk informasi selengkapnya, lihat kuota [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html). Pada versi 3.0, solusi ini membuat dua set IP untuk dilampirkan ke setiap aturan, satu untuk IPv4 dan satu untuk IPv6.

AWS WAF memungkinkan maksimum satu permintaan per detik, per akun, per Wilayah AWS untuk panggilan API ke individu`Create`,`Put`, atau `Update` tindakan mana pun. Jika Anda melakukan panggilan API ini di luar solusi, Anda mungkin mengalami masalah pelambatan API. Untuk mencegah masalah ini, sebaiknya hindari menjalankan aplikasi lain yang melakukan panggilan API ini di akun dan Wilayah yang sama tempat solusi ini diterapkan.

# Pertimbangan deployment
<a name="deployment-considerations"></a>

Bagian berikut memberikan kendala dan pertimbangan untuk menerapkan solusi ini.

## Aturan AWS WAF
<a name="aws-waf-rules"></a>

ACL web yang dihasilkan solusi ini dirancang untuk menawarkan perlindungan komprehensif untuk aplikasi web. Solusinya menyediakan seperangkat Aturan Terkelola AWS dan aturan khusus yang dapat Anda tambahkan ke ACL web. Untuk memasukkan aturan, pilih `yes` parameter yang relevan saat meluncurkan CloudFormation tumpukan. Lihat [Langkah 1. Luncurkan tumpukan](step-1.-launch-the-stack.md) untuk daftar parameter.

**catatan**  
 out-of-boxSolusinya tidak mendukung [AWS Firewall Manager](https://aws.amazon.com/firewall-manager). Jika Anda ingin menggunakan aturan di Firewall Manager, kami sarankan Anda untuk menerapkan penyesuaian pada kode [sumbernya](https://github.com/aws-solutions/aws-waf-security-automations).

## Pencatatan lalu lintas ACL web
<a name="web-acl-traffic-logging"></a>

Jika Anda membuat tumpukan di Wilayah AWS selain US East (Virginia N.) dan menetapkan **Endpoint** sebagai`CloudFront`, Anda harus menyetel **Activate HTTP Flood Protection** ke `no` atau. `yes - AWS WAF rate based rule`

Dua opsi lainnya (`yes - AWS Lambda log parser`dan`yes - Amazon Athena log parser`) memerlukan pengaktifan log AWS WAF di ACL web yang berjalan di semua lokasi edge AWS, dan ini tidak didukung di luar US East (Virginia N.). Untuk informasi selengkapnya tentang mencatat lalu lintas ACL Web, lihat panduan pengembang [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html).

## Penanganan kebesaran untuk komponen permintaan
<a name="oversize-handling-for-request-components"></a>

AWS WAF tidak mendukung pemeriksaan konten berukuran besar untuk isi, header, atau cookie komponen permintaan web. Saat Anda menulis pernyataan aturan yang memeriksa salah satu jenis komponen permintaan ini, Anda dapat memilih salah satu opsi ini untuk memberi tahu AWS WAF apa yang harus dilakukan dengan permintaan ini:
+  `yes`(lanjutkan) - Periksa komponen permintaan secara normal sesuai dengan kriteria inspeksi aturan. AWS WAF memeriksa konten komponen permintaan yang berada dalam batasan ukuran. Ini adalah opsi default yang digunakan dalam solusi.
+  `yes - MATCH`- Perlakukan permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan pada permintaan tanpa mengevaluasinya terhadap kriteria inspeksi aturan. Untuk aturan dengan `Block` tindakan, ini memblokir permintaan dengan komponen oversize.
+  `yes - NO_MATCH`- Perlakukan permintaan web sebagai tidak cocok dengan pernyataan aturan, tanpa mengevaluasinya terhadap kriteria inspeksi aturan. AWS WAF melanjutkan inspeksi permintaan web dengan menggunakan aturan lainnya di ACL web, seperti yang akan dilakukan untuk aturan yang tidak cocok.

Untuk informasi selengkapnya, lihat [Menangani komponen permintaan web yang terlalu besar di AWS](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-oversize-handling.html) WAF.

## Beberapa penerapan solusi
<a name="multiple-solution-deployments"></a>

Anda dapat menerapkan solusi beberapa kali di akun dan Wilayah yang sama. Anda harus menggunakan nama CloudFormation tumpukan unik dan nama bucket Amazon S3 untuk setiap penerapan. Setiap penerapan unik dikenakan biaya tambahan dan tunduk pada [kuota AWS WAF per akun](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html), per Wilayah.

## Izin peran minimum untuk penerapan (Opsional)
<a name="minimum-role-permissions"></a>

Pelanggan dapat membuat peran IAM secara manual dengan izin minimum yang diperlukan untuk penerapan:
+ Izin WAF

```
        {
            "Effect": "Allow",
            "Action": [
                "wafv2:CreateWebACL",
                "wafv2:UpdateWebACL",
                "wafv2:DeleteWebACL",
                "wafv2:GetWebACL",
                "wafv2:ListWebACLs",
                "wafv2:CreateIPSet",
                "wafv2:UpdateIPSet",
                "wafv2:DeleteIPSet",
                "wafv2:GetIPSet",
                "wafv2:AssociateWebACL",
                "wafv2:DisassociateWebACL",
                "wafv2:PutLoggingConfiguration",
                "wafv2:DeleteLoggingConfiguration",
                "wafv2:ListWebACLs",
                "wafv2:ListIPSets",
                "wafv2:ListTagsForResource"
            ],
            "Resource": [
                "arn:aws:wafv2:*:*:regional/webacl/*",
                "arn:aws:wafv2:*:*:regional/ipset/*",
                "arn:aws:wafv2:*:*:global/webacl/*",
                "arn:aws:wafv2:*:*:global/ipset/*"
            ]
        }
```
+ Izin Lambda

```
        {
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:InvokeFunction",
                "lambda:UpdateFunctionCode",
                "lambda:UpdateFunctionConfiguration",
                "lambda:AddPermission",
                "lambda:RemovePermission"
            ],
            "Resource": "arn:aws:lambda:*:*:function:*"
        }
```
+ Izin Firehose

```
        {
            "Effect": "Allow",
            "Action": [
                "firehose:CreateDeliveryStream",
                "firehose:DeleteDeliveryStream",
                "firehose:DescribeDeliveryStream",
                "firehose:StartDeliveryStreamEncryption",
                "firehose:StopDeliveryStreamEncryption",
                "firehose:UpdateDestination"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/*"
        }
```
+ Izin S3

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucketPolicy",
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:PutBucketPolicy",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketVersioning",
                "s3:PutEncryptionConfiguration",
                "s3:PutObject",
                "s3:PutBucketTagging",
                "s3:PutLifecycleConfiguration",
                "s3:AbortMultipartUpload",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListMultipartUploadParts",
                "s3:PutBucketLogging",
                "s3:GetBucketLogging"
            ],
            "Resource": "arn:aws:s3:::*"
        }
```
+ Izin Athena

```
        {
            "Effect": "Allow",
            "Action": [
                "athena:CreateWorkGroup",
                "athena:DeleteWorkGroup",
                "athena:GetWorkGroup",
                "athena:UpdateWorkGroup",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:GetQueryResults",
                "athena:StopQueryExecution"
            ],
            "Resource": "arn:aws:athena:*:*:workgroup/WAF*"
        }
```
+ Izin Glue

```
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateDatabase",
                "glue:DeleteDatabase",
                "glue:GetDatabase",
                "glue:GetDatabases",
                "glue:UpdateDatabase",
                "glue:CreateTable",
                "glue:DeleteTable",
                "glue:GetTable",
                "glue:GetTables",
                "glue:UpdateTable"
            ],
            "Resource": [
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*",
                "arn:aws:glue:*:*:table/*/*",
                "arn:aws:glue:*:*:userDefinedFunction/*"
            ]
        }
```
+ CloudWatch Izin Log

```
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DeleteLogGroup",
                "logs:DeleteLogStream",
                "logs:PutRetentionPolicy",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/lambda/*",
                "arn:aws:logs:*:*:log-group:*",
                "arn:aws:logs:*:*:log-group:/aws/kinesisfirehose/*"
            ]
        }
```
+ CloudWatch Izin

```
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DeleteDashboards",
                "cloudwatch:GetDashboard",
                "cloudwatch:ListDashboards",
                "cloudwatch:PutDashboard",
                "cloudwatch:PutMetricData"
            ],
            "Resource": "*"
        }
```
+ Izin SNS

```
        {
            "Effect": "Allow",
            "Action": [
                "sns:CreateTopic",
                "sns:DeleteTopic",
                "sns:Subscribe",
                "sns:Unsubscribe",
                "sns:SetTopicAttributes"
            ],
            "Resource": "arn:aws:sns:*:*:*"
        }
```
+ Izin DynamoDB

```
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:CreateTable",
                "dynamodb:DeleteTable",
                "dynamodb:DescribeTable",
                "dynamodb:PutItem",
                "dynamodb:GetItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        }
```
+ CloudFormation Izin

```
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:UpdateStack",
                "cloudformation:ListStacks"
            ],
            "Resource": "arn:aws:cloudformation:*:*:stack/*/*"
        }
```
+ Izin Registri Aplikasi Service Catalog

```
        {
            "Effect": "Allow",
            "Action": [
                "servicecatalog:CreateApplication",
                "servicecatalog:DeleteApplication",
                "servicecatalog:GetApplication",
                "servicecatalog:TagResource",
                "servicecatalog:CreateAttributeGroup",
                "servicecatalog:DeleteAttributeGroup",
                "servicecatalog:GetAttributeGroup",
                "servicecatalog:AssociateAttributeGroup",
                "servicecatalog:DisassociateAttributeGroup",
                "servicecatalog:AssociateResource",
                "servicecatalog:DisassociateResource"
            ],
            "Resource": "arn:aws:servicecatalog:*:*:*"
        }
```
+ Izin X-Ray

```
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords"
            ],
            "Resource": "*"
        }
```
+ Izin IAM

```
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListRoles",
                "iam:PassRole",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/*"
        }
```
+ EventBridge Izin

```
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:RemoveTargets",
                "events:DescribeRule",
                "events:EnableRule",
                "events:ListRules",
                "events:PutRule",
                "events:DeleteRule",
                "events:ListEventSources",
                "events:DescribeEventSource",
                "events:ActivateEventSource",
                "events:DeactivateEventSource"
            ],
            "Resource": "arn:aws:events:*:*:rule/*"
        }
```