

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

# Keamanan di Amazon VPC Lattice
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menjelaskan hal ini sebagai keamanan *dari* cloud dan keamanan *dalam* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku untuk Amazon VPC Lattice, lihat [AWS Layanan dalam Lingkup menurut Program Kepatuhan dalam Lingkup oleh Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/).
+ **Keamanan di cloud** — Anda bertanggung jawab untuk menjaga kontrol atas konten Anda yang di-host di infrastruktur ini. Anda juga bertanggung jawab atas faktor lain, yang mencakup sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku. 

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan VPC Lattice. Topik berikut menunjukkan cara mengonfigurasi Kisi VPC untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga mempelajari cara menggunakan AWS layanan lain, yang membantu Anda memantau dan mengamankan layanan VPC Lattice, jaringan layanan, dan konfigurasi sumber daya Anda.

**Topics**
+ [Mengelola akses ke layanan VPC Lattice](access-management-overview.md)
+ [Perlindungan data di Amazon VPC Lattice](data-protection.md)
+ [Manajemen identitas dan akses untuk Amazon VPC Lattice](security-iam.md)
+ [Validasi kepatuhan untuk Amazon VPC Lattice](compliance-validation.md)
+ [Akses Amazon VPC Lattice menggunakan titik akhir antarmuka ()AWS PrivateLink](vpc-interface-endpoints.md)
+ [Ketahanan di Amazon VPC Lattice](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di Amazon VPC Lattice](infrastructure-security.md)

# Mengelola akses ke layanan VPC Lattice
<a name="access-management-overview"></a>

VPC Lattice aman secara default karena Anda harus eksplisit tentang layanan dan konfigurasi sumber daya untuk menyediakan akses ke dan yang dengannya. VPCs Anda dapat mengakses layanan melalui asosiasi VPC atau titik akhir VPC dari jaringan layanan tipe. Untuk skenario multi-akun, Anda dapat menggunakan [AWS Resource Access Manager](sharing.md)untuk berbagi layanan, konfigurasi sumber daya, dan jaringan layanan di seluruh batas akun.

 VPC Lattice menyediakan kerangka kerja yang memungkinkan Anda menerapkan defense-in-depth strategi di beberapa lapisan jaringan.
+ **Lapisan pertama** — Asosiasi titik akhir layanan, sumber daya, VPC, dan VPC dengan jaringan layanan. VPC dapat terhubung ke jaringan layanan baik melalui asosiasi atau melalui titik akhir VPC. Jika VPC tidak terhubung ke jaringan layanan, klien di VPC tidak dapat mengakses konfigurasi layanan dan sumber daya yang terkait dengan jaringan layanan.
+ **Lapisan kedua** — Perlindungan keamanan tingkat jaringan opsional untuk jaringan layanan, seperti grup keamanan dan jaringan. ACLs Dengan menggunakan ini, Anda dapat mengizinkan akses ke grup klien tertentu dalam VPC, bukan semua klien di VPC.
+ **Lapisan ketiga - Kebijakan** autentikasi VPC Lattice opsional. Anda dapat menerapkan kebijakan autentikasi ke jaringan layanan dan layanan individual. Biasanya, kebijakan autentikasi pada jaringan layanan dioperasikan oleh administrator jaringan atau cloud, dan mereka menerapkan otorisasi kasar. Misalnya, hanya mengizinkan permintaan yang diautentikasi dari organisasi tertentu di AWS Organizations. Untuk kebijakan autentikasi di tingkat layanan, biasanya pemilik layanan menetapkan kontrol berbutir halus, yang mungkin lebih ketat daripada otorisasi kasar yang diterapkan di tingkat jaringan layanan.
**catatan**  
Kebijakan autentikasi pada jaringan layanan tidak berlaku untuk konfigurasi sumber daya di jaringan layanan.

**Metode kontrol akses**
+ [Kebijakan autentikasi](auth-policies.md)
+ [Grup keamanan](security-groups.md)
+ [Jaringan ACLs](network-acls.md)

# Kontrol akses ke layanan VPC Lattice menggunakan kebijakan autentikasi
<a name="auth-policies"></a>

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 kontrol aksesnya.

