

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

# Templat kebijakan Izin Terverifikasi Amazon dan kebijakan terkait templat
<a name="policy-templates"></a>

Di Izin Terverifikasi, templat kebijakan adalah kebijakan dengan placeholder untuk`principal`,`resource`, atau keduanya. Template kebijakan saja tidak dapat digunakan untuk menangani permintaan otorisasi. Untuk menangani permintaan otorisasi, *kebijakan terkait templat harus dibuat berdasarkan templat kebijakan*. Templat kebijakan memungkinkan kebijakan didefinisikan sekali dan kemudian digunakan dengan beberapa prinsip dan sumber daya. Pembaruan pada templat kebijakan tercermin di semua kebijakan yang menggunakan templat. Untuk informasi selengkapnya, lihat [Templat kebijakan Cedar](https://docs.cedarpolicy.com/policies/templates.html) di Panduan Referensi bahasa kebijakan Cedar.

Anda dapat menetapkan nama templat kebijakan secara opsional ke templat kebijakan. Nama templat kebijakan harus unik di dalam toko kebijakan dan diawali dengan`name/`. Anda dapat menggunakan nama templat kebijakan sebagai pengganti ID templat kebijakan dalam operasi bidang kontrol yang menerima `policyTemplateId` parameter. Hanya `GetPolicyTemplate` dan `ListPolicyTemplates` kembalikan nama di output. Contoh berikut menggunakan nama template kebijakan untuk mengambil template kebijakan dengan`GetPolicyTemplate`.

```
$ aws verifiedpermissions get-policy-template \
    --policy-template-id name/example-policy-template \
    --policy-store-id PSEXAMPLEabcdefg111111
```

Misalnya, templat kebijakan berikut menyediakan`Read`,`Edit`, dan `Comment` izin untuk prinsipal dan sumber daya yang menggunakan templat kebijakan.

```
permit(
  principal == ?principal,
  action in [Action::"Read", Action::"Edit", Action::"Comment"],
  resource == ?resource
);
```

Jika Anda membuat kebijakan yang diberi nama `Editor` berdasarkan templat ini, ketika prinsipal ditetapkan sebagai editor untuk sumber daya tertentu, aplikasi Anda akan membuat kebijakan yang memberikan izin bagi prinsipal untuk membaca, mengedit, dan mengomentari sumber daya tersebut.

Tidak seperti kebijakan statis, kebijakan terkait template bersifat dinamis. Ambil contoh sebelumnya, jika Anda menghapus `Comment` tindakan dari templat kebijakan, kebijakan apa pun yang ditautkan ke, atau berdasarkan, templat tersebut akan diperbarui sesuai dan prinsip yang ditentukan dalam kebijakan tidak akan lagi dapat mengomentari sumber daya terkait.

Untuk contoh kebijakan terkait templat lainnya, lihat. [Izin Terverifikasi Amazon contoh kebijakan terkait templat](policy-templates-example-policies.md)

# Membuat templat kebijakan Izin Terverifikasi Amazon
<a name="policy-templates-create"></a>

Anda dapat membuat templat kebijakan di Izin Terverifikasi menggunakan Konsol Manajemen AWS, templat AWS CLI, atau templat. AWS SDKs Templat kebijakan memungkinkan kebijakan didefinisikan sekali dan kemudian digunakan dengan beberapa prinsip dan sumber daya. Setelah membuat templat kebijakan, Anda dapat membuat kebijakan terkait templat untuk menggunakan templat kebijakan dengan prinsip dan sumber daya tertentu. Untuk informasi selengkapnya, lihat [Membuat kebijakan terkait templat Izin Terverifikasi Amazon](policy-templates-create-policy.md).

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat templat kebijakan**

1. Buka [konsol Izin Terverifikasi](https://console.aws.amazon.com/verifiedpermissions/). Pilih toko polis Anda.

1. Di panel navigasi di sebelah kiri, pilih **Templat kebijakan**.

1. Pilih **Buat templat kebijakan**.

1. Di bagian **Detail**, ketikkan **deskripsi templat Kebijakan**.

1. Di bagian **badan Templat kebijakan**, gunakan placeholder `?principal` dan `?resource` untuk mengizinkan kebijakan yang dibuat berdasarkan templat ini untuk menyesuaikan izin yang mereka berikan. Anda dapat memilih **Format untuk memformat** sintaks templat kebijakan Anda dengan spasi dan lekukan yang disarankan.

1. Pilih **Buat templat kebijakan**.

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

**Untuk membuat templat kebijakan**  
Anda dapat membuat templat kebijakan dengan menggunakan [CreatePolicyTemplate](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicyTemplate.html)operasi. Contoh berikut membuat template kebijakan dengan placeholder untuk prinsipal.

File `template1.txt` berisi yang berikut ini.

```
"VacationAccess"
permit(
    principal in ?principal,
    action == Action::"view",
    resource == Photo::"VacationPhoto94.jpg"
);
```

```
$ aws verifiedpermissions create-policy-template \
    --description "Template for vacation picture access" 
    --statement file://template1.txt 
    --policy-store-id PSEXAMPLEabcdefg111111
{
    "createdDate": "2023-05-18T21:17:47.284268+00:00",
    "lastUpdatedDate": "2023-05-18T21:17:47.284268+00:00",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyTemplateId": "PTEXAMPLEabcdefg111111"
}
```

**Untuk membuat templat kebijakan dengan nama templat kebijakan**  
Anda dapat menentukan nama templat kebijakan secara opsional saat membuat templat kebijakan. Nama harus unik untuk semua templat kebijakan dalam toko kebijakan dan diawali dengan`name/`. Anda dapat menggunakan nama sebagai pengganti ID templat kebijakan.

```
$ aws verifiedpermissions create-policy-template \
    --description "Template for vacation picture access" \
    --statement file://template1.txt \
    --policy-store-id PSEXAMPLEabcdefg111111 \
    --name name/example-policy-template
{
    "createdDate": "2023-06-12T20:47:42.804511+00:00",
    "lastUpdatedDate": "2023-06-12T20:47:42.804511+00:00",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyTemplateId": "PTEXAMPLEabcdefg111111"
}
```

**catatan**  
Jika Anda menentukan nama yang sudah dikaitkan dengan templat kebijakan lain di toko kebijakan, Anda akan menerima `ConflictException` kesalahan.

------

# Membuat kebijakan terkait templat Izin Terverifikasi Amazon
<a name="policy-templates-create-policy"></a>

Anda dapat membuat kebijakan terkait templat, atau kebijakan yang didasarkan pada templat kebijakan, menggunakan, atau kebijakan. Konsol Manajemen AWS AWS CLI AWS SDKs Kebijakan terkait templat tetap ditautkan ke templat kebijakan mereka. Jika Anda mengubah pernyataan kebijakan dalam templat kebijakan, kebijakan apa pun yang ditautkan ke templat tersebut secara otomatis menggunakan pernyataan baru untuk semua keputusan otorisasi yang dibuat sejak saat itu.

Untuk contoh kebijakan terkait templat, lihat. [Izin Terverifikasi Amazon contoh kebijakan terkait templat](policy-templates-example-policies.md)

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat kebijakan yang ditautkan templat dengan membuat instance template kebijakan**

1. Buka [konsol Izin Terverifikasi](https://console.aws.amazon.com/verifiedpermissions/). Pilih toko polis Anda.

1. Pada panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pilih **Buat kebijakan**, lalu pilih **Buat kebijakan terkait templat**.

1. Pilih tombol radio di sebelah templat kebijakan yang akan digunakan, lalu pilih **Berikutnya**.

1. Ketik **Principal** dan **Resource** yang akan digunakan untuk contoh spesifik kebijakan terkait template ini. Nilai yang ditentukan ditampilkan di bidang **pratinjau pernyataan Kebijakan**.
**catatan**  
Nilai **Principal** dan **Resource** harus memiliki format yang sama dengan kebijakan statis. Misalnya, untuk menentukan `AdminUsers` grup untuk prinsipal, ketik`Group::"AdminUsers"`. Jika Anda mengetik`AdminUsers`, kesalahan validasi ditampilkan.

1. Pilih **Buat kebijakan terkait templat**.

   **Kebijakan baru yang ditautkan templat ditampilkan di bawah Kebijakan.**

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

**Untuk membuat kebijakan yang ditautkan templat dengan membuat instance template kebijakan**  
Anda dapat membuat kebijakan terkait templat yang mereferensikan templat kebijakan yang ada dan yang menentukan nilai untuk setiap placeholder yang digunakan oleh templat. 

Contoh berikut membuat kebijakan terkait templat yang menggunakan templat dengan pernyataan berikut:

```
permit(
    principal in ?principal,
    action == PhotoFlash::Action::"view",
    resource == PhotoFlash::Photo::"VacationPhoto94.jpg"
);
```

Ini juga menggunakan `definition.txt` file berikut untuk memberikan nilai untuk `definition` parameter:

```
{
    "templateLinked": {
        "policyTemplateId": "PTEXAMPLEabcdefg111111",
        "principal": {
            "entityType": "PhotoFlash::User",
            "entityId": "alice"
        }
    }
}
```

Output menunjukkan sumber daya, yang didapatnya dari template, dan prinsipal, yang didapatnya dari parameter definisi

```
$ aws verifiedpermissions create-policy \
    --definition file://definition.txt
    --policy-store-id PSEXAMPLEabcdefg111111
{
    "createdDate": "2023-05-22T18:57:53.298278+00:00",
    "lastUpdatedDate": "2023-05-22T18:57:53.298278+00:00",
    "policyId": "TPEXAMPLEabcdefg111111",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyType": "TEMPLATELINKED",
    "principal": {
        "entityId": "alice",
        "entityType": "PhotoFlash::User"
    },
    "resource": {
        "entityId": "VacationPhoto94.jpg",
        "entityType": "PhotoFlash::Photo"
    }
}
```

------

# Mengedit templat kebijakan Izin Terverifikasi Amazon
<a name="policy-templates-edit"></a>

Anda dapat mengedit, atau memperbarui, templat kebijakan di Izin Terverifikasi menggunakan Konsol Manajemen AWS, AWS CLI, atau templat. AWS SDKs Mengedit templat kebijakan akan secara otomatis memperbarui kebijakan yang ditautkan ke, atau berdasarkan, templat, jadi berhati-hatilah saat mengedit templat kebijakan dan pastikan Anda tidak secara tidak sengaja memperkenalkan perubahan yang merusak aplikasi Anda.

Anda dapat mengubah elemen template kebijakan berikut:
+ Yang `action` direferensikan oleh templat kebijakan
+ Klausul kondisi, seperti dan `when` `unless`

Anda tidak dapat mengubah elemen templat kebijakan berikut. Untuk mengubah salah satu elemen ini, Anda harus menghapus dan membuat ulang templat kebijakan.
+ Pengaruh template kebijakan dari `permit` atau `forbid`
+ Yang `principal` direferensikan oleh templat kebijakan
+ Yang `resource` direferensikan oleh templat kebijakan

------
#### [ Konsol Manajemen AWS ]

**Untuk mengedit templat kebijakan Anda**

1. Buka [konsol Izin Terverifikasi](https://console.aws.amazon.com/verifiedpermissions/). Pilih toko polis Anda.

1. Di panel navigasi di sebelah kiri, pilih **Templat kebijakan**. Konsol menampilkan semua templat kebijakan yang Anda buat di penyimpanan kebijakan saat ini.

1. Pilih tombol radio di samping templat kebijakan untuk menampilkan detail tentang templat kebijakan, seperti saat templat kebijakan dibuat, diperbarui, dan konten templat kebijakan.

1. Pilih **Edit** untuk mengedit templat kebijakan Anda. Perbarui **deskripsi Kebijakan** dan **badan Kebijakan** seperlunya, lalu pilih **Perbarui templat kebijakan**.

1. Anda dapat menghapus templat kebijakan dengan memilih tombol radio di samping templat kebijakan, lalu memilih **Hapus**. Pilih **OK** untuk mengonfirmasi penghapusan templat kebijakan.

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

**Untuk mengedit templat kebijakan**  
Anda dapat membuat kebijakan statis dengan menggunakan [UpdatePolicy](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_UpdatePolicy.html)operasi. Contoh berikut memperbarui templat kebijakan yang ditentukan dengan mengganti badan kebijakannya dengan kebijakan baru yang ditentukan dalam file.

Isi file`template1.txt`:

```
permit(
    principal in ?principal,
    action == Action::"view",
    resource in ?resource)
when {
    principal has department && principal.department == "research"
};
```

```
$ aws verifiedpermissions update-policy-template \
    --policy-template-id PTEXAMPLEabcdefg111111 \
    --description "My updated template description" \
    --statement file://template1.txt \ 
    --policy-store-id PSEXAMPLEabcdefg111111
{
    "createdDate": "2023-05-17T18:58:48.795411+00:00",
    "lastUpdatedDate": "2023-05-17T19:18:48.870209+00:00",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyTemplateId": "PTEXAMPLEabcdefg111111"
}
```

**Untuk memperbarui nama templat kebijakan**  
Anda dapat menyetel atau memperbarui nama templat kebijakan saat memperbarui templat kebijakan. Nama harus unik untuk semua templat kebijakan dalam toko kebijakan dan diawali dengan`name/`. Jika Anda tidak menyertakan bidang nama dalam permintaan pembaruan, nama yang ada tidak berubah. Untuk menghapus nama, atur ke string kosong.

```
$ aws verifiedpermissions update-policy-template \
    --policy-template-id PTEXAMPLEabcdefg111111 \
    --statement file://template1.txt \
    --policy-store-id PSEXAMPLEabcdefg111111 \
    --name name/example-policy-template
{
    "createdDate": "2023-05-17T18:58:48.795411+00:00",
    "lastUpdatedDate": "2023-05-17T19:18:48.870209+00:00",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyTemplateId": "PTEXAMPLEabcdefg111111"
}
```

------

# Izin Terverifikasi Amazon contoh kebijakan terkait templat
<a name="policy-templates-example-policies"></a>

Saat Anda membuat penyimpanan kebijakan di Izin Terverifikasi menggunakan metode **penyimpanan kebijakan sampel**, penyimpanan kebijakan Anda dibuat dengan kebijakan, templat kebijakan, dan skema yang telah ditentukan sebelumnya untuk proyek sampel yang Anda pilih. Contoh kebijakan terkait templat Izin Terverifikasi berikut dapat digunakan dengan penyimpanan kebijakan sampel dan kebijakan, templat kebijakan, dan skema masing-masing.

## PhotoFlash contoh
<a name="policy-templates-example-policies-photoflash"></a>

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Berikan akses terbatas ke foto bersama non-pribadi dengan pengguna dan foto** individu.

**catatan**  
Bahasa kebijakan Cedar menganggap suatu entitas menjadi `in` dirinya sendiri. Oleh karena `principal in User::"Alice"` itu, setara dengan`principal == User::"Alice"`.

```
permit (
 principal in PhotoFlash::User::"Alice",
 action in PhotoFlash::Action::"SharePhotoLimitedAccess",
 resource in PhotoFlash::Photo::"VacationPhoto94.jpg"
 );
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Berikan akses terbatas ke foto bersama non-pribadi** dengan pengguna dan album individual.

```
permit (
 principal in PhotoFlash::User::"Alice",
 action in PhotoFlash::Action::"SharePhotoLimitedAccess",
 resource in PhotoFlash::Album::"Italy2023"
 );
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Berikan akses terbatas ke foto bersama non-pribadi dengan grup teman dan foto** individual.

```
permit (
 principal in PhotoFlash::FriendGroup::"Jane::MySchoolFriends",
 action in PhotoFlash::Action::"SharePhotoLimitedAccess",
 resource in PhotoFlash::Photo::"VacationPhoto94.jpg"
 );
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Berikan akses terbatas ke foto bersama non-pribadi** dengan grup teman dan album.

```
permit (
 principal in PhotoFlash::FriendGroup::"Jane::MySchoolFriends",
 action in PhotoFlash::Action::"SharePhotoLimitedAccess",
 resource in PhotoFlash::Album::"Italy2023"
 );
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Berikan akses penuh ke foto bersama non-pribadi dengan grup teman dan foto** individual.

```
permit (
 principal in PhotoFlash::UserGroup::"Jane::MySchoolFriends",
 action in PhotoFlash::Action::"SharePhotoFullAccess",
 resource in PhotoFlash::Photo::"VacationPhoto94.jpg"
 );
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan **Memblokir pengguna dari akun**.

```
forbid(
 principal == PhotoFlash::User::"Bob",
 action,
 resource in PhotoFlash::Account::"Alice-account"
 );
```

## DigitalPetStore contoh
<a name="policy-templates-example-policies-digitalpetstore"></a>

Penyimpanan kebijakan DigitalPetStore sampel tidak menyertakan templat kebijakan apa pun. **Anda dapat melihat kebijakan yang disertakan dengan penyimpanan kebijakan dengan memilih Kebijakan di panel navigasi di sebelah kiri setelah membuat penyimpanan kebijakan **DigitalPetStore**contoh.**

## TinyToDo contoh
<a name="policy-templates-example-policies-tinytodo"></a>

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan yang memberikan akses penampil untuk setiap pengguna dan daftar tugas.

```
permit (
    principal == TinyTodo::User::"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_h2aKCU1ts|5ae0c4b1-6de8-4dff-b52e-158188686f31|bob",
    action in [TinyTodo::Action::"ReadList", TinyTodo::Action::"ListTasks"],
    resource == TinyTodo::List::"1"
);
```

Contoh berikut menunjukkan cara membuat kebijakan tertaut templat yang menggunakan templat kebijakan yang memberikan akses editor untuk pengguna individu dan daftar tugas.

```
permit (
    principal == TinyTodo::User::"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_h2aKCU1ts|5ae0c4b1-6de8-4dff-b52e-158188686f31|bob",
    action in [
        TinyTodo::Action::"ReadList",
        TinyTodo::Action::"UpdateList",
        TinyTodo::Action::"ListTasks",
        TinyTodo::Action::"CreateTask",
        TinyTodo::Action::"UpdateTask",
        TinyTodo::Action::"DeleteTask"
    ],
    resource == TinyTodo::List::"1"
);
```