Kontrol akses ke layanan VPC Lattice menggunakan kebijakan autentikasi - Kisi VPC Amazon

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

Kontrol akses ke layanan VPC Lattice menggunakan kebijakan autentikasi

Kebijakan autentikasi VPC Lattice adalah dokumen kebijakan IAM yang Anda lampirkan ke jaringan layanan atau layanan untuk mengontrol apakah prinsipal tertentu memiliki akses ke grup layanan atau layanan tertentu. Anda dapat melampirkan satu kebijakan autentikasi ke setiap jaringan layanan atau layanan yang ingin Anda kendalikan aksesnya.

Kebijakan autentikasi berbeda dari kebijakan berbasis identitas IAM. Kebijakan berbasis identitas IAM dilampirkan ke pengguna, grup, atau peran IAM dan menentukan tindakan apa yang dapat dilakukan identitas tersebut pada sumber daya mana. Kebijakan autentikasi dilampirkan ke layanan dan jaringan layanan. Agar otorisasi berhasil, kebijakan autentikasi dan kebijakan berbasis identitas harus memiliki pernyataan izin eksplisit. Untuk informasi selengkapnya, lihat Cara kerja otorisasi.

Anda dapat menggunakan AWS CLI dan konsol untuk melihat, menambah, memperbarui, atau menghapus kebijakan autentikasi pada layanan dan jaringan layanan. Saat menggunakan AWS CLI, ingatlah bahwa perintah Anda berjalan di Wilayah AWS konfigurasi untuk profil Anda. Jika Anda ingin menjalankan perintah di Wilayah yang berbeda, ubah Wilayah default untuk profil Anda, atau gunakan parameter --region bersama perintah tersebut.

Untuk memulai kebijakan autentikasi, ikuti prosedur untuk membuat kebijakan autentikasi yang berlaku untuk jaringan layanan. Untuk izin yang lebih ketat yang tidak ingin diterapkan ke layanan lain, Anda dapat secara opsional menetapkan kebijakan autentikasi pada layanan individual.

AWS CLI Tugas berikut menunjukkan cara mengelola akses ke jaringan layanan menggunakan kebijakan autentikasi. Untuk petunjuk yang menggunakan konsol, lihatJaringan layanan di VPC Lattice.

Menambahkan kebijakan autentikasi ke jaringan layanan

Ikuti langkah-langkah di bagian ini untuk menggunakan AWS CLI to:

  • Aktifkan kontrol akses pada jaringan layanan menggunakan IAM.

  • Tambahkan kebijakan autentikasi ke jaringan layanan. Jika Anda tidak menambahkan kebijakan autentikasi, semua lalu lintas akan mendapatkan kesalahan akses ditolak.

Untuk mengaktifkan kontrol akses dan menambahkan kebijakan autentikasi ke jaringan layanan baru
  1. Untuk mengaktifkan kontrol akses pada jaringan layanan sehingga dapat menggunakan kebijakan autentikasi, gunakan create-service-network perintah dengan --auth-type opsi dan nilaiAWS_IAM.

    aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Jika berhasil, perintah mengembalikan output yang serupa dengan berikut.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Gunakan put-auth-policy perintah, tentukan ID jaringan layanan tempat Anda ingin menambahkan kebijakan autentikasi dan kebijakan autentikasi yang ingin Anda tambahkan.

    Misalnya, gunakan perintah berikut untuk membuat kebijakan autentikasi untuk jaringan layanan dengan ID sn-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Gunakan JSON untuk membuat definisi kebijakan. Untuk informasi selengkapnya, lihat Elemen umum dalam kebijakan autentikasi.

    Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut ini.

    { "policy": "policy", "state": "Active" }
Untuk mengaktifkan kontrol akses dan menambahkan kebijakan autentikasi ke jaringan layanan yang ada
  1. Untuk mengaktifkan kontrol akses pada jaringan layanan sehingga dapat menggunakan kebijakan autentikasi, gunakan update-service-network perintah dengan --auth-type opsi dan nilaiAWS_IAM.

    aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM

    Jika berhasil, perintah mengembalikan output yang serupa dengan berikut.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Gunakan put-auth-policy perintah, tentukan ID jaringan layanan tempat Anda ingin menambahkan kebijakan autentikasi dan kebijakan autentikasi yang ingin Anda tambahkan.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Gunakan JSON untuk membuat definisi kebijakan. Untuk informasi selengkapnya, lihat Elemen umum dalam kebijakan autentikasi.

    Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut ini.

    { "policy": "policy", "state": "Active" }

Mengubah jenis autentikasi jaringan layanan

Untuk menonaktifkan kebijakan autentikasi untuk jaringan layanan

