

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

# Membatasi akses ke AWS Elemental MediaStore asal
<a name="private-content-restricting-access-to-mediastore"></a>

CloudFront menyediakan kontrol akses * asal * (OAC) untuk membatasi akses ke AWS Elemental MediaStore asal.

**Topics**
+ [Buat kontrol akses asal baru](#create-oac-overview-mediastore)
+ [Pengaturan lanjutan untuk kontrol akses asal](#oac-advanced-settings-mediastore)

## Buat kontrol akses asal baru
<a name="create-oac-overview-mediastore"></a>

Selesaikan langkah-langkah yang dijelaskan dalam topik berikut untuk mengatur kontrol akses asal baru di CloudFront.

**Topics**
+ [Prasyarat](#oac-prerequisites-mediastore)
+ [Ber CloudFront ikan izin untuk mengakses MediaStore asal](#oac-permission-to-access-mediastore)
+ [Buat kontrol akses asal](#create-oac-mediastore)

### Prasyarat
<a name="oac-prerequisites-mediastore"></a>

Sebelum Anda membuat dan mengatur kontrol akses asal, Anda harus memiliki CloudFront distribusi dengan MediaStore asal. 

### Ber CloudFront ikan izin untuk mengakses MediaStore asal
<a name="oac-permission-to-access-mediastore"></a>

Sebelum Anda membuat kontrol akses asal atau mengaturnya dalam CloudFront distribusi, pastikan kontrol tersebut CloudFront memiliki izin untuk mengakses MediaStore asal. Lakukan ini setelah membuat CloudFront distribusi, tetapi sebelum menambahkan OAC ke MediaStore asal dalam konfigurasi distribusi. 

Gunakan kebijakan kon MediaStore tainer untuk mengizinkan CloudFront service principal (`cloudfront.amazonaws.com`) mengakses asal. Gunakan `Condition` elemen dalam kebijakan CloudFront untuk mengizinkan akses MediaStore wadah hanya jika permintaan tersebut atas nama CloudFront distribusi yang berisi MediaStore asal. Ini adalah distribusi dengan MediaStore asal yang ingin Anda tambahkan OAC.

Berikut ini adalah contoh kebijakan MediaStore kontainer yang memungkinkan CloudFront distribusi mengakses MediaStore asal.

**Example MediaStore kebijakan kontainer yang memungkinkan akses baca-saja untuk CloudFront distribusi dengan OAC diaktifkan**    
****  

```
{
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "AllowCloudFrontServicePrincipalReadOnly",
                "Effect": "Allow",
                "Principal": {
                  "Service": "cloudfront.amazonaws.com"
                },
                "Action": [ 
                  "mediastore:GetObject"
                ],
                "Resource": "arn:aws:mediastore:{{us-east-1}}:{{111122223333}}:container/{{<container name>}}/*",
                "Condition": {
                    "StringEquals": {
                      "AWS:SourceArn": "arn:aws:cloudfront::{{111122223333}}:distribution/{{CloudFront-distribution-ID}}"
                    },
                    "Bool": {
                      "aws:SecureTransport": "true"
                    }
                }
            }
        ]
}
```

**Example MediaStore kebijakan kontainer yang memungkinkan akses baca dan tulis untuk CloudFront distribusi dengan OAC diaktifkan**    
****  

```
{
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "AllowCloudFrontServicePrincipalReadWrite",
                "Effect": "Allow",
                "Principal": {
                  "Service": "cloudfront.amazonaws.com"
                },
                "Action": [ 
                  "mediastore:GetObject",
                  "mediastore:PutObject"
                ],
                "Resource": "arn:aws:mediastore:{{us-east-1}}:{{111122223333}}:container/{{container-name}}/*",
                "Condition": {
                    "StringEquals": {
                      "AWS:SourceArn": "arn:aws:cloudfront::{{111122223333}}:distribution/{{CloudFront-distribution-ID}}"
                    },
                    "Bool": {
                      "aws:SecureTransport": "true"
                    }
                }
            }
        ]
}
```

**catatan**  
Untuk mengizinkan akses tulis, Anda harus mengonfigurasi ** metode HTTP ** yang Diizinkan untuk disertakan `PUT` dalam pengaturan perilaku CloudFront distribusi Anda.

### Buat kontrol akses asal
<a name="create-oac-mediastore"></a>

Untuk membuat OAC, Anda dapat menggunakan Konsol Manajemen AWS, CloudFormation, AWS CLI, atau CloudFront API.

------
#### [ Console ]

**Untuk membuat kontrol akses asal**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Di panel navigasi, pilih Ak ** ses Asal**.

1. Pilih ** Buat pengaturan kontrol**.

1. Pada formulir ** Buat pengaturan ** kontrol, lakukan hal berikut:

   1. Di ** panel ** Detail, masukkan ** Nama ** dan (opsional) ** Deskripsi ** untuk kontrol akses asal.

   1. Di ** panel ** Pengaturan, kami sarankan Anda meninggalkan pengaturan default (T ** anda tangani permintaan (disarankan)**). Untuk informasi selengkapnya, lihat [Pengaturan lanjutan untuk kontrol akses asal](#oac-advanced-settings-mediastore).

1. Pilih MediaStore dari ** dropdown tipe ** Origin.

1. Pilih **Buat**.

   Setelah OAC dibuat, catat ** Nama**. Anda membutuhkan ini dalam prosedur berikut.

**Untuk menambahkan kontrol akses asal ke MediaStore asal dalam distribusi**

1. Buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Pilih distribusi dengan MediaStore asal yang ingin Anda tambahkan OAC, lalu pilih ** tab ** Origins.

1. Pilih MediaStore asal tempat Anda ingin menambahkan OAC, lalu pilih ** Edit**.

1. Pilih ** HTTPS hanya ** untuk ** Protokol asal Anda**.

1. Dari menu ** tarik- ** turun kontrol akses Origin, pilih OAC yang ingin Anda gunakan.

1. Pilih **Simpan perubahan**.

Distribusi mulai digunakan ke semua lokasi CloudFront tepi. Ketika lokasi tepi menerima konfigurasi baru, ia menandatangani semua permintaan yang dikirimkannya ke MediaStore bucket origin.

------
#### [ CloudFormation ]

Untuk membuat kontrol akses asal (OAC) dengan CloudFormation, gunakan jenis `AWS::CloudFront::OriginAccessControl` sumber daya. Contoh berikut menunjukkan sintaks CloudFormation template, dalam format YAML, untuk membuat kontrol akses asal.

```
Type: AWS::CloudFront::OriginAccessControl
Properties: 
  OriginAccessControlConfig: 
      Description: An optional description for the origin access control
      Name: ExampleOAC
      OriginAccessControlOriginType: mediastore
      SigningBehavior: always
      SigningProtocol: sigv4
```

Untuk informasi selengkapnya, lihat [AWS::CloudFront:: OriginAccessControl ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html) di Panduan *AWS CloudFormation Pengguna*.

------
#### [ CLI ]

Untuk membuat kontrol akses asal dengan AWS Command Line Interface (AWS CLI), gunakan **aws cloudfront create-origin-access-control** perintah. Anda dapat menggunakan file input untuk menyediakan parameter input untuk perintah, daripada menentukan setiap parameter individu sebagai input baris perintah.

**Untuk membuat kontrol akses asal (CLI dengan file input)**

1. Gunakan perintah berikut untuk membuat file yang diberi nama`origin-access-control.yaml`. File ini berisi semua parameter input untuk **create-origin-access-control** perintah.

   ```
   aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
   ```

1. Buka `origin-access-control.yaml` file yang baru saja Anda buat. Edit file untuk menambahkan nama untuk OAC, deskripsi (opsional), dan ubah `SigningBehavior` menjadi`always`. Kemudian simpan filenya.

   Untuk informasi tentang pengaturan OAC lainnya, lihat[Pengaturan lanjutan untuk kontrol akses asal](#oac-advanced-settings-mediastore).

1. Gunakan perintah berikut untuk membuat kontrol akses asal menggunakan parameter input dari `origin-access-control.yaml` file.

   ```
   aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml
   ```

   Catat `Id` nilai dalam output perintah. Anda membutuhkannya untuk menambahkan OAC ke MediaStore asal dalam CloudFront distribusi.

**Untuk melampirkan OAC ke MediaStore asal dalam distribusi yang ada (CLI dengan file input)**

1. Gunakan perintah berikut untuk menyimpan konfigurasi distribusi untuk CloudFront distribusi yang ingin Anda tambahkan OAC. Distribusi harus memiliki MediaStore asal.

   ```
   aws cloudfront get-distribution-config --id {{<CloudFront distribution ID>}} --output yaml > dist-config.yaml
   ```

1. Buka file yang diberi nama `dist-config.yaml` yang baru saja Anda buat. Edit file akan membuat perubahan berikut:
   + Di `Origins` objek, tambahkan ID OAC ke bidang yang diberi `OriginAccessControlId` nama.
   + Hapus nilai dari bidang yang diberi nama`OriginAccessIdentity`, jika ada.
   + Ubah nama `ETag` bidang menjadi`IfMatch`, tetapi jangan ubah nilai bidang.

   Simpan file setelah selesai.

1. Gunakan perintah berikut untuk memperbarui distribusi untuk menggunakan kontrol akses asal.

   ```
   aws cloudfront update-distribution --id {{<CloudFront distribution ID>}} --cli-input-yaml file://dist-config.yaml
   ```

Distribusi mulai digunakan ke semua lokasi CloudFront tepi. Ketika lokasi tepi menerima konfigurasi baru, ia menandatangani semua permintaan yang dikirim ke MediaStore asal.

------
#### [ API ]

Untuk membuat kontrol akses asal dengan CloudFront API, gunakan [ CreateOriginAccessControl](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateOriginAccessControl.html). Untuk informasi selengkapnya tentang bidang yang Anda tentukan dalam panggilan API ini, lihat dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

Setelah Anda membuat kontrol akses asal, Anda dapat melampirkannya ke MediaStore asal dalam distribusi, menggunakan salah satu panggilan API berikut:
+ Untuk melampirkannya ke distribusi yang ada, gunakan [ UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html).
+ Untuk melampirkannya ke distribusi baru, gunakan [ CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html).

Untuk kedua panggilan API ini, berikan ID kontrol akses asal di `OriginAccessControlId` bidang, di dalam origin. Untuk informasi selengkapnya tentang bidang lain yang Anda tentukan dalam panggilan API ini, lihat [Semua referensi pengaturan distribusi](distribution-web-values-specify.md) dan dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

------

## Pengaturan lanjutan untuk kontrol akses asal
<a name="oac-advanced-settings-mediastore"></a>

Fitur kontrol akses CloudFront asal mencakup pengaturan lanjutan yang dimaksudkan hanya untuk kasus penggunaan tertentu. Gunakan pengaturan yang disarankan kecuali Anda memiliki kebutuhan khusus untuk pengaturan lanjutan.

Kontrol akses asal berisi pengaturan bernama Perilaku ** penandatanganan ** (di konsol), atau `SigningBehavior` (di API, CLI, dan CloudFormation). Pengaturan ini menyediakan opsi berikut:

**Selalu tanda tangani permintaan asal (pengaturan yang disarankan)**  
Sebaiknya gunakan setelan ini, bernama ** Permintaan tanda tangani (disarankan) ** di konsol, atau `always` di API, CLI, dan CloudFormation. Dengan pengaturan ini, CloudFront selalu tandatangani semua permintaan yang dikirim ke MediaStore asal.

**Jangan pernah menandatangani permintaan asal**  
Setelan ini diberi ** nama Jangan menandatangani permintaan ** di konsol, atau `never` di API, CLI, dan CloudFormation. Gunakan pengaturan ini untuk mematikan kontrol akses asal untuk semua asal di semua distribusi yang menggunakan kontrol akses asal ini. Ini dapat menghemat waktu dan tenaga dibandingkan dengan menghapus kontrol akses asal dari semua asal dan distribusi yang menggunakannya, satu per satu. Dengan pengaturan ini, CloudFront tidak menandatangani permintaan apa pun yang dikirim ke MediaStore asal.  
Untuk menggunakan pengaturan ini, MediaStore asal harus dapat diakses publik. Jika Anda menggunakan pengaturan ini dengan MediaStore asal yang tidak dapat diakses publik, CloudFront tidak dapat mengakses asal. MediaStore Origin mengembalikan kesalahan ke CloudFront dan mener CloudFront uskan kesalahan tersebut kepada pemirsa. Untuk informasi selengkapnya, lihat contoh kebijakan MediaStore kontainer untuk akses baca [ publik melalui HTTPS](https://docs.aws.amazon.com/mediastore/latest/ug/policies-examples-public-https.html).

**Jangan mengganti header penampil (klien) `Authorization`**  
Pengaturan ini diberi ** nama Jangan mengganti header otorisasi ** di konsol, atau `no-override` di API, CLI, dan. CloudFormation Gunakan pengaturan ini jika Anda CloudFront ingin menandatangani permintaan asal hanya jika permintaan penampil yang sesuai tidak menyertakan `Authorization` header. Dengan pengaturan ini CloudFront , meneruskan `Authorization` header dari permintaan penampil ketika ada, tetapi menandatangani permintaan asal (menambahkan `Authorization` header sendiri) ketika permintaan penampil tidak menyertakan `Authorization` header.  
Untuk meneruskan `Authorization` header dari permintaan penampil, Anda * harus * menambahkan `Authorization` header ke kebijakan [ cache ](controlling-the-cache-key.md) untuk semua perilaku cache yang menggunakan MediaStore asal yang terkait dengan kontrol akses asal ini.