

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

# Konsep kebijakan akses Amazon SNS utama
<a name="sns-access-policy-language-key-concepts"></a>

Bagian berikut menjelaskan konsep yang perlu Anda pahami untuk menggunakan bahasa kebijakan akses. Konsep-konsep disajikan dalam urutan logis, dengan istilah pertama yang perlu Anda ketahui di bagian atas daftar.

## Izin
<a name="permissions"></a>

*Izin*adalah konsep mengizinkan atau melarang beberapa jenis akses ke sumber daya tertentu. Izin pada dasarnya mengikuti bentuk ini: "A diizinkan/tidak diizinkan untuk melakukan B ke C jika D diterapkan." Misalnya,*Jane* (A) memiliki izin untuk *memublikasikan* (B) ke *TopicA* (C) selama *dia menggunakan protokol HTTP* (D). Setiap kali Jane memublikasikan TopicA, layanan memeriksa untuk melihat apakah dia memiliki izin dan apakah permintaan memenuhi persyaratan yang ditetapkan dalam izin.

## Pernyataan
<a name="statement"></a>

*Pernyataan* adalah deskripsi formal dari satu izin, yang ditulis dalam bahasa kebijakan akses. Anda selalu menulis pernyataan sebagai bagian dari dokumen kontainer yang lebih luas dikenal sebagai *kebijakan* (lihat konsep berikutnya).

## Kebijakan
<a name="policy"></a>

*Kebijakan* adalah dokumen (yang ditulis dalam bahasa kebijakan akses) yang bertindak sebagai kontainer untuk satu atau lebih pernyataan. Misalnya, kebijakan dapat memiliki dua pernyataan di dalamnya: satu yang menyatakan bahwa Jane dapat berlangganan menggunakan protokol email, dan satu lagi yang menyatakan bahwa Bob tidak dapat mempublikasikan ke Topik A. Seperti yang ditunjukkan pada gambar berikut, skenario yang setara adalah memiliki dua kebijakan, satu yang menyatakan bahwa Jane dapat berlangganan menggunakan protokol email, dan satu lagi yang menyatakan bahwa Bob tidak dapat mempublikasikan ke Topik A.