Gunakan update-service-network perintah dengan --auth-type opsi dan nilaiNONE.

aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE

Jika Anda perlu mengaktifkan kebijakan autentikasi lagi nanti, jalankan perintah ini dengan AWS_IAM ditentukan untuk --auth-type opsi.

Menghapus kebijakan autentikasi dari jaringan layanan

Untuk menghapus kebijakan autentikasi dari jaringan layanan

Gunakan perintah delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0

Permintaan gagal jika Anda menghapus kebijakan autentikasi sebelum mengubah jenis autentikasi jaringan layanan menjadi. NONE

AWS CLI Tugas berikut menunjukkan cara mengelola akses ke layanan menggunakan kebijakan autentikasi. Untuk petunjuk yang menggunakan konsol, lihatLayanan di VPC Lattice.

Menambahkan kebijakan autentikasi ke layanan

Ikuti langkah-langkah ini untuk menggunakan AWS CLI untuk:

  • Aktifkan kontrol akses pada layanan menggunakan IAM.

  • Tambahkan kebijakan autentikasi ke layanan. Jika Anda tidak menambahkan kebijakan autentikasi, semua lalu lintas akan mendapatkan kesalahan akses ditolak.

Untuk mengaktifkan kontrol akses dan menambahkan kebijakan autentikasi ke layanan baru
  1. Untuk mengaktifkan kontrol akses pada layanan sehingga dapat menggunakan kebijakan autentikasi, gunakan create-service perintah dengan --auth-type opsi dan nilaiAWS_IAM.

    aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Jika berhasil, perintah mengembalikan output yang serupa dengan berikut.

    { "arn": "arn", "authType": "AWS_IAM", "dnsEntry": { ... }, "id": "svc-0123456789abcdef0", "name": "Name", "status": "CREATE_IN_PROGRESS" }
  2. Gunakan put-auth-policy perintah, tentukan ID layanan tempat Anda ingin menambahkan kebijakan autentikasi dan kebijakan autentikasi yang ingin Anda tambahkan.

    Misalnya, gunakan perintah berikut untuk membuat kebijakan autentikasi untuk layanan dengan ID svc-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Gunakan JSON untuk membuat definisi kebijakan. Untuk informasi selengkapnya, lihat Elemen umum dalam kebijakan autentikasi.

    Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut ini.

    { "policy": "policy", "state": "Active" }
Untuk mengaktifkan kontrol akses dan menambahkan kebijakan autentikasi ke layanan yang ada
  1. Untuk mengaktifkan kontrol akses pada layanan sehingga dapat menggunakan kebijakan autentikasi, gunakan update-service perintah dengan --auth-type opsi dan nilaiAWS_IAM.

    aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM

    Jika berhasil, perintah mengembalikan output yang serupa dengan berikut.

    { "arn": "arn", "authType": "AWS_IAM", "id": "svc-0123456789abcdef0", "name": "Name" }
  2. Gunakan put-auth-policy perintah, tentukan ID layanan tempat Anda ingin menambahkan kebijakan autentikasi dan kebijakan autentikasi yang ingin Anda tambahkan.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Gunakan JSON untuk membuat definisi kebijakan. Untuk informasi selengkapnya, lihat Elemen umum dalam kebijakan autentikasi.

    Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut ini.

    { "policy": "policy", "state": "Active" }

Mengubah jenis autentikasi layanan

Untuk menonaktifkan kebijakan autentikasi untuk layanan

Gunakan update-service perintah dengan --auth-type opsi dan nilaiNONE.

aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE

Jika Anda perlu mengaktifkan kebijakan autentikasi lagi nanti, jalankan perintah ini dengan AWS_IAM ditentukan untuk --auth-type opsi.

Menghapus kebijakan autentikasi dari layanan

Untuk menghapus kebijakan autentikasi dari layanan

Gunakan perintah delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0

Permintaan gagal jika Anda menghapus kebijakan autentikasi sebelum mengubah jenis autentikasi layanan menjadi. NONE

Jika Anda mengaktifkan kebijakan autentikasi yang memerlukan permintaan terautentikasi ke layanan, permintaan apa pun ke layanan tersebut harus berisi tanda tangan permintaan yang valid yang dihitung menggunakan Sigv4 (SigV4). Untuk informasi selengkapnya, lihat Permintaan yang diautentikasi SiGv4 untuk Amazon VPC Lattice.

Elemen umum dalam kebijakan autentikasi

Kebijakan autentikasi VPC Lattice ditentukan menggunakan sintaks yang sama dengan kebijakan IAM. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas dan kebijakan berbasis sumber daya di Panduan Pengguna IAM.

