

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

# Identity-based contoh kebijakan untuk Amazon CloudFront
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau mengubah sumber daya CloudFront. Untuk memberikan izin kepada pengguna untuk melakukan tindakan di sumber daya yang mereka perlukan, administrator IAM dapat membuat kebijakan IAM.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [ Membuat kebijakan IAM (konsol) ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) di Panduan Pengguna IAM. * *

Untuk detail tentang tindakan dan jenis sumber daya yang ditentukan oleh CloudFront, termasuk format ARN untuk setiap jenis sumber daya, lihat [ Tindakan, sumber daya, dan kunci kondisi untuk Amazon CloudFront ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html) di Refer * ensi Otorisasi * Layanan.

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Izin untuk mengakses secara ter CloudFront program](#security_iam_id-based-policy-examples-programmatic-access-all)
+ [Izin diperlukan untuk menggunakan CloudFront konsol](#security_iam_id-based-policy-examples-console-required-permissions)
+ [Contoh kebijakan yang dikelola pelanggan](#security_iam_id-based-policy-examples-sdk-cli)

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identity-based kebijakan menentukan apakah seseorang dapat membuat, mengakses, atau menghapus CloudFront sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Memulai kebijakan AWS terkelola dan beralih ke izin hak istimewa terendah ** — Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan terkel *AWS ola * yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan kondisi untuk memberikan akses ke tindakan layanan jika digunakan melalui tindakan tertentu Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA) ** — Jika Anda memiliki skenario yang memerlukan pengguna IAM atau pengguna root Akun AWS, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Mengizinkan pengguna melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau secara terprogram menggunakan API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Izin untuk mengakses secara ter CloudFront program
<a name="security_iam_id-based-policy-examples-programmatic-access-all"></a>

Berikut ini menunjukkan kebijakan izin. `Sid`, atau ID pernyataan, bersifat opsional.

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

****  

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

------

Kebijakan ini memberikan izin untuk melakukan semua CloudFront operasi, yang cukup untuk mengakses secara ter CloudFront program. Jika Anda menggunakan konsol untuk mengakses CloudFront, lihat[Izin diperlukan untuk menggunakan CloudFront konsol](#security_iam_id-based-policy-examples-console-required-permissions). 

Untuk daftar tindakan dan ARN yang Anda tentukan untuk memberikan atau menolak izin untuk menggunakan setiap [ tindakan, lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon CloudFront ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html) di Referensi O * torisasi Layanan*.

## Izin diperlukan untuk menggunakan CloudFront konsol
<a name="security_iam_id-based-policy-examples-console-required-permissions"></a>

Untuk memberikan akses penuh ke CloudFront konsol, Anda memberikan izin dalam kebijakan izin berikut: 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:*", 
            "cloudwatch:DescribeAlarms",
            "cloudwatch:PutMetricAlarm",
            "cloudwatch:GetMetricStatistics",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets",
            "s3:PutBucketPolicy"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

Inilah mengapa izin diperlukan:

**`acm:ListCertificates`**  
Saat Anda membuat dan memperbarui distribusi dengan menggunakan CloudFront konsol dan Anda ingin mengonfigurasi CloudFront agar memerlukan HTTPS antara penampil dan CloudFront atau antara CloudFront dan asal, Anda dapat melihat daftar sertifikat ACM.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`cloudfront:*`**  
Anda dapat melakukan semua CloudFront tindakan.

**`cloudwatch:DescribeAlarms` dan `cloudwatch:PutMetricAlarm`**  
Memungkinkan Anda membuat dan melihat CloudWatch alarm di CloudFront konsol. Lihat juga `sns:ListSubscriptionsByTopic` dan `sns:ListTopics`.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`cloudwatch:GetMetricStatistics`**  
Biarkan CloudFront merender CloudWatch metrik di CloudFront konsol.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`elasticloadbalancing:DescribeLoadBalancers`**  
Saat membuat dan memperbarui distribusi, Anda dapat melihat daftar penyeimbang beban Elastic Load Balancing dalam daftar asal yang tersedia.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`iam:ListServerCertificates`**  
Saat Anda membuat dan memperbarui distribusi dengan menggunakan CloudFront konsol dan Anda ingin mengonfigurasi CloudFront agar memerlukan HTTPS antara penampil dan CloudFront atau antara CloudFront dan asal, Anda dapat melihat daftar sertifikat di penyimpanan sertifikat IAM.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`s3:ListAllMyBuckets`**  
Saat membuat dan memperbarui distribusi, Anda dapat melakukan operasi berikut:  
+ Lihat daftar bucket S3 dalam daftar asal yang tersedia
+ Lihat daftar bucket S3 yang dapat Anda gunakan untuk menyimpan log akses
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`S3:PutBucketPolicy`**  
Saat Anda membuat atau memperbarui distribusi yang membatasi akses ke buket S3, izinkan pengguna memperbarui kebijakan buket untuk memberikan akses ke CloudFront identitas akses asal. Untuk informasi selengkapnya, lihat [Gunakan identitas akses asal (lama, tidak disarankan)](private-content-restricting-access-to-s3.md#private-content-restricting-access-to-s3-oai).  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`sns:ListSubscriptionsByTopic` dan `sns:ListTopics`**  
Saat membuat CloudWatch alarm di CloudFront konsol, Anda dapat memilih topik SNS untuk pemberitahuan.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

**`waf:GetWebACL` dan `waf:ListWebACLs`**  
Anda dapat melihat daftar ACL AWS WAF web di CloudFront konsol.  
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.

### Permission-only tindakan untuk CloudFront konsol
<a name="console-only-actions"></a>

Anda dapat melakukan CloudFront tindakan berikut di [ halaman Paket Tabungan ](https://console.aws.amazon.com/cloudfront/v3/home#/savings-bundle/overview) CloudFront Keamanan. Tindakan API berikut tidak dimaksudkan untuk dipanggil oleh kode Anda, dan tidak termasuk dalam AWS CLI dan AWS SDK.



| Tindakan | Deskripsi | 
| --- | --- | 
| `CreateSavingsPlan` | Memberikan izin untuk membuat rencana tabungan baru. | 
|  `GetSavingsPlan`  | Memberikan izin untuk mendapatkan rencana tabungan. | 
| `ListRateCards` | Memberikan izin untuk mencantumkan kartu CloudFront tarif untuk akun.  | 
|  `ListSavingsPlans`  | Memberikan izin untuk membuat daftar rencana tabungan di akun. | 
|  `ListUsages`  | Memberikan izin untuk daftar CloudFront penggunaan. | 
|  `UpdateSavingsPlan`  | Memberikan izin untuk memperbarui rencana tabungan.  | 

**Catatan**  
Untuk informasi selengkapnya tentang paket CloudFront tabungan, lihat bagian Paket Tabungan CloudFront Keamanan di CloudFront FAQ [ Amazon](https://aws.amazon.com/cloudfront/faqs/). 
Jika Anda membuat rencana tabungan untuk CloudFront dan kemudian ingin menghapusnya nanti, hubungi [AWS Dukungan](https://console.aws.amazon.com/support/home#/case/create?issueType=customer-service). 

## Contoh kebijakan yang dikelola pelanggan
<a name="security_iam_id-based-policy-examples-sdk-cli"></a>

Anda dapat membuat kebijakan IAM kustom Anda sendiri untuk mengizinkan izin untuk tindakan CloudFront API. Anda dapat melampirkan kebijakan kustom ini ke pengguna IAM atau grup yang memerlukan izin yang ditentukan. Kebijakan ini berfungsi saat Anda menggunakan CloudFront API, AWS SDK, atau. AWS CLI Contoh-contoh berikut menunjukkan izin untuk beberapa kasus penggunaan umum. Untuk kebijakan yang memberikan akses penuh kepada pengguna CloudFront, lihat[Izin diperlukan untuk menggunakan CloudFront konsol](#security_iam_id-based-policy-examples-console-required-permissions).

**Topics**
+ [Contoh 1: Mengizinkan akses baca ke semua distribusi](#security_iam_id-based-policy-examples-allow-read-all-distributions)
+ [Contoh 2: Mengizinkan pembuatan, pembaruan, dan penghapusan distribusi](#security_iam_id-based-policy-examples-allow-create-update-delete-distributions)
+ [Contoh 3: Mengizinkan pembuatan dan pencatatan invalidasi](#security_iam_id-based-policy-examples-allow-create-list-invalidations)
+ [Contoh 4: Izinkan membuat distribusi](#create-distribution-iam-policy)

### Contoh 1: Mengizinkan akses baca ke semua distribusi
<a name="security_iam_id-based-policy-examples-allow-read-all-distributions"></a>

Kebijakan izin berikut memberikan izin pengguna untuk melihat semua distribusi di CloudFront konsol:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

### Contoh 2: Mengizinkan pembuatan, pembaruan, dan penghapusan distribusi
<a name="security_iam_id-based-policy-examples-allow-create-update-delete-distributions"></a>

Dengan kebijakan izin berikut, Anda dapat membuat, memperbarui, dan menghapus distribusi dengan menggunakan CloudFront konsol:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:CreateDistribution",
            "cloudfront:DeleteDistribution",
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:UpdateDistribution",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets",
            "s3:PutBucketPolicy"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

`cloudfront:ListCloudFrontOriginAccessIdentities` memungkinkan pengguna untuk secara otomatis memberikan ke identitas akses asal yang sudah ada izin untuk mengakses objek di keranjang Amazon S3. Jika Anda juga ingin pengguna dapat membuat identitas akses asal, Anda juga perlu mengizinkan `cloudfront:CreateCloudFrontOriginAccessIdentity` izin.

### Contoh 3: Mengizinkan pembuatan dan pencatatan invalidasi
<a name="security_iam_id-based-policy-examples-allow-create-list-invalidations"></a>

Dengan kebijakan izin berikut, Anda dapat membuat dan mencantumkan pembatalan. Ini termasuk akses baca ke CloudFront distribusi karena Anda membuat dan melihat pembatalan dengan terlebih dahulu menampilkan pengaturan untuk distribusi:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "acm:ListCertificates", 
            "cloudfront:GetDistribution",
            "cloudfront:GetStreamingDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListCloudFrontOriginAccessIdentities",
            "cloudfront:CreateInvalidation",
            "cloudfront:GetInvalidation",
            "cloudfront:ListInvalidations",
            "elasticloadbalancing:DescribeLoadBalancers",
            "iam:ListServerCertificates",
            "sns:ListSubscriptionsByTopic",
            "sns:ListTopics",
            "waf:GetWebACL",
            "waf:ListWebACLs"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListAllMyBuckets"
         ],
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

### Contoh 4: Izinkan membuat distribusi
<a name="create-distribution-iam-policy"></a>

Kebijakan izin berikut memberikan izin pengguna untuk membuat dan mencantumkan distribusi di CloudFront konsol. Untuk `CreateDistribution` tindakan, tentukan karakter wildcard (\*) untuk al `Resource` ih-alih wildcard untuk distribusi ARN (`arn:aws:cloudfront::123456789012:distribution/*`). Untuk informasi selengkapnya tentang `Resource` elemen, lihat Elemen kebijakan JSON [ IAM: Sumber daya ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html) di Panduan Pengguna * IAM. *

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "cloudfront:CreateDistribution",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "cloudfront:ListDistributions",
            "Resource": "*"
        }
    ]
}
```

------