![\[Membandingkan dua cara mengatur pernyataan kebijakan di Amazon SNS. Di sebelah kiri, satu kebijakan (Kebijakan A) berisi dua pernyataan. Di sebelah kanan, dua pernyataan yang sama dibagi antara dua kebijakan, dengan masing-masing kebijakan berisi satu pernyataan. Diagram menggambarkan bahwa kedua pendekatan ini setara dalam hal bagaimana izin didefinisikan dan ditegakkan.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/AccessPolicyLanguage_Statement_and_Policy.gif)


Hanya karakter ASCII yang diizinkan dalam dokumen kebijakan. Anda dapat memanfaatkan `aws:SourceAccount` dan `aws:SourceOwner` mengatasi skenario di mana Anda perlu plug-in AWS layanan lain ARNs yang berisi karakter non-ASCII. Lihat perbedaan antara[`aws:SourceAccount` versus `aws:SourceOwner`](sns-access-policy-use-cases.md#source-account-versus-source-owner).



## Penerbit
<a name="issuer"></a>

*Penerbit* adalah orang yang menulis kebijakan untuk memberikan izin untuk sumber daya. Penerbit (menurut definisi) selalu menjadi pemilik sumber daya. AWS tidak mengizinkan pengguna AWS layanan untuk membuat kebijakan untuk sumber daya yang tidak mereka miliki. Jika John adalah pemilik sumber daya, AWS mengautentikasi identitas John ketika dia mengirimkan kebijakan yang ditulisnya untuk memberikan izin untuk sumber daya tersebut.

## Principal
<a name="principal"></a>

*Penanggung jawab* adalah orang atau orang-orang yang menerima izin dalam kebijakan. Penanggung jawab adalah A dalam pernyataan "A memiliki izin untuk melakukan B ke C jika D diterapkan." Dalam kebijakan, Anda dapat mengatur penanggung jawab ke "siapa pun" (yaitu, Anda dapat menentukan wildcard untuk mewakili semua orang). Anda mungkin melakukan ini, misalnya, jika Anda tidak ingin membatasi akses berdasarkan identitas sebenarnya dari peminta, tetapi sebaliknya berdasarkan pada beberapa karakteristik lain yang mengidentifikasi seperti alamat IP peminta.

## Tindakan
<a name="action"></a>

*Tindakan* adalah aktivitas yang izin untuk melakukannya dimiliki penanggung jawab. Tindakan adalah B dalam pernyataan "A memiliki izin untuk melakukan B ke C jika D diterapkan." Biasanya, tindakan hanya operasi dalam permintaan untuk AWS. Misalnya, Jane mengirimkan permintaan ke Amazon SNS dengan `Action``=Subscribe`. Anda dapat menentukan satu atau beberapa tindakan dalam kebijakan.

## Sumber daya
<a name="resource"></a>

*Sumber daya* adalah obyek yang diminta aksesnya oleh penanggung jawab. Sumber daya adalah C dalam pernyataan "A memiliki izin untuk melakukan B ke C jika D diterapkan."

## Syarat dan kunci
<a name="conditions"></a>

*Syarat* adalah pembatasan atau detail tentang izin. Syarat adalah D dalam pernyataan "A memiliki izin untuk melakukan B ke C jika D diterapkan." Bagian dari kebijakan yang menentukan syarat dapat menjadi yang paling rinci dan kompleks dari semua bagian. Syarat umum terkait dengan:
+ Tanggal dan waktu (misalnya, permintaan harus tiba sebelum hari tertentu)
+ Alamat IP (misalnya, alamat IP peminta harus bagian dari kisaran CIDR tertentu)

*Kunci* adalah karakteristik spesifik yang menjadi dasar pembatasan akses. Misalnya, tanggal dan waktu permintaan.

Anda menggunakan baik *syarat* maupun *kunci* bersama-sama untuk mengekspresikan pembatasan. Cara termudah untuk memahami bagaimana Anda benar-benar menerapkan pembatasan adalah dengan contoh: Jika Anda ingin membatasi akses sebelum 30 Mei 2010, Anda menggunakan syarat yang disebut `DateLessThan`. Anda menggunakan tombol yang disebut `aws:CurrentTime` dan mengaturnya ke nilai `2010-05-30T00:00:00Z`. AWS mendefinisikan syarat dan kunci yang dapat Anda gunakan. AWS Layanan itu sendiri (misalnya, Amazon SQS atau Amazon SNS) mungkin juga menentukan kunci khusus layanan. Untuk informasi selengkapnya, lihat [Izin API Amazon SNS: Tindakan dan referensi sumber daya](sns-access-policy-language-api-permissions-reference.md).

## Pemohon
<a name="requester"></a>

*Pemohon* adalah orang yang mengirim permintaan ke AWS layanan dan meminta akses ke sumber daya tertentu. Pemohon mengirimkan permintaan ke AWS yang pada dasarnya mengatakan: “Apakah Anda mengizinkan saya melakukan B ke C di mana D berlaku?”

## Evaluasi
<a name="evaluation"></a>

*Evaluasi* adalah proses yang digunakan AWS layanan untuk menentukan apakah permintaan yang masuk harus ditolak atau diizinkan berdasarkan kebijakan yang berlaku. Untuk informasi tentang logika evaluasi, lihat [Logika evaluasi](sns-access-policy-language-evaluation-logic.md).

## Efek
<a name="effect"></a>

*Efek* adalah hasil yang Anda inginkan untuk dikembalikan pernyataan kebijakan xpada waktu evaluasi. Anda menentukan nilai ini ketika Anda menulis pernyataan dalam kebijakan, dan nilai-nilai yang mungkin adalah *menolak* dan *mengizinkan*.

Misalnya, Anda dapat menulis kebijakan yang memiliki pernyataan yang *menyangkal* semua permintaan yang berasal dari Antartika (effect=deny mengingat permintaan tersebut menggunakan alamat IP yang dialokasikan ke Antartika). Sebagai alternatif, Anda dapat menulis kebijakan yang memiliki pernyataan yang *mengizinkan* semua permintaan yang *tidak* berasal dari Antartika (effect=allow mengingat permintaan tersebut tidak berasal dari Antartika). Meskipun dua pernyataan tersebut tampak seperti melakukan hal yang sama, dalam logika bahasa kebijakan akses, keduanya berbeda. Untuk informasi selengkapnya, lihat [Logika evaluasi](sns-access-policy-language-evaluation-logic.md).

Meskipun hanya ada dua nilai yang mungkin yang dapat Anda tentukan untuk efek (mengizinkan atau menolak), dapat ada tiga hasil yang berbeda pada waktu evaluasi kebijakan: *blokir secara default*, *perizinan*, atau *penolakan eksplisit*. Untuk informasi selengkapnya, lihat konsep berikut dan [Logika evaluasi](sns-access-policy-language-evaluation-logic.md).

## Blokir secara default
<a name="Define_SoftDeny"></a>

*Blokir secara default* adalah hasil default dari kebijakan jika tidak ada izin atau penolakan eksplisit. 

## Izinkan
<a name="allow"></a>

*Perizinan* dihasilkan dari pernyataan yang memiliki efek=mengizinkan, dengan asumsi syarat apa pun yang dinyatakan terpenuhi. Contoh: Mengizinkan permintaan jika diterima sebelum pukul 1:00 siang pada tanggal 30 April 2010. Perizinan mengabaikan semua blokir secara default, tetapi tidak mengabaikan penolakan eksplisit.

## Penolakan eksplisit
<a name="Define_HardDeny"></a>

*Penolakan eksplisit* dihasilkan dari pernyataan yang memiliki efek=menolak, dengan asumsi syarat apa pun yang dinyatakan terpenuhi. Contoh: Tolak semua permintaan jika berasal dari Antartika. Setiap permintaan yang berasal dari Antartika akan selalu ditolak tidak peduli apa yang mungkin diizinkan kebijakan lain apa pun.