Kebijakan autentikasi berisi elemen-elemen berikut:

  • Kepala Sekolah — Orang atau aplikasi yang diizinkan mengakses tindakan dan sumber daya dalam pernyataan. Dalam kebijakan autentikasi, prinsipal adalah entitas IAM yang merupakan penerima izin ini. Prinsipal diautentikasi sebagai entitas IAM untuk membuat permintaan ke sumber daya tertentu, atau kelompok sumber daya seperti dalam kasus layanan dalam jaringan layanan.

    Anda harus menentukan prinsipal dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau layanan. AWS Untuk informasi selengkapnya, lihat elemen kebijakan AWS JSON: Principal dalam Panduan Pengguna IAM.

  • Efek — Efek ketika prinsipal yang ditentukan meminta tindakan spesifik. Ini bisa salah satu Allow atauDeny. Secara default, ketika Anda mengaktifkan kontrol akses pada layanan atau jaringan layanan menggunakan IAM, prinsipal tidak memiliki izin untuk membuat permintaan ke jaringan layanan atau layanan.

  • Tindakan — Tindakan API spesifik yang Anda berikan atau tolak izinnya. VPC Lattice mendukung tindakan yang menggunakan awalan. vpc-lattice-svcs Untuk informasi selengkapnya, lihat Tindakan yang ditentukan oleh Amazon VPC Lattice Services di Referensi Otorisasi Layanan.

  • Sumber Daya — Layanan yang dipengaruhi oleh tindakan.

  • Kondisi - Kondisi bersifat opsional. Anda dapat menggunakannya untuk mengontrol kapan kebijakan Anda berlaku. Untuk informasi selengkapnya, lihat Kunci kondisi untuk Layanan Kisi VPC Amazon di Referensi Otorisasi Layanan.

Saat Anda membuat dan mengelola kebijakan autentikasi, Anda mungkin ingin menggunakan IAM Policy Generator.

Persyaratan

Kebijakan di JSON tidak boleh berisi baris baru atau baris kosong.

Format sumber daya untuk kebijakan autentikasi

Anda dapat membatasi akses ke sumber daya tertentu dengan membuat kebijakan autentikasi yang menggunakan skema yang cocok dengan <serviceARN>/<path> pola dan kode Resource elemen seperti yang ditunjukkan pada contoh berikut.

Contoh sumber daya untuk kebijakan autentikasi
Protokol Contoh
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