**catatan**  
Kebijakan autentikasi pada jaringan layanan tidak berlaku untuk konfigurasi sumber daya di jaringan layanan.

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](#auth-policies-evaluation-logic).

Anda dapat menggunakan AWS CLI dan konsol untuk melihat, menambah, memperbarui, atau menghapus kebijakan autentikasi pada layanan dan jaringan layanan. Saat Anda menambahkan, memperbarui, atau menghapus kebijakan autentikasi, mungkin perlu beberapa menit untuk siap. Saat menggunakan AWS CLI, pastikan Anda berada di Wilayah yang benar. Anda dapat mengubah Wilayah default untuk profil Anda, atau menggunakan `--region` parameter dengan perintah.

**Topics**
+ [Elemen umum dalam kebijakan autentikasi](#auth-policies-common-elements)
+ [Format sumber daya untuk kebijakan autentikasi](#auth-policies-resource-format)
+ [Kunci kondisi yang dapat digunakan dalam kebijakan autentikasi](#auth-policies-condition-keys)
+ [Tag sumber daya](#resource-tags)
+ [Tag utama](#principal-tags)
+ [Prinsipal anonim (tidak diautentikasi)](#anonymous-unauthenticated-principals)
+ [Contoh kebijakan autentikasi](#example-auth-policies)
+ [Cara kerja otorisasi](#auth-policies-evaluation-logic)

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.

## Mengelola akses ke jaringan layanan dengan kebijakan autentikasi
<a name="manage-access-to-service-networks"></a>

 AWS CLI Tugas berikut menunjukkan cara mengelola akses ke jaringan layanan menggunakan kebijakan autentikasi. Untuk petunjuk yang menggunakan konsol, lihat[Jaringan layanan di VPC Lattice](service-networks.md).

**Topics**
+ [Menambahkan kebijakan autentikasi ke jaringan layanan](#add-service-network-auth-policy)
+ [Mengubah jenis autentikasi jaringan layanan](#change-service-network-auth-type)
+ [Menghapus kebijakan autentikasi dari jaringan layanan](#remove-service-network-auth-policy)

### Menambahkan kebijakan autentikasi ke jaringan layanan
<a name="add-service-network-auth-policy"></a>

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 nilai`AWS_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"
   }
   ```

1. 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](#auth-policies-common-elements).

   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 nilai`AWS_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"
   }
   ```

1. 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](#auth-policies-common-elements).

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

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

### Mengubah jenis autentikasi jaringan layanan
<a name="change-service-network-auth-type"></a>

**Untuk menonaktifkan kebijakan autentikasi untuk jaringan layanan**  
Gunakan **update-service-network** perintah dengan `--auth-type` opsi dan nilai`NONE`.

```
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
<a name="remove-service-network-auth-policy"></a>

**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`

## Mengelola akses ke layanan dengan kebijakan autentikasi
<a name="manage-access-to-services"></a>

 AWS CLI Tugas berikut menunjukkan cara mengelola akses ke layanan menggunakan kebijakan autentikasi. Untuk petunjuk yang menggunakan konsol, lihat[Layanan di VPC Lattice](services.md). 

**Topics**
+ [Menambahkan kebijakan autentikasi ke layanan](#add-service-auth-policy)
+ [Mengubah jenis autentikasi layanan](#change-service-auth-type)
+ [Menghapus kebijakan autentikasi dari layanan](#remove-service-auth-policy)

### Menambahkan kebijakan autentikasi ke layanan
<a name="add-service-auth-policy"></a>

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 nilai`AWS_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"
   }
   ```

1. 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](#auth-policies-common-elements).

   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 nilai`AWS_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"
   }
   ```

1. 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](#auth-policies-common-elements).

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

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

### Mengubah jenis autentikasi layanan
<a name="change-service-auth-type"></a>

**Untuk menonaktifkan kebijakan autentikasi untuk layanan**  
Gunakan **update-service** perintah dengan `--auth-type` opsi dan nilai`NONE`.

```
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
<a name="remove-service-auth-policy"></a>

**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 [SIGv4 permintaan yang diautentikasi untuk Amazon VPC Lattice](sigv4-authenticated-requests.md).

## Elemen umum dalam kebijakan autentikasi
<a name="auth-policies-common-elements"></a>

Kebijakan autentikasi VPC Lattice ditentukan menggunakan sintaks yang sama dengan kebijakan IAM. *Untuk informasi selengkapnya, lihat Kebijakan [berbasis identitas dan kebijakan berbasis sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) 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 principal 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam *Panduan Pengguna IAM*.
+ **Efek** — Efek ketika prinsipal yang ditentukan meminta tindakan spesifik. Ini bisa salah satu `Allow` atau`Deny`. 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-actions-as-permissions) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) di Referensi Otorisasi *Layanan*.

Saat Anda membuat dan mengelola kebijakan autentikasi, Anda mungkin ingin menggunakan [IAM Policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) Generator.

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

## Format sumber daya untuk kebijakan autentikasi
<a name="auth-policies-resource-format"></a>

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. 


| Protokol | Contoh | 
| --- | --- | 
| HTTP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/vpc-lattice/latest/ug/auth-policies.html)  | 
| gRPC |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/vpc-lattice/latest/ug/auth-policies.html)  | 

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

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

Contoh:

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

## Kunci kondisi yang dapat digunakan dalam kebijakan autentikasi
<a name="auth-policies-condition-keys"></a>

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)](sigv4-authenticated-requests.md) atau anonim. Kunci kondisi peka huruf besar/kecil.

AWS menyediakan kunci kondisi global yang dapat Anda gunakan untuk mengontrol akses, seperti `aws:PrincipalOrgID` dan`aws:SourceIp`. Untuk melihat daftar kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

Kisah berikut mencantumkan kunci kondisi VPC Lattice. Untuk informasi selengkapnya, lihat [Kunci kondisi untuk Layanan Kisi VPC Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclatticeservices.html#amazonvpclatticeservices-policy-keys) di Referensi Otorisasi *Layanan*.


| 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:RequestPath | Memfilter akses berdasarkan bagian jalur dari URL permintaan | /path | Ya | Ya | 
| 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 VPC yang memiliki permintaan dibuat | 123456789012 | Ya | Ya | 

## Tag sumber daya
<a name="resource-tags"></a>

*Tag* adalah label metadata yang Anda tetapkan atau yang ditetapkan ke sumber AWS daya. AWS Setiap tag memiliki dua bagian:
+ Sebuah *kunci tag* (misalnya, `CostCenter`, `Environment`, atau `Project`). Kunci tag peka huruf besar dan kecil.
+ Bidang opsional yang dikenal sebagai *nilai tag* (misalnya, `111122223333` atau `Production`). Mengabaikan nilai tag sama dengan menggunakan sebuah string kosong. Seperti kunci tag, nilai tag peka huruf besar/kecil.

Untuk informasi selengkapnya tentang penandaan, lihat [Mengontrol akses ke AWS sumber daya menggunakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) tag

Anda dapat menggunakan tag dalam kebijakan autentikasi menggunakan kunci konteks kondisi `aws:ResourceTag/key` AWS global.

Contoh kebijakan berikut memberikan akses ke layanan dengan tag`Environment=Gamma`. Kebijakan ini memungkinkan Anda merujuk ke layanan tanpa layanan hard‑coding atau. ARNs IDs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowGammaAccess",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0124446789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Environment": "Gamma",
        }
      }
    }
  ]
}
```

## Tag utama
<a name="principal-tags"></a>

Anda dapat mengontrol akses ke layanan dan sumber daya Anda berdasarkan tag yang dilampirkan pada identitas pemanggil. VPC Lattice mendukung kontrol akses berdasarkan tag utama apa pun pada tag pengguna, peran, atau sesi menggunakan variabel. `aws:PrincipalTag/context` Untuk informasi selengkapnya, lihat [Mengontrol akses untuk prinsipal IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html#access_iam-tags_control-principals).

Contoh kebijakan berikut memberikan akses hanya ke identitas dengan tag. `Team=Payments` Kebijakan ini memungkinkan Anda mengontrol akses tanpa akun IDs atau peran hardcoding. ARNs

```
{
  "Version": "2012-10-17", 		 	 	 		 	 	 
  "Statement": [
    {
      "Sid": "AllowPaymentsTeam",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "vpc-lattice-svcs:Invoke",
      "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/Team": "Payments",
        }
      }
    }
  ]
}
```

## Prinsipal anonim (tidak diautentikasi)
<a name="anonymous-unauthenticated-principals"></a>

Prinsipal anonim adalah penelepon yang tidak menandatangani AWS permintaan mereka dengan [Signature Version 4 (SigV4)](sigv4-authenticated-requests.md), 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
<a name="example-auth-policies"></a>

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

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

**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.

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

****  

```
{
   "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.

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

****  

```
{
   "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`

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

****  

```
{
   "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
<a name="auth-policies-evaluation-logic"></a>

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 autentikasi`NONE`, kode 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 autentikasi`NONE`, 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\]](http://docs.aws.amazon.com/id_id/vpc-lattice/latest/ug/images/authpolicy.png)


# Kontrol lalu lintas di VPC Lattice menggunakan grup keamanan
<a name="security-groups"></a>

AWS Kelompok keamanan bertindak sebagai firewall virtual, mengendalikan lalu lintas jaringan ke dan dari entitas yang terkait dengannya. Dengan VPC Lattice, Anda dapat membuat grup keamanan dan menetapkannya ke asosiasi VPC yang menghubungkan VPC ke jaringan layanan untuk menegakkan perlindungan keamanan tingkat jaringan tambahan untuk jaringan layanan Anda. Jika Anda menghubungkan VPC ke jaringan layanan menggunakan titik akhir VPC, Anda juga dapat menetapkan grup keamanan ke titik akhir VPC. Demikian pula Anda dapat menetapkan grup keamanan ke gateway sumber daya yang Anda buat untuk mengaktifkan akses ke sumber daya di VPC Anda.

**Topics**
+ [Daftar awalan terkelola](#managed-prefix-list)
+ [Aturan-aturan grup keamanan](#security-groups-rules)
+ [Mengelola grup keamanan untuk asosiasi VPC](#service-network-security-group)

## Daftar awalan terkelola
<a name="managed-prefix-list"></a>

VPC Lattice menyediakan daftar awalan terkelola yang menyertakan alamat IP yang digunakan untuk merutekan lalu lintas melalui jaringan VPC Lattice saat Anda menggunakan asosiasi jaringan layanan untuk menghubungkan VPC Anda ke jaringan layanan menggunakan asosiasi VPC. Ini IPs adalah tautan pribadi-lokal IPs atau publik yang tidak dapat dirutekan. IPs

 Anda dapat mereferensikan daftar awalan terkelola VPC Lattice dalam aturan grup keamanan Anda. Hal ini memungkinkan lalu lintas mengalir dari klien, melalui jaringan layanan VPC Lattice, dan ke target layanan VPC Lattice.

Misalnya, Anda memiliki instans EC2 yang terdaftar sebagai target di Wilayah Barat AS (Oregon) (`us-west-2`). Anda dapat menambahkan aturan ke grup keamanan instans yang mengizinkan akses HTTPS masuk dari daftar awalan terkelola VPC Lattice, sehingga lalu lintas VPC Lattice di Wilayah ini dapat mencapai instance. Jika Anda menghapus semua aturan masuk lainnya dari grup keamanan, Anda dapat mencegah lalu lintas apa pun selain lalu lintas VPC Lattice mencapai instans.

Nama-nama daftar awalan terkelola untuk VPC Lattice adalah sebagai berikut:
+ com.amazonaws. *region*.vpc-kisi
+ com.amazonaws. *region*.ipv6.vpc-kisi

Untuk informasi selengkapnya, lihat [daftar awalan AWS-terkelola](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) di Panduan Pengguna Amazon *VPC*.

**Klien Windows dan macOS**  
Alamat dalam daftar awalan VPC Lattice adalah alamat link-local dan alamat publik yang tidak dapat dirutekan. Jika Anda terhubung ke VPC Lattice dari klien ini, Anda harus memperbarui konfigurasi mereka sehingga meneruskan alamat IP dalam daftar awalan terkelola ke alamat IP utama untuk klien. Berikut ini adalah contoh perintah yang memperbarui konfigurasi klien Windows, di mana 169.254.171.0 salah satu alamat dalam daftar awalan terkelola. 

```
C:\> route add 169.254.171.0 mask 255.255.255.0 primary-ip-address
```

Berikut ini adalah contoh perintah yang memperbarui konfigurasi klien macOS, di mana 169.254.171.0 salah satu alamat dalam daftar awalan terkelola. 

```
sudo route -n add -net 169.254.171.0 primary-ip-address 255.255.255.0
```

Untuk menghindari pembuatan rute statis, kami sarankan Anda menggunakan titik akhir jaringan layanan di VPC untuk membangun konektivitas. Untuk informasi selengkapnya, lihat [Kelola asosiasi titik akhir VPC jaringan layanan](service-network-associations.md#service-network-vpc-endpoint-associations).

## Aturan-aturan grup keamanan
<a name="security-groups-rules"></a>

Menggunakan VPC Lattice dengan atau tanpa grup keamanan tidak akan memengaruhi konfigurasi grup keamanan VPC Anda yang ada. Namun, Anda dapat menambahkan grup keamanan Anda sendiri kapan saja.

**Pertimbangan utama**
+ Aturan grup keamanan untuk klien mengontrol lalu lintas keluar ke VPC Lattice. 
+ Aturan grup keamanan untuk target mengontrol lalu lintas masuk dari Kisi VPC ke target, termasuk lalu lintas pemeriksaan kesehatan. 
+ Aturan grup keamanan untuk hubungan antara jaringan layanan dan kontrol VPC yang klien dapat mengakses jaringan layanan VPC Lattice.
+ Aturan grup keamanan untuk gateway sumber daya mengontrol lalu lintas keluar dari gateway sumber daya ke sumber daya.

**Aturan keluar yang disarankan untuk lalu lintas yang mengalir dari gateway sumber daya ke sumber daya database**  
Agar lalu lintas mengalir dari gateway sumber daya ke sumber daya, Anda harus membuat aturan keluar untuk port terbuka dan protokol pendengar yang diterima untuk sumber daya.


| Destinasi | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| CIDR range for resource | TCP | 3306 | Izinkan lalu lintas dari gateway sumber daya ke database | 

**Aturan masuk yang direkomendasikan untuk jaringan layanan dan asosiasi VPC**  
Agar lalu lintas mengalir dari klien VPCs ke layanan yang terkait dengan jaringan layanan, Anda harus membuat aturan masuk untuk port pendengar dan protokol pendengar untuk layanan.


| Sumber | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| VPC CIDR | listener | listener | Izinkan lalu lintas dari klien ke VPC Lattice | 

**Aturan keluar yang disarankan untuk lalu lintas yang mengalir dari instance klien ke VPC Lattice**  
Secara default, grup keamanan mengizinkan semua lalu lintas ke luar. Namun, jika Anda memiliki aturan keluar khusus, Anda harus mengizinkan lalu lintas keluar ke awalan VPC Lattice untuk port dan protokol pendengar sehingga instance klien dapat terhubung ke semua layanan yang terkait dengan jaringan layanan VPC Lattice. Anda dapat mengizinkan lalu lintas ini dengan mereferensikan ID daftar awalan untuk VPC Lattice.


| Destinasi | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | listener | listener | Izinkan lalu lintas dari klien ke VPC Lattice | 

**Aturan masuk yang direkomendasikan untuk lalu lintas yang mengalir dari VPC Lattice ke instance target**  
Anda tidak dapat menggunakan grup keamanan klien sebagai sumber untuk grup keamanan target Anda, karena lalu lintas mengalir dari VPC Lattice. Anda dapat mereferensikan ID daftar awalan untuk VPC Lattice.


| Sumber | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| ID of the VPC Lattice prefix list | target | target | Izinkan lalu lintas dari VPC Lattice ke target | 
| ID of the VPC Lattice prefix list | health check | health check | Izinkan lalu lintas pemeriksaan kesehatan dari VPC Lattice ke target | 

## Mengelola grup keamanan untuk asosiasi VPC
<a name="service-network-security-group"></a>

Anda dapat menggunakan AWS CLI untuk melihat, menambah, atau memperbarui grup keamanan di VPC ke asosiasi 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.

Sebelum Anda mulai, konfirmasikan bahwa Anda telah membuat grup keamanan di VPC yang sama dengan VPC yang ingin Anda tambahkan ke jaringan layanan. Untuk informasi selengkapnya, lihat [Mengontrol lalu lintas ke sumber daya Anda menggunakan grup keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) di *Panduan Pengguna Amazon VPC*

**Untuk menambahkan grup keamanan saat Anda membuat asosiasi VPC menggunakan konsol**

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. **Di panel navigasi, di bawah **VPC** Lattice, pilih Jaringan layanan.**

1. Pilih nama jaringan layanan untuk membuka halaman detailnya.

1. **Pada tab **asosiasi VPC, pilih Buat asosiasi** **VPC lalu pilih Tambahkan asosiasi** VPC.**

1. Pilih VPC dan hingga lima grup keamanan.

1. Pilih **Simpan perubahan**.

**Untuk menambah atau memperbarui grup keamanan untuk asosiasi VPC yang ada menggunakan konsol**

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. **Di panel navigasi, di bawah **VPC** Lattice, pilih Jaringan layanan.**

1. Pilih nama jaringan layanan untuk membuka halaman detailnya.

1. Pada tab **Asosiasi VPC**, pilih kotak centang untuk asosiasi, lalu pilih **Tindakan**, **Edit grup keamanan**.

1. Tambahkan dan hapus grup keamanan sesuai kebutuhan.

1. Pilih **Simpan perubahan**.

**Untuk menambahkan grup keamanan saat Anda membuat asosiasi VPC menggunakan AWS CLI**  
Gunakan perintah [create-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-service-network-vpc-association.html), tentukan ID VPC untuk asosiasi VPC dan ID grup keamanan yang akan ditambahkan.

```
aws vpc-lattice create-service-network-vpc-association \
    --service-network-identifier sn-0123456789abcdef0 \
    --vpc-identifier vpc-1a2b3c4d \
    --security-group-ids sg-7c2270198example
```

Jika berhasil, perintah mengembalikan output yang serupa dengan berikut.

```
{
  "arn": "arn",
  "createdBy": "464296918874",
  "id": "snva-0123456789abcdef0",
  "status": "CREATE_IN_PROGRESS",
  "securityGroupIds": ["sg-7c2270198example"]
}
```

**Untuk menambah atau memperbarui grup keamanan untuk asosiasi VPC yang ada menggunakan AWS CLI**  
Gunakan perintah [update-service-network-vpc-association](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/update-service-network-vpc-association.html), tentukan ID jaringan layanan dan grup IDs keamanan. Grup keamanan ini mengesampingkan grup keamanan yang sebelumnya terkait. Tentukan setidaknya satu grup keamanan saat memperbarui daftar.

```
aws vpc-lattice update-service-network-vpc-association 
    --service-network-vpc-association-identifier sn-903004f88example \
    --security-group-ids sg-7c2270198example sg-903004f88example
```

**Awas**  
Anda tidak dapat menghapus semua grup keamanan. Sebagai gantinya, Anda harus terlebih dahulu menghapus asosiasi VPC, dan kemudian membuat ulang asosiasi VPC tanpa grup keamanan apa pun. Berhati-hatilah saat menghapus asosiasi VPC. Ini mencegah lalu lintas mencapai layanan yang ada di jaringan layanan itu.

# Kontrol lalu lintas ke VPC Lattice menggunakan jaringan ACLs
<a name="network-acls"></a>

Network Access Control List (ACL) memungkinkan atau menolak lalu lintas masuk atau keluar tertentu di tingkat subnet. ACL jaringan default memungkinkan semua lalu lintas masuk dan keluar. Anda dapat membuat jaringan khusus ACLs untuk subnet Anda untuk memberikan lapisan keamanan tambahan. Untuk informasi selengkapnya, lihat [ ACLs Jaringan](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) dalam *Panduan Pengguna Amazon VPC*.

**Topics**
+ [Jaringan ACLs untuk subnet klien Anda](#network-acl-client-subnets)
+ [Jaringan ACLs untuk subnet target Anda](#network-acl-target-subnets)

## Jaringan ACLs untuk subnet klien Anda
<a name="network-acl-client-subnets"></a>

Jaringan ACLs untuk subnet klien harus memungkinkan lalu lintas antara klien dan VPC Lattice. Anda bisa mendapatkan rentang alamat IP untuk mengizinkan dari [daftar awalan terkelola](security-groups.md#managed-prefix-list) untuk VPC Lattice.

Berikut ini adalah contoh aturan inbound.


| Sumber | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | TCP | 1025-65535 | Izinkan lalu lintas dari VPC Lattice ke klien | 

Berikut ini adalah contoh aturan outbound.


| Destinasi | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | listener | listener | Izinkan lalu lintas dari klien ke VPC Lattice | 

## Jaringan ACLs untuk subnet target Anda
<a name="network-acl-target-subnets"></a>

Jaringan ACLs untuk subnet target harus memungkinkan lalu lintas antara target dan Kisi VPC pada port target dan port pemeriksaan kesehatan. Anda bisa mendapatkan rentang alamat IP untuk mengizinkan dari [daftar awalan terkelola](security-groups.md#managed-prefix-list) untuk VPC Lattice.

Berikut ini adalah contoh aturan inbound.


| Sumber | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | target | Izinkan lalu lintas dari VPC Lattice ke target | 
| vpc\$1lattice\$1cidr\$1block | health check | health check | Izinkan lalu lintas pemeriksaan kesehatan dari VPC Lattice ke target | 

Berikut ini adalah contoh aturan outbound.


| Destinasi | Protokol | Rentang port | Komentar | 
| --- | --- | --- | --- | 
| vpc\$1lattice\$1cidr\$1block | target | 1024-65535 | Izinkan lalu lintas dari target ke VPC Lattice | 
| vpc\$1lattice\$1cidr\$1block | health check | 1024-65535 | Izinkan lalu lintas pemeriksaan kesehatan dari target ke VPC Lattice | 

# SIGv4 permintaan yang diautentikasi untuk Amazon VPC Lattice
<a name="sigv4-authenticated-requests"></a>

VPC Lattice menggunakan Signature Version 4 (SIGv4) atau Signature Version 4A (SIGv4A) untuk otentikasi klien. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

**Pertimbangan-pertimbangan**
+ VPC Lattice mencoba untuk mengautentikasi permintaan apa pun yang ditandatangani dengan atau A. SIGv4 SIGv4 Permintaan gagal tanpa otentikasi.
+ VPC Lattice tidak mendukung penandatanganan payload. Anda harus mengirim `x-amz-content-sha256` header dengan nilai yang disetel ke`"UNSIGNED-PAYLOAD"`.

**Topics**
+ [Python](#sigv4-authenticated-requests-python)
+ [Java](#sigv4-authenticated-requests-java-custom-interceptor)
+ [Node.js](#sigv4-authenticated-requests-nodejs)
+ [Golang](#sigv4-authenticated-requests-golang)
+ [Golang - GRPC](#sigv4-authenticated-requests-golang-grpc)

## Python
<a name="sigv4-authenticated-requests-python"></a>

Contoh ini mengirimkan permintaan yang ditandatangani melalui koneksi aman ke layanan yang terdaftar di jaringan. Jika Anda lebih suka menggunakan [permintaan](https://requests.readthedocs.io/en/latest/), paket [botocore](https://github.com/boto/botocore) menyederhanakan proses otentikasi, tetapi tidak sepenuhnya diperlukan. Untuk informasi selengkapnya, lihat [Kredensyal](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) dalam dokumentasi Boto3.

Untuk menginstal `botocore` dan `awscrt` paket, gunakan perintah berikut. Untuk informasi lebih lanjut, lihat [AWS CRT Python](https://pypi.org/project/awscrt/).

```
pip install botocore awscrt
```

Jika Anda menjalankan aplikasi klien di Lambda, instal modul yang diperlukan menggunakan [lapisan Lambda](https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html), atau sertakan dalam paket penyebaran Anda.

Dalam contoh berikut, ganti nilai placeholder dengan nilai Anda sendiri.

------
#### [ SIGv4 ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4Auth(session.get_credentials(), 'vpc-lattice-svcs', 'us-west-2')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------
#### [ SIGv4A ]

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
import botocore.session

if __name__ == '__main__':
    session = botocore.session.Session()
    signer = crt.auth.CrtSigV4AsymAuth(session.get_credentials(), 'vpc-lattice-svcs', '*')
    endpoint = 'https://data-svc-022f67d3a42.1234abc.vpc-lattice-svcs.us-west-2.on.aws'
    data = "some-data-here"
    headers = {'Content-Type': 'application/json', 'x-amz-content-sha256': 'UNSIGNED-PAYLOAD'}
    request = AWSRequest(method='POST', url=endpoint, data=data, headers=headers)
    request.context["payload_signing_enabled"] = False 
    signer.add_auth(request)
    
    prepped = request.prepare()
    
    response = requests.post(prepped.url, headers=prepped.headers, data=data)
    print(response.text)
```

------

## Java
<a name="sigv4-authenticated-requests-java-custom-interceptor"></a>

Contoh ini menunjukkan bagaimana Anda dapat melakukan penandatanganan permintaan dengan menggunakan pencegat khusus. Ini menggunakan kelas penyedia kredensyal default dari [AWS SDK for Java 2.x](https://github.com/aws/aws-sdk-java-v2), yang mendapatkan kredensyal yang benar untuk Anda. Jika Anda lebih suka menggunakan penyedia kredensi tertentu, Anda dapat memilih salah satu dari. [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html) Hanya AWS SDK untuk Java memungkinkan muatan yang tidak ditandatangani melalui HTTPS. Namun, Anda dapat memperpanjang penandatangan untuk mendukung muatan yang tidak ditandatangani melalui HTTP.

------
#### [ SIGv4 ]

```
package com.example;

import software.amazon.awssdk.http.auth.aws.signer.AwsV4HttpSigner;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4 {

    public static void main(String[] args) {
        AwsV4HttpSigner signer = AwsV4HttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <region>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4HttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4HttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4HttpSigner.REGION_NAME, args[1]));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }

    }
}
```

------
#### [ SIGv4A ]

Contoh ini membutuhkan ketergantungan tambahan pada`software.amazon.awssdk:http-auth-aws-crt`.

```
package com.example;


import software.amazon.awssdk.http.auth.aws.signer.AwsV4aHttpSigner;
import software.amazon.awssdk.http.auth.aws.signer.RegionSet;
import software.amazon.awssdk.http.auth.spi.signer.SignedRequest;

import software.amazon.awssdk.http.SdkHttpMethod;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
import software.amazon.awssdk.http.SdkHttpRequest;
import software.amazon.awssdk.http.apache.ApacheHttpClient;
import software.amazon.awssdk.http.HttpExecuteRequest;
import software.amazon.awssdk.http.HttpExecuteResponse;
import java.io.IOException;
import java.net.URI;
import java.util.Arrays;

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;

public class sigv4a {
    
    public static void main(String[] args) {
        AwsV4aHttpSigner signer = AwsV4aHttpSigner.create();

        AwsCredentialsIdentity credentials = DefaultCredentialsProvider.create().resolveCredentials();

        if (args.length < 2) {
            System.out.println("Usage: sample <url> <regionset>");
            System.exit(1);
        }
        // Create the HTTP request to be signed
        var url = args[0];
        SdkHttpRequest httpRequest = SdkHttpRequest.builder()
                .uri(URI.create(url))
                .method(SdkHttpMethod.GET)
                .build();

        SignedRequest signedRequest = signer.sign(r -> r.identity(credentials)
                .request(httpRequest)
                .putProperty(AwsV4aHttpSigner.SERVICE_SIGNING_NAME, "vpc-lattice-svcs")
                .putProperty(AwsV4aHttpSigner.PAYLOAD_SIGNING_ENABLED, false)
                .putProperty(AwsV4aHttpSigner.REGION_SET, RegionSet.create(String.join(" ",Arrays.copyOfRange(args, 1, args.length)))));

        System.out.println("[*] Raw request headers:");
        signedRequest.request().headers().forEach((key, values) -> {
            values.forEach(value -> System.out.println("  " + key + ": " + value));
        });

        try (SdkHttpClient httpClient = ApacheHttpClient.create()) {
            HttpExecuteRequest httpExecuteRequest = HttpExecuteRequest.builder()
                    .request(signedRequest.request())
                    .contentStreamProvider(signedRequest.payload().orElse(null))
                    .build();

            System.out.println("[*] Sending request to: " + url);

            HttpExecuteResponse httpResponse = httpClient.prepareRequest(httpExecuteRequest).call();

            System.out.println("[*] Request sent");

            System.out.println("[*] Response status code: " + httpResponse.httpResponse().statusCode());
            // Read and print the response body
            httpResponse.responseBody().ifPresent(inputStream -> {
                try {
                    String responseBody = new String(inputStream.readAllBytes());
                    System.out.println("[*] Response body: " + responseBody);
                } catch (IOException e) {
                    System.err.println("[*] Failed to read response body");
                    e.printStackTrace();
                } finally {
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        System.err.println("[*] Failed to close input stream");
                        e.printStackTrace();
                    }
                }
            });
        } catch (IOException e) {
            System.err.println("[*] HTTP Request Failed.");
            e.printStackTrace();
        }
    }
}
```

------

## Node.js
<a name="sigv4-authenticated-requests-nodejs"></a>

Contoh ini menggunakan binding [NodeJS aws-crt untuk mengirim permintaan yang ditandatangani](https://github.com/awslabs/aws-crt-nodejs) menggunakan HTTPS.

Untuk menginstal `aws-crt` paket, gunakan perintah berikut.

```
npm -i aws-crt
```

Jika variabel `AWS_REGION` lingkungan ada, contoh menggunakan Region ditentukan oleh`AWS_REGION`. Wilayah default adalah`us-east-1`.

------
#### [ SIGv4 ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------
#### [ SIGv4A ]

```
const https = require('https')
const crt = require('aws-crt')
const { HttpRequest } = require('aws-crt/dist/native/http')

function sigV4Sign(method, endpoint, service, algorithm) {
    const host = new URL(endpoint).host
    const request = new HttpRequest(method, endpoint)
    request.headers.add('host', host)
    // crt.io.enable_logging(crt.io.LogLevel.INFO)
    const config = {
        service: service,
        region: process.env.AWS_REGION ? process.env.AWS_REGION : 'us-east-1',
        algorithm: algorithm,
        signature_type: crt.auth.AwsSignatureType.HttpRequestViaHeaders,
        signed_body_header: crt.auth.AwsSignedBodyHeaderType.XAmzContentSha256,
        signed_body_value: crt.auth.AwsSignedBodyValue.UnsignedPayload,
        provider: crt.auth.AwsCredentialsProvider.newDefault()
    }

    return crt.auth.aws_sign_request(request, config)
}

if (process.argv.length === 2) {
  console.error(process.argv[1] + ' <url>')
  process.exit(1)
}

const algorithm = crt.auth.AwsSigningAlgorithm.SigV4Asymmetric;

sigV4Sign('GET', process.argv[2], 'vpc-lattice-svcs', algorithm).then(
  httpResponse => {
    var headers = {}

    for (const sigv4header of httpResponse.headers) {
      headers[sigv4header[0]] = sigv4header[1]
    }

    const options = {
      hostname: new URL(process.argv[2]).host,
      path: new URL(process.argv[2]).pathname,
      method: 'GET',
      headers: headers
    }

    req = https.request(options, res => {
      console.log('statusCode:', res.statusCode)
      console.log('headers:', res.headers)
      res.on('data', d => {
        process.stdout.write(d)
      })
    })
    req.on('error', err => {
      console.log('Error: ' + err)
    })
    req.end()
  }
)
```

------

## Golang
<a name="sigv4-authenticated-requests-golang"></a>

Contoh ini menggunakan [generator kode Smithy untuk Go dan AWS SDK untuk](https://github.com/aws/smithy-go) [bahasa pemrograman Go untuk menangani permintaan penandatanganan](https://github.com/aws/aws-sdk-go) permintaan. Contoh ini membutuhkan versi Go 1.21 atau lebih tinggi.

------
#### [ SIGv4 ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
        set   bool
        value string
}
 
 
        flag.PrintDefaults()
        os.Exit(1)
}
 
func main() {
        flag.Parse()
        if !url.set || !region.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go  <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                Region: region.String(),
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------
#### [ SIGv4A ]

```
package main
 
import (
        "context"
        "flag"
        "fmt"
        "io"
        "log"
        "net/http"
        "net/http/httputil"
        "os"
        "strings"
 
        "github.com/aws/aws-sdk-go-v2/aws"
        "github.com/aws/aws-sdk-go-v2/config"
        "github.com/aws/smithy-go/aws-http-auth/credentials"
        "github.com/aws/smithy-go/aws-http-auth/sigv4a"
        v4 "github.com/aws/smithy-go/aws-http-auth/v4"
)
 
type nopCloser struct {
        io.ReadSeeker
}
 
func (nopCloser) Close() error {
        return nil
}
 
type stringFlag struct {
 
func main() {
        flag.Parse()
        if !url.set || !regionSet.set {
                Usage()
        }
 
        cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
        if err != nil {
                log.Fatalf("failed to load SDK configuration, %v", err)
        }
 
        if len(os.Args) < 2 {
                log.Fatalf("Usage: go run main.go <url>")
        }
 
        // Retrieve credentials from an SDK source, such as the instance profile
        sdkCreds, err := cfg.Credentials.Retrieve(context.TODO())
        if err != nil {
                log.Fatalf("Unable to retrieve credentials from SDK, %v", err)
        }
 
        creds := credentials.Credentials{
                AccessKeyID:     sdkCreds.AccessKeyID,
                SecretAccessKey: sdkCreds.SecretAccessKey,
                SessionToken:    sdkCreds.SessionToken,
        }
 
        // Add a payload body, which will not be part of the signature calculation
        body := nopCloser{strings.NewReader(`Example payload body`)}
 
        req, _ := http.NewRequest(http.MethodPost, url.value, body)
 
        // Create a sigv4a signer with specific options
        signer := sigv4a.New(func(o *v4.SignerOptions) {
                o.DisableDoublePathEscape = true
                // This will add the UNSIGNED-PAYLOAD sha256 header
                o.AddPayloadHashHeader = true
                o.DisableImplicitPayloadHashing = true
        })
 
        // Create a slice out of the provided regionset
        rs := strings.Split(regionSet.value, ",")
 
        // Perform the signing on req, using the credentials we retrieved from the SDK
        err = signer.SignRequest(&sigv4a.SignRequestInput{
                Request:     req,
                Credentials: creds,
                Service:     "vpc-lattice-svcs",
                RegionSet: rs,
        })
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        res, err := httputil.DumpRequest(req, true)
 
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Raw request\n%s\n", string(res))
 
        log.Printf("[*] Sending request to %s\n", url.value)
 
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Request sent\n")
 
        log.Printf("[*] Response status code: %d\n", resp.StatusCode)
 
        respBody, err := io.ReadAll(resp.Body)
        if err != nil {
                log.Fatalf("%s", err)
        }
 
        log.Printf("[*] Response body: \n%s\n", respBody)
}
```

------

## Golang - GRPC
<a name="sigv4-authenticated-requests-golang-grpc"></a>

Contoh ini menggunakan [AWS SDK untuk bahasa pemrograman Go](https://github.com/aws/aws-sdk-go-v2/) untuk menangani penandatanganan permintaan untuk permintaan GRPC. Ini dapat digunakan dengan [server gema](https://github.com/grpc/grpc-go/tree/master/examples/features/proto/echo) dari repositori kode sampel GRPC.

```
package main

import (
    "context"
    "crypto/tls"
    "crypto/x509"

    "flag"
    "fmt"
    "log"
    "net/http"
    "net/url"
    "strings"
    "time"

    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"

    "github.com/aws/aws-sdk-go-v2/aws"
    v4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
    "github.com/aws/aws-sdk-go-v2/config"

    ecpb "google.golang.org/grpc/examples/features/proto/echo"
)

const (
    headerContentSha    = "x-amz-content-sha256"
    headerSecurityToken = "x-amz-security-token"
    headerDate          = "x-amz-date"
    headerAuthorization = "authorization"
    unsignedPayload     = "UNSIGNED-PAYLOAD"
)

type SigV4GrpcSigner struct {
    service      string
    region       string
    credProvider aws.CredentialsProvider
    signer       *v4.Signer
}

func NewSigV4GrpcSigner(service string, region string, credProvider aws.CredentialsProvider) *SigV4GrpcSigner {
    signer := v4.NewSigner()
    return &SigV4GrpcSigner{
        service:      service,
        region:       region,
        credProvider: credProvider,
        signer:       signer,
    }
}

func (s *SigV4GrpcSigner) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
    ri, _ := credentials.RequestInfoFromContext(ctx)
    creds, err := s.credProvider.Retrieve(ctx)
    if err != nil {
        return nil, fmt.Errorf("failed to load credentials: %w", err)
    }

    // The URI we get here is scheme://authority/service/ - for siging we want to include the RPC name
    // But RequestInfoFromContext only has the combined /service/rpc-name - so read the URI, and
    // replace the Path with what we get from RequestInfo.
    parsed, err := url.Parse(uri[0])
    if err != nil {
        return nil, err
    }
    parsed.Path = ri.Method

    // Build a request for the signer.
    bodyReader := strings.NewReader("")
    req, err := http.NewRequest("POST", uri[0], bodyReader)
    if err != nil {
        return nil, err
    }
    date := time.Now()
    req.Header.Set(headerContentSha, unsignedPayload)
    req.Header.Set(headerDate, date.String())
    if creds.SessionToken != "" {
        req.Header.Set(headerSecurityToken, creds.SessionToken)
    }
    // The signer wants this as //authority/path
    // So get this by triming off the scheme and the colon before the first slash.
    req.URL.Opaque = strings.TrimPrefix(parsed.String(), parsed.Scheme+":")

    err = s.signer.SignHTTP(context.Background(), creds, req, unsignedPayload, s.service, s.region, date)
    if err != nil {
        return nil, fmt.Errorf("failed to sign request: %w", err)
    }

    // Pull the relevant headers out of the signer, and return them to get
    // included in the request we make.
    reqHeaders := map[string]string{
        headerContentSha:    req.Header.Get(headerContentSha),
        headerDate:          req.Header.Get(headerDate),
        headerAuthorization: req.Header.Get(headerAuthorization),
    }
    if req.Header.Get(headerSecurityToken) != "" {
        reqHeaders[headerSecurityToken] = req.Header.Get(headerSecurityToken)
    }

    return reqHeaders, nil
}

func (c *SigV4GrpcSigner) RequireTransportSecurity() bool {
    return true
}

var addr = flag.String("addr", "some-lattice-service:443", "the address to connect to")
var region = flag.String("region", "us-west-2", "region")

func callUnaryEcho(client ecpb.EchoClient, message string) {
    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    resp, err := client.UnaryEcho(ctx, &ecpb.EchoRequest{Message: message})
    if err != nil {
        log.Fatalf("client.UnaryEcho(_) = _, %v: ", err)
    }
    fmt.Println("UnaryEcho: ", resp.Message)
}

func main() {
    flag.Parse()
    cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogSigning))
    if err != nil {
        log.Fatalf("failed to load SDK configuration, %v", err)
    }

    pool, _ := x509.SystemCertPool()
    tlsConfig := &tls.Config{
        RootCAs: pool,
    }

    authority, _, _ := strings.Cut(*addr, ":") // Remove the port from the addr
    opts := []grpc.DialOption{
        grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)),

        // Lattice needs both the Authority to be set (without a port), and the SigV4 signer
        grpc.WithAuthority(authority),
        grpc.WithPerRPCCredentials(NewSigV4GrpcSigner("vpc-lattice-svcs", *region, cfg.Credentials)),
    }

    conn, err := grpc.Dial(*addr, opts...)

    if err != nil {
        log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    rgc := ecpb.NewEchoClient(conn)

    callUnaryEcho(rgc, "hello world")
}
```

# Perlindungan data di Amazon VPC Lattice
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di Amazon VPC Lattice. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda harus bertanggung jawab untuk memelihara kendali terhadap konten yang di-hosting pada infrastruktur ini. Konten ini meliputi konfigurasi keamanan dan tugas-tugas pengelolaan untuk berbagai layanan Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

## Enkripsi saat bergerak
<a name="encryption-transit"></a>

VPC Lattice adalah layanan yang dikelola sepenuhnya yang terdiri dari bidang kontrol dan pesawat data. Setiap pesawat melayani tujuan yang berbeda dalam layanan. Bidang kontrol menyediakan administrasi yang APIs digunakan untuk membuat, membaca/mendeskripsikan, memperbarui, menghapus, dan membuat daftar (CRUDL) sumber daya (misalnya, dan). `CreateService` `UpdateService` Komunikasi ke pesawat kontrol VPC Lattice dilindungi dalam perjalanan oleh TLS. Bidang data adalah VPC Lattice Invoke API, yang menyediakan interkoneksi antar layanan. TLS mengenkripsi komunikasi ke bidang data VPC Lattice saat Anda menggunakan HTTPS atau TLS. Suite cipher dan versi protokol menggunakan default yang disediakan oleh VPC Lattice dan tidak dapat dikonfigurasi. Untuk informasi selengkapnya, lihat [Pendengar HTTPS untuk layanan VPC Lattice](https-listeners.md).

## Enkripsi saat diam
<a name="encryption-rest"></a>

Secara default, enkripsi data saat istirahat membantu mengurangi overhead operasional dan kompleksitas yang terlibat dalam melindungi data sensitif. Pada saat yang sama, ini memungkinkan Anda untuk membangun aplikasi aman yang memenuhi kepatuhan enkripsi yang ketat dan persyaratan peraturan.

**Topics**
+ [Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](#s3-managed-keys)
+ [Enkripsi sisi server dengan AWS KMS kunci yang disimpan di (SSE-KMS) AWS KMS](#kms-managed-keys)

### Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)
<a name="s3-managed-keys"></a>

Saat Anda menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3), setiap objek dienkripsi dengan kunci unik. Sebagai perlindungan tambahan, kami mengenkripsi kunci itu sendiri dengan kunci root yang kami putar secara teratur. Enkripsi sisi server Amazon S3 menggunakan salah satu cipher blok terkuat yang tersedia, 256-bit Advanced Encryption Standard (AES-256) GCM, untuk mengenkripsi data Anda. Untuk objek yang dienkripsi sebelum AES-GCM, AES-CBC masih didukung untuk mendekripsi objek tersebut. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan kunci enkripsi terkelola Amazon S3 (SSE-S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)).

Jika Anda mengaktifkan enkripsi sisi server dengan kunci enkripsi terkelola Amazon S3 (SSE-S3) untuk bucket S3 Anda untuk log akses VPC Lattice, kami secara otomatis mengenkripsi setiap file log akses sebelum disimpan di bucket S3 Anda. Untuk informasi selengkapnya, lihat [Log yang dikirim ke Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) di * CloudWatch Panduan Pengguna Amazon*.

### Enkripsi sisi server dengan AWS KMS kunci yang disimpan di (SSE-KMS) AWS KMS
<a name="kms-managed-keys"></a>

Enkripsi sisi server dengan AWS KMS kunci (SSE-KMS) mirip dengan SSE-S3, tetapi dengan manfaat dan biaya tambahan untuk menggunakan layanan ini. Ada izin terpisah untuk AWS KMS kunci yang memberikan perlindungan tambahan terhadap akses tidak sah objek Anda di Amazon S3. SSE-KMS juga memberi Anda jejak audit yang menunjukkan kapan AWS KMS kunci Anda digunakan dan oleh siapa. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan AWS Key Management Service (SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)).

**Topics**
+ [Enkripsi dan dekripsi kunci pribadi sertifikat Anda](#private-key)
+ [Konteks enkripsi untuk VPC Lattice](#encryption-context)
+ [Memantau kunci enkripsi Anda untuk VPC Lattice](#monitoring-encryption-keys)

#### Enkripsi dan dekripsi kunci pribadi sertifikat Anda
<a name="private-key"></a>

**Sertifikat ACM dan kunci pribadi Anda dienkripsi menggunakan kunci KMS AWS terkelola yang memiliki alias aws/acm.** Anda dapat melihat ID kunci dengan alias ini di AWS KMS konsol di bawah **kunci AWS terkelola**.

VPC Lattice tidak langsung mengakses sumber daya ACM Anda. Ini menggunakan AWS TLS Connection Manager untuk mengamankan dan mengakses kunci pribadi untuk sertifikat Anda. Saat Anda menggunakan sertifikat ACM untuk membuat layanan VPC Lattice, VPC Lattice mengaitkan sertifikat Anda dengan TLS Connection Manager. AWS Ini dilakukan dengan membuat hibah AWS KMS terhadap Kunci AWS Terkelola Anda dengan awalan **aws/acm**. Hibah adalah instrumen kebijakan yang memungkinkan TLS Connection Manager untuk menggunakan kunci KMS dalam operasi kriptografi. Hibah ini memungkinkan prinsipal penerima hibah (TLS Connection Manager) untuk memanggil operasi hibah yang ditentukan pada kunci KMS untuk mendekripsi kunci pribadi sertifikat Anda. TLS Connection Manager kemudian menggunakan sertifikat dan kunci pribadi yang didekripsi (plaintext) untuk membuat koneksi aman (sesi SSL/TLS) dengan klien layanan VPC Lattice. Ketika sertifikat dipisahkan dari layanan VPC Lattice, hibah dihentikan.

Jika Anda ingin menghapus akses ke kunci KMS, kami sarankan Anda mengganti atau menghapus sertifikat dari layanan menggunakan Konsol Manajemen AWS atau `update-service` perintah di AWS CLI.

#### Konteks enkripsi untuk VPC Lattice
<a name="encryption-context"></a>

[Konteks enkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) adalah kumpulan opsional pasangan kunci-nilai yang berisi informasi kontekstual tentang apa kunci pribadi Anda mungkin digunakan untuk. AWS KMS mengikat konteks enkripsi ke data terenkripsi dan menggunakannya sebagai data otentikasi tambahan untuk mendukung enkripsi yang diautentikasi.

Ketika kunci TLS Anda digunakan dengan VPC Lattice dan TLS Connection manager, nama layanan VPC Lattice Anda disertakan dalam konteks enkripsi yang digunakan untuk mengenkripsi kunci Anda saat istirahat. Anda dapat memverifikasi layanan VPC Lattice yang digunakan untuk sertifikat dan kunci pribadi Anda dengan melihat konteks enkripsi di CloudTrail log Anda seperti yang ditunjukkan di bagian berikutnya, atau dengan melihat tab **Sumber Daya Terkait** di konsol ACM.

Untuk mendekripsi data, konteks enkripsi yang sama disertakan dalam permintaan. VPC Lattice menggunakan konteks enkripsi yang sama di semua operasi kriptografi AWS KMS, di mana kuncinya adalah `aws:vpc-lattice:arn` dan nilainya adalah Nama Sumber Daya Amazon (ARN) dari layanan VPC Lattice.

Contoh berikut menunjukkan konteks enkripsi dalam output dari operasi seperti`CreateGrant`.

```
"encryptionContextEquals": {
    "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
}
```

#### Memantau kunci enkripsi Anda untuk VPC Lattice
<a name="monitoring-encryption-keys"></a>

Bila Anda menggunakan kunci AWS terkelola dengan layanan VPC Lattice, Anda dapat menggunakannya [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)untuk melacak permintaan yang dikirimkan oleh VPC Lattice. AWS KMS

**CreateGrant**  
Ketika Anda menambahkan sertifikat ACM Anda ke layanan VPC Lattice, `CreateGrant` permintaan dikirim atas nama Anda untuk TLS Connection Manager untuk dapat mendekripsi kunci pribadi yang terkait dengan sertifikat ACM Anda

Anda dapat melihat `CreateGrant` operasi sebagai peristiwa di **CloudTrail**, **Riwayat acara**, **CreateGrant**.

Berikut ini adalah contoh catatan peristiwa dalam riwayat CloudTrail acara untuk `CreateGrant` operasi.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::111122223333:user/Alice",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "sessionContext": {
            "sessionIssuer": {
                "type": "IAMUser",
                "principalId": "EX_PRINCIPAL_ID",
                "arn": "arn:aws:iam::111122223333:user/Alice",
                "accountId": "111122223333",
                "userName": "Alice"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-02-06T23:30:50Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "acm.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:18Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "acm.amazonaws.com",
    "userAgent": "acm.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "tlsconnectionmanager.amazonaws.com",
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "operations": [
            "Decrypt"
        ],
        "constraints": {
            "encryptionContextEquals": {
                "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
            }
        },
        "retiringPrincipal": "acm.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a",
    "eventID": "8d449963-1120-4d0c-9479-f76de11ce609",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

Dalam `CreateGrant` contoh di atas, prinsipal penerima hibah adalah TLS Connection Manager, dan konteks enkripsi memiliki layanan VPC Lattice ARN.

**ListGrants**  
Anda dapat menggunakan ID kunci KMS dan ID akun Anda untuk memanggil `ListGrants` API. Ini memberi Anda daftar semua hibah untuk kunci KMS yang ditentukan. Untuk informasi selengkapnya, lihat [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html).

Gunakan `ListGrants` perintah berikut di AWS CLI untuk melihat rincian semua hibah.

```
aws kms list-grants —key-id your-kms-key-id
```

Berikut ini adalah output contoh.

```
{
    "Grants": [
        {
            "Operations": [
                "Decrypt"
            ], 
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", 
            "Name": "IssuedThroughACM", 
            "RetiringPrincipal": "acm.us-west-2.amazonaws.com", 
            "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", 
            "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", 
            "IssuingAccount": "arn:aws:iam::111122223333:root", 
            "CreationDate": "2023-02-06T23:30:50Z", 
            "Constraints": {
                "encryptionContextEquals": {
                  "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                  "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
                }
            }
        }
    ]
}
```

Dalam `ListGrants` contoh di atas, prinsipal penerima hibah adalah TLS Connection Manager dan konteks enkripsi memiliki layanan VPC Lattice ARN.

**Dekripsi**  
VPC Lattice menggunakan TLS Connection Manager untuk memanggil `Decrypt` operasi untuk mendekripsi kunci pribadi Anda untuk melayani koneksi TLS di layanan VPC Lattice Anda. Anda dapat melihat `Decrypt` operasi sebagai peristiwa dalam **riwayat **CloudTrail**Acara**, **Dekripsi**.

Berikut ini adalah contoh catatan peristiwa dalam riwayat CloudTrail acara untuk `Decrypt` operasi.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "tlsconnectionmanager.amazonaws.com"
    },
    "eventTime": "2023-02-07T00:07:23Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "tlsconnectionmanager.amazonaws.com",
    "userAgent": "tlsconnectionmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "12345126-30d5-4b28-98b9-9153da559963",
    "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521",
    "eventCategory": "Management"
}
```

# Manajemen identitas dan akses untuk Amazon VPC Lattice
<a name="security-iam"></a>

Bagian berikut menjelaskan bagaimana Anda dapat menggunakan AWS Identity and Access Management (IAM) untuk membantu mengamankan sumber daya VPC Lattice Anda, dengan mengontrol siapa yang dapat melakukan tindakan VPC Lattice API.

**Topics**
+ [Bagaimana Amazon VPC Lattice bekerja dengan IAM](security_iam_service-with-iam.md)
+ [Izin API Amazon VPC Lattice](additional-api-permissions.md)
+ [Kebijakan berbasis identitas untuk Amazon VPC Lattice](security_iam_id-based-policies.md)
+ [Menggunakan peran terkait layanan untuk Amazon VPC Lattice](using-service-linked-roles.md)
+ [AWS kebijakan terkelola untuk Amazon VPC Lattice](managed-policies.md)

# Bagaimana Amazon VPC Lattice bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses ke VPC Lattice, pelajari fitur IAM apa saja yang tersedia untuk digunakan dengan VPC Lattice.




| Fitur IAM | Dukungan VPC Lattice | 
| --- | --- | 
|  [Kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies)  |   Ya  | 
|  [Kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)  |   Ya  | 
|  [Tindakan kebijakan](#security_iam_service-with-iam-id-based-policies-actions)  |   Ya  | 
|  [Sumber daya kebijakan](#security_iam_service-with-iam-id-based-policies-resources)  |   Ya  | 
|  [Kunci kondisi kebijakan](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Ya  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Tidak   | 
|  [ABAC (tanda dalam kebijakan)](#security_iam_service-with-iam-tags)  |   Ya  | 
|  [Kredensial sementara](#security_iam_service-with-iam-roles-tempcreds)  |   Ya  | 
|  [Peran layanan](#security_iam_service-with-iam-roles-service)  |   Tidak   | 
|  [Peran terkait layanan](#security_iam_service-with-iam-roles-service-linked)  |   Ya  | 

*Untuk tampilan tingkat tinggi tentang cara kerja Kisi VPC dan layanan AWS lainnya dengan sebagian besar fitur IAM, [AWS lihat layanan yang bekerja dengan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) IAM di Panduan Pengguna IAM.*

## Kebijakan berbasis identitas untuk VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Mendukung kebijakan berbasis identitas**: Ya

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke sebuah identitas, seperti pengguna IAM, grup pengguna IAM, atau peran IAM. Kebijakan ini mengontrol jenis tindakan yang dapat dilakukan oleh pengguna dan peran, di sumber daya mana, dan berdasarkan kondisi seperti apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan terkelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan secara spesifik apakah tindakan dan sumber daya diizinkan atau ditolak, serta kondisi yang menjadi dasar dikabulkan atau ditolaknya tindakan tersebut. Untuk mempelajari semua elemen yang dapat Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

## Kebijakan berbasis sumber daya dalam VPC Lattice
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Mendukung kebijakan berbasis sumber daya**: Ya

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. AWS Dalam AWS layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu dari layanan tersebut. AWS Untuk sumber daya tempat kebijakan dilampirkan, kebijakan menentukan tindakan apa yang dapat dilakukan oleh principal tertentu pada sumber daya tersebut dan dalam kondisi apa. Anda harus menentukan principal dalam kebijakan berbasis sumber daya.

VPC Lattice mendukung kebijakan *auth, kebijakan* berbasis sumber daya yang memungkinkan Anda mengontrol akses ke layanan di jaringan layanan Anda. Untuk informasi selengkapnya, lihat [Kontrol akses ke layanan VPC Lattice menggunakan kebijakan autentikasi](auth-policies.md).

VPC Lattice juga mendukung kebijakan izin berbasis sumber daya untuk integrasi dengan. AWS Resource Access Manager Anda dapat menggunakan kebijakan berbasis sumber daya ini untuk memberikan izin mengelola konektivitas ke AWS akun atau organisasi lain untuk layanan, konfigurasi sumber daya, dan jaringan layanan. Untuk informasi selengkapnya, lihat [Membagikan entitas VPC Lattice Anda](sharing.md).

## Tindakan kebijakan untuk VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Mendukung tindakan kebijakan:** Ya

Dalam pernyataan kebijakan IAM, Anda dapat menentukan tindakan API apa pun dari layanan apa pun yang mendukung IAM. Untuk VPC Lattice, gunakan awalan berikut dengan nama aksi API:. `vpc-lattice:` Misalnya:`vpc-lattice:CreateService`,`vpc-lattice:CreateTargetGroup`, dan`vpc-lattice:PutAuthPolicy`.

Untuk menentukan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma, sebagai berikut:

```
"Action": [ "vpc-lattice:action1", "vpc-lattice:action2" ]
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard. Misalnya, Anda dapat menentukan semua tindakan yang namanya dimulai dengan kata`Get`, sebagai berikut:

```
"Action": "vpc-lattice:Get*"
```

*Untuk daftar lengkap tindakan VPC Lattice API, lihat [Tindakan yang ditentukan oleh Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-actions-as-permissions) dalam Referensi Otorisasi Layanan.*

## Sumber daya kebijakan untuk VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Mendukung sumber daya kebijakan:** Ya

Dalam pernyataan kebijakan IAM, `Resource` elemen menentukan objek atau objek yang dicakup oleh pernyataan tersebut. Untuk VPC Lattice, setiap pernyataan kebijakan IAM berlaku untuk sumber daya yang Anda tentukan menggunakan mereka. ARNs

Format Amazon Resource Name (ARN) tertentu bergantung pada sumber daya. Saat Anda memberikan ARN, ganti *italicized* teks dengan informasi khusus sumber daya Anda. 
+ **Akses langganan log:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:accesslogsubscription/access-log-subscription-id"
  ```
+ **Pendengar:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id"
  ```
+ **Gateway sumber daya**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourcegateway/resource-gateway-id"
  ```
+ **Konfigurasi sumber daya**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:resourceconfiguration/resource-configuration-id"
  ```
+ **Aturan:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id/listener/listener-id/rule/rule-id"
  ```
+ **Layanan:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:service/service-id"
  ```
+ **Jaringan layanan:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetwork/service-network-id"
  ```
+ **Asosiasi layanan jaringan layanan:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkserviceassociation/service-network-service-association-id"
  ```
+ **Asosiasi konfigurasi sumber daya jaringan layanan**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkresourceassociation/service-network-resource-association-id"
  ```
+ **Asosiasi VPC jaringan layanan:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:servicenetworkvpcassociation/service-network-vpc-association-id"
  ```
+ **Kelompok sasaran:**

  ```
  "Resource": "arn:aws:vpc-lattice:region:account-id:targetgroup/target-group-id"
  ```

## Kunci kondisi kebijakan untuk VPC Lattice
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Mendukung kunci kondisi kebijakan khusus layanan:** Yes

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

*Untuk melihat daftar kunci kondisi Kisi VPC, lihat Kunci [kondisi untuk Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html#amazonvpclattice-policy-keys) di Referensi Otorisasi Layanan.*

AWS mendukung kunci kondisi global dan kunci kondisi khusus layanan. Untuk informasi tentang kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

## Daftar kontrol akses (ACLs) di VPC Lattice
<a name="security_iam_service-with-iam-acls"></a>

**Mendukung ACLs:** Tidak 

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

## Kontrol akses berbasis atribut (ABAC) dengan VPC Lattice
<a name="security_iam_service-with-iam-tags"></a>

**Mendukung ABAC (tanda dalam kebijakan):** Ya

Kontrol akses berbasis atribut (ABAC) adalah strategi otorisasi yang menentukan izin berdasarkan atribut tanda. Anda dapat melampirkan tag ke entitas dan AWS sumber daya IAM, lalu merancang kebijakan ABAC untuk mengizinkan operasi saat tag prinsipal cocok dengan tag pada sumber daya.

Untuk mengendalikan akses berdasarkan tanda, berikan informasi tentang tanda di [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dari kebijakan menggunakan kunci kondisi `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`, atau `aws:TagKeys`.

Jika sebuah layanan mendukung ketiga kunci kondisi untuk setiap jenis sumber daya, nilainya adalah **Ya** untuk layanan tersebut. Jika suatu layanan mendukung ketiga kunci kondisi untuk hanya beberapa jenis sumber daya, nilainya adalah **Parsial**.

Untuk informasi selengkapnya tentang ABAC, lihat [Tentukan izin dengan otorisasi ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) dalam *Panduan Pengguna IAM.* Untuk melihat tutorial yang menguraikan langkah-langkah pengaturan ABAC, lihat [Menggunakan kontrol akses berbasis atribut (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) dalam *Panduan Pengguna IAM*.

## Menggunakan kredensi sementara dengan VPC Lattice
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Mendukung kredensial sementara:** Ya

Kredensyal sementara menyediakan akses jangka pendek ke AWS sumber daya dan secara otomatis dibuat saat Anda menggunakan federasi atau beralih peran. AWS merekomendasikan agar Anda secara dinamis menghasilkan kredensyal sementara alih-alih menggunakan kunci akses jangka panjang. Untuk informasi selengkapnya, lihat [Kredensial keamanan sementara di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dan [Layanan AWS yang berfungsi dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dalam *Panduan Pengguna IAM*.

## Peran layanan untuk VPC Lattice
<a name="security_iam_service-with-iam-roles-service"></a>

**Mendukung peran layanan:** Tidak 

 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

**Awas**  
Mengubah izin untuk peran layanan dapat merusak fungsionalitas VPC Lattice. Edit peran layanan hanya jika VPC Lattice memberikan panduan untuk melakukannya.

## Peran terkait layanan untuk VPC Lattice
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Mendukung peran terkait layanan**: Ya

 Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan. 

Untuk informasi tentang membuat atau mengelola peran terkait layanan VPC Lattice, lihat. [Menggunakan peran terkait layanan untuk Amazon VPC Lattice](using-service-linked-roles.md)

# Izin API Amazon VPC Lattice
<a name="additional-api-permissions"></a>

Anda harus memberikan izin identitas IAM (seperti pengguna atau peran) untuk memanggil tindakan VPC Lattice API yang mereka butuhkan, seperti yang dijelaskan dalam. [Tindakan kebijakan untuk VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) Selain itu, untuk beberapa tindakan VPC Lattice, Anda harus memberikan izin identitas IAM untuk memanggil tindakan tertentu dari yang lain. AWS APIs

## Izin yang diperlukan untuk API
<a name="required-API-permissions"></a>

Saat memanggil tindakan berikut dari API, Anda harus memberikan izin kepada pengguna IAM untuk memanggil tindakan yang ditentukan.

`CreateResourceConfiguration`  
+ `vpc-lattice:CreateResourceConfiguration`
+ `ec2:DescribeSubnets`
+ `rds:DescribeDBInstances`
+ `rds:DescribeDBClusters`

`CreateResourceGateway`  
+ `vpc-lattice:CreateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`

`DeleteResourceGateway`  
+ `vpc-lattice:DeleteResourceGateway`
+ `ec2:DeleteNetworkInterface`

`UpdateResourceGateway`  
+ `vpc-lattice:UpdateResourceGateway`
+ `ec2:AssignPrivateIpAddresses`
+ `ec2:AssignIpv6Addresses`
+ `ec2:UnassignPrivateIpAddresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DeleteNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:ModifyNetworkInterfaceAttribute`

`CreateServiceNetworkResourceAssociation`  
+ `vpc-lattice:CreateServiceNetworkResourceAssociation`
+ `ec2:AssignIpv6Addresses`
+ `ec2:CreateNetworkInterface`
+ `ec2:CreateNetworkInterfacePermission`
+ `ec2:DescribeNetworkInterfaces`

`CreateServiceNetworkVpcAssociation`  
+ `vpc-lattice:CreateServiceNetworkVpcAssociation`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeSecurityGroups`(Hanya diperlukan ketika kelompok keamanan disediakan)

`UpdateServiceNetworkVpcAssociation`  
+ `vpc-lattice:UpdateServiceNetworkVpcAssociation`
+ `ec2:DescribeSecurityGroups`(Hanya diperlukan ketika kelompok keamanan disediakan)

`CreateTargetGroup`  
+ `vpc-lattice:CreateTargetGroup`
+ `ec2:DescribeVpcs`

`RegisterTargets`  
+ `vpc-lattice:RegisterTargets`
+ `ec2:DescribeInstances`(Hanya `INSTANCE` diperlukan kapan tipe grup target)
+ `ec2:DescribeVpcs`(Hanya diperlukan ketika `INSTANCE` atau `IP` tipe grup target)
+ `ec2:DescribeSubnets`(Hanya diperlukan ketika `INSTANCE` atau `IP` tipe grup target)
+ `lambda:GetFunction`(Hanya `LAMBDA` diperlukan kapan tipe grup target)
+ `lambda:AddPermission`(Hanya diperlukan jika grup target belum memiliki izin untuk menjalankan fungsi Lambda yang ditentukan)

`DeregisterTargets`  
+ `vpc-lattice:DeregisterTargets`

`CreateAccessLogSubscription`  
+ `vpc-lattice:CreateAccessLogSubscription`
+ `logs:GetLogDelivery`
+ `logs:CreateLogDelivery`

`DeleteAccessLogSubscription`  
+ `vpc-lattice:DeleteAccessLogSubscription`
+ `logs:DeleteLogDelivery`

`UpdateAccessLogSubscription`  
+ `vpc-lattice:UpdateAccessLogSubscription`
+ `logs:UpdateLogDelivery`

# Kebijakan berbasis identitas untuk Amazon VPC Lattice
<a name="security_iam_id-based-policies"></a>

Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau memodifikasi sumber daya VPC Lattice. 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) di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).*

*Untuk detail tentang tindakan dan jenis sumber daya yang ditentukan oleh Kisi VPC, termasuk format ARNs untuk setiap jenis sumber daya, lihat Kunci [Tindakan, Sumber Daya, dan Kondisi untuk Kisi VPC Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html) di Referensi Otorisasi Layanan.*

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Izin tambahan yang diperlukan untuk akses penuh](#security_iam_id-based-policy-additional-permissions)
+ [Contoh kebijakan berbasis identitas untuk VPC Lattice](#security_iam_id-based-policy-examples)

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

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya VPC Lattice di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin dengan hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* 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 ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik 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 mengharuskan pengguna IAM atau pengguna root di Anda, 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*.

## Izin tambahan yang diperlukan untuk akses penuh
<a name="security_iam_id-based-policy-additional-permissions"></a>

Untuk menggunakan AWS layanan lain yang terintegrasi dengan VPC Lattice dan seluruh rangkaian fitur VPC Lattice, Anda harus memiliki izin tambahan tertentu. Izin ini tidak termasuk dalam kebijakan `VPCLatticeFullAccess` terkelola karena risiko eskalasi hak istimewa [wakil yang membingungkan](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). 

Anda harus melampirkan kebijakan berikut ke peran Anda dan menggunakannya bersama dengan kebijakan `VPCLatticeFullAccess` terkelola.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "firehose:TagDeliveryStream",
                "lambda:AddPermission",
                "s3:PutBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:PutResourcePolicy"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "vpc-lattice.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery*"
        }
    ]
}
```

------

Kebijakan ini memberikan izin tambahan berikut:
+ `iam:AttachRolePolicy`: Memungkinkan Anda melampirkan kebijakan terkelola yang ditentukan ke peran IAM yang ditentukan. 
+ `iam:PutRolePolicy`: Memungkinkan Anda menambahkan atau memperbarui dokumen kebijakan sebaris yang disematkan dalam peran IAM yang ditentukan.
+ `s3:PutBucketPolicy`: Memungkinkan Anda menerapkan kebijakan bucket ke bucket Amazon S3.
+ `firehose:TagDeliveryStream`: Memungkinkan Anda menambahkan atau memperbarui tag untuk aliran pengiriman Firehose.

## Contoh kebijakan berbasis identitas untuk VPC Lattice
<a name="security_iam_id-based-policy-examples"></a>

**Topics**
+ [Contoh kebijakan: Mengelola asosiasi VPC ke jaringan layanan](#security_iam_id-based-policy-examples-vpc-to-service-network-association)
+ [Contoh kebijakan: Buat asosiasi layanan ke jaringan layanan](#security_iam_id-based-policy-examples-service-to-service-network-association)
+ [Contoh kebijakan: Tambahkan tag ke sumber daya](#security_iam_id-based-policy-examples-tag-resources)
+ [Contoh kebijakan: Membuat peran terkait layanan](#security_iam_id-based-policy-examples-service-linked-role)

### Contoh kebijakan: Mengelola asosiasi VPC ke jaringan layanan
<a name="security_iam_id-based-policy-examples-vpc-to-service-network-association"></a>

Contoh berikut menunjukkan kebijakan yang memberi pengguna kebijakan ini izin untuk membuat, memperbarui, dan menghapus asosiasi VPC ke jaringan layanan, tetapi hanya untuk VPC dan jaringan layanan yang ditentukan dalam kondisi tersebut. Untuk informasi selengkapnya tentang menentukan kunci kondisi, lihat[Kunci kondisi kebijakan untuk VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkVpcAssociation",
            "vpc-lattice:UpdateServiceNetworkVpcAssociation",
            "vpc-lattice:DeleteServiceNetworkVpcAssociation"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": { 
               "vpc-lattice:ServiceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example",
               "vpc-lattice:VpcId": "vpc-1a2b3c4d"
            }
         }
      }
   ]
}
```

------

### Contoh kebijakan: Buat asosiasi layanan ke jaringan layanan
<a name="security_iam_id-based-policy-examples-service-to-service-network-association"></a>

Jika Anda tidak menggunakan tombol kondisi untuk mengontrol akses ke sumber daya VPC Lattice, Anda dapat menentukan sumber daya dalam `Resource` elemen untuk mengontrol akses sebagai gantinya. ARNs 

Contoh berikut menunjukkan kebijakan yang membatasi asosiasi layanan ke jaringan layanan yang dapat dibuat oleh pengguna dengan kebijakan ini dengan menentukan jaringan layanan dan layanan yang dapat digunakan dengan tindakan `CreateServiceNetworkServiceAssociation` API. ARNs Untuk informasi selengkapnya tentang menentukan nilai ARN, lihat. [Sumber daya kebijakan untuk VPC Lattice](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:CreateServiceNetworkServiceAssociation"
         ],
         "Resource": [
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetworkserviceassociation/*",
            "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-04d5cc9b88example",
            "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-903004f88example"
         ]
      }
   ]
}
```

------

### Contoh kebijakan: Tambahkan tag ke sumber daya
<a name="security_iam_id-based-policy-examples-tag-resources"></a>

Contoh berikut menunjukkan kebijakan yang memberi pengguna izin kebijakan ini untuk membuat tag pada resource VPC Lattice. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "vpc-lattice:TagResource"
         ],
         "Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:*/*"
      }
   ]
}
```

------

### Contoh kebijakan: Membuat peran terkait layanan
<a name="security_iam_id-based-policy-examples-service-linked-role"></a>

VPC Lattice memerlukan izin untuk membuat peran terkait layanan saat pertama kali setiap pengguna di Anda membuat sumber daya VPC Lattice. Akun AWS Jika peran terkait layanan belum ada, VPC Lattice membuatnya di akun Anda. Peran terkait layanan memberikan izin ke VPC Lattice sehingga dapat memanggil orang lain atas nama Anda. Layanan AWS Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk Amazon VPC Lattice](using-service-linked-roles.md).

Agar pembuatan peran otomatis berhasil, pengguna harus memiliki izin untuk tindakan `iam:CreateServiceLinkedRole` nyata.

```
"Action": "iam:CreateServiceLinkedRole"
```

Contoh berikut menunjukkan kebijakan yang memberi pengguna izin kebijakan ini untuk membuat peran terkait layanan untuk VPC Lattice.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": "iam:CreateServiceLinkedRole",
         "Resource": "arn:aws:iam::*:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice",
         "Condition": {
            "StringLike": {
               "iam:AWSServiceName":"vpc-lattice.amazonaws.com"
            }
         }
      }
   ]
}
```

------

Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

# Menggunakan peran terkait layanan untuk Amazon VPC Lattice
<a name="using-service-linked-roles"></a>

Amazon VPC Lattice menggunakan peran terkait layanan untuk izin yang diperlukan untuk memanggil orang lain atas nama Anda. Layanan AWS Untuk informasi selengkapnya, lihat [Peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) di Panduan Pengguna *IAM*.

VPC Lattice menggunakan peran terkait layanan bernama. AWSServiceRoleForVpcLattice

## Izin peran terkait layanan untuk VPC Lattice
<a name="slr-permissions"></a>

Peran terkait layanan **AWSServiceRoleForVpcLattice** memercayai layanan berikut untuk mengambil peran tersebut:
+ `vpc-lattice.amazonaws.com`

Kebijakan izin peran bernama AWSVpcLatticeServiceRolePolicy memungkinkan VPC Lattice CloudWatch mempublikasikan metrik di namespace. `AWS/VpcLattice` Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

Anda harus mengonfigurasi izin agar entitas IAM (seperti pengguna, grup, atau peran) dapat membuat, mengedit, atau menghapus peran terkait layanan. Untuk informasi selengkapnya, lihat [Contoh kebijakan: Membuat peran terkait layanan](security_iam_id-based-policies.md#security_iam_id-based-policy-examples-service-linked-role).

## Membuat peran terkait layanan untuk VPC Lattice
<a name="create-slr"></a>

Anda tidak perlu membuat peran terkait layanan secara manual. Saat Anda membuat resource VPC Lattice di Konsol Manajemen AWS, the, atau API AWS CLI AWS , VPC Lattice membuat peran terkait layanan untuk Anda.

Jika Anda menghapus peran terkait layanan ini, dan ingin membuatnya lagi, Anda dapat mengulangi proses yang sama untuk membuat kembali peran tersebut di akun Anda. Saat Anda membuat resource VPC Lattice, VPC Lattice membuat peran yang ditautkan layanan untuk Anda lagi.

## Mengedit peran terkait layanan untuk VPC Lattice
<a name="edit-slr"></a>

Anda dapat mengedit deskripsi **AWSServiceRoleForVpcLattice**menggunakan IAM. Untuk informasi selengkapnya, lihat [Mengedit deskripsi peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console) di Panduan Pengguna *IAM*.

## Menghapus peran terkait layanan untuk VPC Lattice
<a name="delete-slr"></a>

Jika Anda tidak perlu lagi menggunakan Amazon VPC Lattice, kami sarankan Anda menghapus. **AWSServiceRoleForVpcLattice**

Anda dapat menghapus peran terkait layanan ini hanya setelah Anda menghapus semua sumber daya VPC Lattice di situs Anda. Akun AWS

Gunakan konsol IAM, the AWS CLI, atau AWS API untuk menghapus peran **AWSServiceRoleForVpcLattice**terkait layanan. Untuk informasi selengkapnya, lihat [Menghapus peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) di Panduan Pengguna *IAM*.

Setelah menghapus peran yang ditautkan layanan, VPC Lattice akan membuat peran tersebut lagi saat Anda membuat resource VPC Lattice di VPC Lattice. Akun AWS

## Wilayah yang Didukung untuk peran terkait layanan VPC Lattice
<a name="slr-regions"></a>

VPC Lattice mendukung penggunaan peran terkait layanan di semua Wilayah tempat layanan tersedia.

# AWS kebijakan terkelola untuk Amazon VPC Lattice
<a name="managed-policies"></a>

Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. AWS Kebijakan terkelola dirancang untuk memberikan izin bagi banyak kasus penggunaan umum sehingga Anda dapat mulai menetapkan izin kepada pengguna, grup, dan peran.

Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan semua pelanggan. AWS Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan [kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang khusus untuk kasus penggunaan Anda.

Anda tidak dapat mengubah izin yang ditentukan dalam kebijakan AWS terkelola. Jika AWS memperbarui izin yang ditentukan dalam kebijakan AWS terkelola, pemutakhiran akan memengaruhi semua identitas utama (pengguna, grup, dan peran) yang dilampirkan kebijakan tersebut. AWS kemungkinan besar akan memperbarui kebijakan AWS terkelola saat baru Layanan AWS diluncurkan atau operasi API baru tersedia untuk layanan yang ada.

Untuk informasi selengkapnya, lihat [Kebijakan terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

## AWS kebijakan terkelola: VPCLattice FullAccess
<a name="vpc-lattice-fullaccess-policy"></a>

Kebijakan ini menyediakan akses penuh ke Amazon VPC Lattice dan akses terbatas ke layanan dependen lainnya. Ini termasuk izin untuk melakukan hal berikut:
+ ACM — Ambil sertifikat SSL/TLS ARN untuk nama domain kustom.
+ CloudWatch — Lihat log akses dan data pemantauan.
+ CloudWatch Log - Mengatur dan mengirim log akses ke CloudWatch Log.
+ Amazon EC2 — Konfigurasikan antarmuka jaringan dan ambil informasi tentang instans EC2 dan. VPCs Ini digunakan untuk membuat konfigurasi sumber daya, gateway sumber daya, dan grup target, mengonfigurasi asosiasi entitas VPC Lattice, dan mendaftarkan target.
+ Elastic Load Balancing — Ambil informasi tentang Application Load Balancer untuk mendaftarkannya sebagai target.
+ Firehose — Mengambil informasi tentang aliran pengiriman yang digunakan untuk menyimpan log akses.
+ Lambda — Ambil informasi tentang fungsi Lambda untuk mendaftarkannya sebagai target.
+ Amazon RDS — Ambil informasi tentang cluster dan instans RDS.
+ Amazon S3 - Ambil informasi tentang bucket S3 yang digunakan untuk menyimpan log akses.

Untuk melihat izin kebijakan ini, lihat [VPCLatticeFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeFullAccess.html)di *Referensi Kebijakan AWS Terkelola*.

Untuk menggunakan AWS layanan lain yang terintegrasi dengan VPC Lattice dan seluruh rangkaian fitur VPC Lattice, Anda harus memiliki izin tambahan tertentu. Izin ini tidak termasuk dalam kebijakan `VPCLatticeFullAccess` terkelola karena risiko eskalasi hak istimewa [wakil yang membingungkan](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html). Untuk informasi selengkapnya, lihat [Izin tambahan yang diperlukan untuk akses penuh](security_iam_id-based-policies.md#security_iam_id-based-policy-additional-permissions).

## AWS kebijakan terkelola: VPCLattice ReadOnlyAccess
<a name="vpc-lattice-read-onlyaccess-policy"></a>

Kebijakan ini menyediakan akses hanya-baca ke Amazon VPC Lattice dan akses terbatas ke layanan dependen lainnya. Ini termasuk izin untuk melakukan hal berikut:
+ ACM — Ambil sertifikat SSL/TLS ARN untuk nama domain kustom.
+ CloudWatch — Lihat log akses dan data pemantauan.
+ CloudWatch Log - Lihat informasi pengiriman log untuk langganan log akses.
+ Amazon EC2 — Ambil informasi tentang instans EC2 dan VPCs untuk membuat grup target dan mendaftarkan target.
+ Elastic Load Balancing — Mengambil informasi tentang Application Load Balancer.
+ Firehose — Ambil informasi tentang aliran pengiriman untuk pengiriman log akses.
+ Lambda - Lihat informasi tentang fungsi Lambda.
+ Amazon RDS — Ambil informasi tentang cluster dan instans RDS.
+ Amazon S3 - Ambil informasi tentang bucket S3 untuk pengiriman log akses.

Untuk melihat izin kebijakan ini, lihat [VPCLatticeReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeReadOnlyAccess.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: VPCLattice ServicesInvokeAccess
<a name="vpc-lattice-services-invoke-access-policy"></a>

Kebijakan ini menyediakan akses untuk memanggil layanan Amazon VPC Lattice.

Untuk melihat izin kebijakan ini, lihat [VPCLatticeServicesInvokeAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/VPCLatticeServicesInvokeAccess.html)di *Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSVpc LatticeServiceRolePolicy
<a name="service-linked-role-policy"></a>

Kebijakan ini dilampirkan ke peran terkait layanan yang diberi nama **AWSServiceRoleForVpcLattice**untuk mengizinkan VPC Lattice melakukan tindakan atas nama Anda. Anda tidak dapat melampirkan kebijakan ini ke entitas IAM Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk Amazon VPC Lattice](using-service-linked-roles.md).

Untuk melihat izin kebijakan ini, lihat [AWSVpcLatticeServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSVpcLatticeServiceRolePolicy.html)di *Referensi Kebijakan AWS Terkelola*.

## VPC Lattice memperbarui kebijakan terkelola AWS
<a name="policy-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola untuk VPC Lattice sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS untuk Panduan Pengguna VPC Lattice.


| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice menambahkan izin hanya-baca untuk mendeskripsikan kluster dan instance Amazon RDS. | Desember 1, 2024 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice menambahkan izin hanya-baca untuk mendeskripsikan kluster dan instance Amazon RDS. | Desember 1, 2024 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice menambahkan izin untuk memungkinkan VPC Lattice membuat antarmuka jaringan yang dikelola pemohon. | Desember 1, 2024 | 
| [VPCLatticeFullAccess](#vpc-lattice-fullaccess-policy) | VPC Lattice menambahkan kebijakan baru untuk memberikan izin akses penuh ke Amazon VPC Lattice dan akses terbatas ke layanan dependen lainnya. | 31 Maret 2023 | 
| [VPCLatticeReadOnlyAccess](#vpc-lattice-read-onlyaccess-policy) | VPC Lattice menambahkan kebijakan baru untuk memberikan izin akses hanya-baca ke Amazon VPC Lattice dan akses terbatas ke layanan dependen lainnya. | 31 Maret 2023 | 
| [VPCLatticeServicesInvokeAccess](#vpc-lattice-services-invoke-access-policy) | VPC Lattice menambahkan kebijakan baru untuk memberikan akses ke layanan Amazon VPC Lattice. | 31 Maret 2023 | 
| [AWSVpcLatticeServiceRolePolicy](#service-linked-role-policy) | VPC Lattice menambahkan izin ke peran terkait layanannya untuk memungkinkan VPC Lattice mempublikasikan metrik di namespace. CloudWatch AWS/VpcLattice AWSVpcLatticeServiceRolePolicyKebijakan ini mencakup izin untuk memanggil tindakan CloudWatch [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html)API. Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk Amazon VPC Lattice](using-service-linked-roles.md). | Desember 5, 2022 | 
|  VPC Lattice mulai melacak perubahan  |  VPC Lattice mulai melacak perubahan untuk kebijakan terkelolanya AWS .  | Desember 5, 2022 | 

# Validasi kepatuhan untuk Amazon VPC Lattice
<a name="compliance-validation"></a>

Auditor pihak ketiga menilai keamanan dan kepatuhan Amazon VPC Lattice sebagai bagian dari beberapa AWS program kepatuhan. 

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Akses Amazon VPC Lattice menggunakan titik akhir antarmuka ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

*Anda dapat membuat koneksi pribadi antara VPC dan Amazon VPC Lattice dengan membuat antarmuka VPC endpoint.* Endpoint antarmuka didukung oleh [AWS PrivateLink](https://aws.amazon.com/privatelink/), teknologi yang memungkinkan Anda mengakses VPC Lattice secara pribadi APIs tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans di VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi dengan VPC Lattice. APIs 

Setiap titik akhir antarmuka diwakili oleh satu atau lebih [antarmuka jaringan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) di subnet Anda.

## Pertimbangan untuk titik akhir VPC antarmuka
<a name="vpc-endpoint-considerations"></a>

[https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)

VPC Lattice mendukung panggilan ke semua tindakan API-nya dari VPC Anda. 

## Membuat antarmuka VPC endpoint untuk VPC Lattice
<a name="vpc-endpoint-create"></a>

Anda dapat membuat titik akhir VPC untuk layanan VPC Lattice menggunakan konsol VPC Amazon atau (). AWS Command Line Interface AWS CLI*Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC antarmuka di Panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html).AWS PrivateLink *

Buat titik akhir VPC untuk VPC Lattice menggunakan nama layanan berikut: 

`com.amazonaws.region.vpc-lattice`

Jika Anda mengaktifkan DNS pribadi untuk titik akhir, Anda dapat membuat permintaan API ke VPC Lattice menggunakan nama DNS default untuk Wilayah, misalnya,. `vpc-lattice.us-east-1.amazonaws.com`

# Ketahanan di Amazon VPC Lattice
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar Wilayah AWS dan Availability Zones. 

Wilayah AWS menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. 

Dengan Zona Ketersediaan, Anda dapat merancang serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara zona tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional. 

Untuk informasi selengkapnya tentang Wilayah AWS dan Availability Zone, lihat [Infrastruktur AWS Global](https://aws.amazon.com/about-aws/global-infrastructure/).

# Keamanan infrastruktur di Amazon VPC Lattice
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, Amazon VPC Lattice dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses VPC Lattice melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.