Batasi akses ke asal AWS Elemental MediaStore - Amazon CloudFront

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

Batasi akses ke asal AWS Elemental MediaStore

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

Buat kontrol akses asal baru

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

Prasyarat

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

Memberikan izin kontrol akses asal untuk mengakses MediaStore asal

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

Untuk memberikan izin OAC untuk mengakses MediaStore asal, gunakan kebijakan MediaStore kontainer untuk mengizinkan CloudFront service principal (cloudfront.amazonaws.com) mengakses asal. Gunakan Condition elemen dalam kebijakan CloudFront untuk mengizinkan akses MediaStore penampung hanya jika permintaan atas nama CloudFront distribusi yang berisi MediaStore asal.

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

contoh MediaStore kebijakan kontainer yang memungkinkan akses hanya-baca ke OAC CloudFront
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject" ], "Resource": "arn:aws:mediastore:<region>:111122223333:container/<container name>/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>" }, "Bool": { "aws:SecureTransport": "true" } } } ] }
contoh MediaStore kebijakan kontainer yang memungkinkan akses baca dan tulis ke CloudFront OAC
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "mediastore:GetObject", "mediastore:PutObject" ], "Resource": "arn:aws:mediastore:<region>: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

Untuk membuat OAC, Anda dapat menggunakan AWS Management Console AWS CloudFormation, AWS CLI, atau CloudFront API.

Console
Untuk membuat kontrol akses asal
  1. Masuk ke AWS Management Console dan buka CloudFront konsol dihttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Di panel navigasi, pilih Akses asal.

  3. Pilih Buat pengaturan kontrol.

  4. Pada formulir pengaturan Create control, lakukan hal berikut:

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

    2. Di panel Pengaturan, kami sarankan Anda meninggalkan pengaturan default (Permintaan tanda tangan (disarankan)). Untuk informasi selengkapnya, lihat Pengaturan lanjutan untuk kontrol akses asal.

  5. Pilih MediaStore dari dropdown tipe Origin.

  6. Pilih Buat.

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

Untuk menambahkan kontrol akses asal ke MediaStore asal dalam distribusi
  1. Buka CloudFront konsol dihttps://console.aws.amazon.com/cloudfront/v4/home.

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

  3. Pilih MediaStore asal yang ingin Anda tambahkan OAC, lalu pilih Edit.

  4. Pilih HTTPS hanya untuk Protokol asal Anda.

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

  6. Pilih Simpan perubahan.

Distribusi mulai menyebar ke semua lokasi CloudFront tepi. Saat lokasi tepi menerima konfigurasi baru, ia akan menandatangani semua permintaan yang dikirimkan ke asal MediaStore bucket.

CloudFormation

Untuk membuat kontrol akses asal (OAC) dengan AWS CloudFormation, gunakan jenis AWS::CloudFront::OriginAccessControl sumber daya. Contoh berikut menunjukkan sintaks AWS CloudFormation template, dalam format YAMM, 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::OriginAccessKontrol 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 memberikan 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 namaorigin-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
  2. Buka origin-access-control.yaml file yang baru saja Anda buat. Edit file untuk menambahkan nama untuk OAC, deskripsi (opsional), dan ubah SigningBehavior kealways. Kemudian simpan filenya.

    Untuk informasi tentang pengaturan OAC lainnya, lihatPengaturan lanjutan untuk kontrol akses asal.

  3. 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
  2. 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 namaOriginAccessIdentity, jika ada.

    • Ubah nama ETag bidang menjadiIfMatch, tetapi jangan ubah nilai bidang.

    Simpan file setelah selesai.

  3. 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 menyebar 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. Untuk informasi selengkapnya tentang bidang yang Anda tentukan dalam panggilan API ini, lihat dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

Setelah membuat kontrol akses asal, Anda dapat melampirkannya ke MediaStore asal dalam distribusi, menggunakan salah satu panggilan API berikut:

Untuk kedua panggilan API ini, berikan ID kontrol akses asal di OriginAccessControlId bidang, di dalam asal. Untuk informasi selengkapnya tentang bidang lain yang Anda tentukan dalam panggilan API ini, lihat Referensi pengaturan distribusi dan dokumentasi referensi API untuk AWS SDK atau klien API lainnya.

Pengaturan lanjutan untuk kontrol akses asal

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

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

Selalu tandatangani permintaan asal (pengaturan yang disarankan)

Sebaiknya gunakan pengaturan ini, bernama Permintaan tanda (disarankan) di konsol, atau always di API, CLI, dan. AWS CloudFormation Dengan pengaturan ini, CloudFront selalu tandatangani semua permintaan yang dikirimkan ke MediaStore asal.

Jangan pernah menandatangani permintaan asal

Pengaturan ini diberi nama Jangan menandatangani permintaan di konsol, atau never di API, CLI, dan. AWS CloudFormation Gunakan pengaturan ini untuk menonaktifkan 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 dikirimkan ke MediaStore asal.

Awas

Untuk menggunakan pengaturan ini, MediaStore asal harus dapat diakses publik. Jika Anda menggunakan setelan ini dengan MediaStore asal yang tidak dapat diakses publik, CloudFront tidak dapat mengakses asal. MediaStore Asal mengembalikan kesalahan ke CloudFront dan CloudFront meneruskan kesalahan tersebut ke pemirsa. Untuk informasi selengkapnya, lihat contoh kebijakan MediaStore kontainer untuk akses baca Publik melalui HTTPS.

Jangan mengganti header penampil (klien) Authorization

Pengaturan ini diberi nama Jangan timpa header otorisasi di konsol, atau no-override di API, CLI, dan. AWS CloudFormation Gunakan pengaturan ini saat 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 saat ada, tetapi menandatangani permintaan asal (menambahkan tajuknya sendiriAuthorization) saat permintaan penampil tidak menyertakan Authorization header.

Awas

Untuk meneruskan Authorization header dari permintaan penampil, Anda harus menambahkan Authorization header ke kebijakan cache untuk semua perilaku cache yang menggunakan MediaStore asal yang terkait dengan kontrol akses asal ini.