gRPC
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/GetRates"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/*"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/*"

Gunakan format sumber daya Amazon Resource Name (ARN) berikut untuk: <serviceARN>

arn:aws:vpc-lattice:region:account-id:service/service-id

Sebagai contoh:

"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"

Kunci kondisi yang dapat digunakan dalam kebijakan autentikasi

Akses dapat dikontrol lebih lanjut oleh kunci kondisi dalam elemen Kondisi kebijakan autentikasi. Kunci kondisi ini hadir untuk evaluasi tergantung pada protokol dan apakah permintaan ditandatangani dengan Signature Version 4 (SigV4) atau anonim. Kunci kondisi peka huruf besar/kecil.

AWS menyediakan kunci kondisi global yang dapat Anda gunakan untuk mengontrol akses, seperti aws:PrincipalOrgID danaws:SourceIp. Untuk melihat daftar kunci kondisi AWS global, lihat kunci konteks kondisi AWS global di Panduan Pengguna IAM.

Kisah berikut mencantumkan kunci kondisi VPC Lattice. Untuk informasi selengkapnya, lihat Kunci kondisi untuk Layanan Kisi VPC Amazon di Referensi Otorisasi Layanan.

Kunci kondisi untuk kebijakan autentikasi
Kunci syarat Deskripsi Contoh Tersedia untuk penelepon anonim (tidak diautentikasi)? Tersedia untuk gRPC?
vpc-lattice-svcs:Port Memfilter akses oleh port layanan permintaan dibuat 80 Ya Ya
vpc-lattice-svcs:RequestMethod Memfilter akses dengan metode permintaan GET Ya Selalu POST
vpc-lattice-svcs:RequestHeader/header-name: value Memfilter akses dengan pasangan nama-nilai header di header permintaan content-type: application/json Ya Ya
vpc-lattice-svcs:RequestQueryString/key-name: value Memfilter akses dengan pasangan nilai kunci string kueri di URL permintaan quux: [corge, grault] Ya Tidak
vpc-lattice-svcs:ServiceNetworkArn Memfilter akses oleh ARN dari jaringan layanan layanan yang menerima permintaan arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0 Ya Ya
vpc-lattice-svcs:ServiceArn Memfilter akses oleh ARN dari layanan yang menerima permintaan arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0 Ya Ya
vpc-lattice-svcs:SourceVpc Memfilter akses oleh VPC permintaan dibuat dari vpc-1a2b3c4d Ya Ya
vpc-lattice-svcs:SourceVpcOwnerAccount Memfilter akses oleh akun pemilik VPC permintaan dibuat dari 123456789012 Ya Ya

Prinsipal anonim (tidak diautentikasi)

Prinsipal anonim adalah penelepon yang tidak menandatangani AWS permintaan mereka dengan Signature Version 4 (SigV4), dan berada dalam VPC yang terhubung ke jaringan layanan. Prinsipal anonim dapat membuat permintaan yang tidak diautentikasi ke layanan di jaringan layanan jika kebijakan autentikasi mengizinkannya.

Contoh kebijakan autentikasi

Berikut ini adalah contoh kebijakan autentikasi yang mengharuskan permintaan dibuat oleh prinsipal yang diautentikasi.

Semua contoh menggunakan us-west-2 Wilayah dan berisi ID akun fiktif.

Contoh 1: Batasi akses ke layanan oleh organisasi tertentu AWS

Contoh kebijakan autentikasi berikut memberikan izin untuk setiap permintaan yang diautentikasi untuk mengakses layanan apa pun di jaringan layanan tempat kebijakan tersebut berlaku. Namun, permintaan harus berasal dari kepala sekolah yang termasuk dalam AWS organisasi yang ditentukan dalam kondisi.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-123456example" ] } } } ] }
Contoh 2: Batasi akses ke layanan dengan peran IAM tertentu

Contoh kebijakan autentikasi berikut memberikan izin untuk setiap permintaan yang diautentikasi yang menggunakan peran IAM rates-client untuk membuat permintaan HTTP GET pada layanan yang ditentukan dalam elemen. Resource Sumber daya dalam Resource elemen sama dengan layanan yang dilampirkan kebijakan tersebut.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/rates-client" ] }, "Action": "vpc-lattice-svcs:Invoke", "Resource": [ "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*" ], "Condition": { "StringEquals": { "vpc-lattice-svcs:RequestMethod": "GET" } } } ] }
Contoh 3: Batasi akses ke layanan oleh prinsipal yang diautentikasi di VPC tertentu

Contoh kebijakan autentikasi berikut hanya mengizinkan permintaan yang diautentikasi dari prinsipal di VPC yang ID VPC-nya. vpc-1a2b3c4d

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalType": "Anonymous" }, "StringEquals": { "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d" } } } ] }

Cara kerja otorisasi

Ketika layanan VPC Lattice menerima permintaan, kode AWS penegakan akan mengevaluasi semua kebijakan izin yang relevan secara bersamaan untuk menentukan apakah akan mengotorisasi atau menolak permintaan tersebut. Ini mengevaluasi semua kebijakan berbasis identitas IAM dan kebijakan autentikasi yang berlaku dalam konteks permintaan selama otorisasi. Secara default, semua permintaan ditolak secara implisit saat jenis autentikasi. AWS_IAM Izin eksplisit dari semua kebijakan yang relevan akan mengesampingkan default.

Otorisasi meliputi:

  • Mengumpulkan semua kebijakan dan kebijakan autentikasi berbasis identitas IAM yang relevan.

  • Mengevaluasi serangkaian kebijakan yang dihasilkan:

    • Memverifikasi bahwa pemohon (seperti pengguna atau peran IAM) memiliki izin untuk melakukan operasi dari akun tempat pemohon berada. Jika tidak ada pernyataan izin eksplisit, AWS tidak mengotorisasi permintaan.

    • Memverifikasi bahwa permintaan diizinkan oleh kebijakan autentikasi untuk jaringan layanan. Jika kebijakan autentikasi diaktifkan, tetapi tidak ada pernyataan izin eksplisit, AWS tidak mengotorisasi permintaan. Jika ada pernyataan allow eksplisit, atau tipe autentikasiNONE, kode akan berlanjut.

    • Memverifikasi bahwa permintaan diizinkan oleh kebijakan autentikasi untuk layanan. Jika kebijakan autentikasi diaktifkan, tetapi tidak ada pernyataan izin eksplisit, AWS tidak mengotorisasi permintaan. Jika ada pernyataan allow eksplisit, atau tipe autentikasiNONE, maka kode penegakan mengembalikan keputusan akhir Izinkan.

    • Penolakan secara tegas dalam kebijakan apa pun akan mengesampingkan izin apa pun.

Diagram menunjukkan alur kerja otorisasi. Ketika permintaan dibuat, kebijakan yang relevan mengizinkan atau menolak akses permintaan ke layanan tertentu.

Alur kerja otorisasi