

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

# Contoh kebijakan berbasis identitas untuk Amazon S3
<a name="example-policies-s3"></a>

Bagian ini menunjukkan beberapa contoh kebijakan berbasis identitas AWS Identity and Access Management (IAM) untuk mengontrol akses ke Amazon S3. Misalnya *kebijakan bucket (kebijakan* berbasis sumber daya), lihat. [Kebijakan Bucket untuk Amazon S3](bucket-policies.md) Untuk informasi lebih lanjut tentang bahasa kebijakan IAM, lihat[Kebijakan dan izin di Amazon S3](access-policy-language-overview.md).

Contoh kebijakan berikut akan berfungsi jika Anda menggunakannya secara terprogram. Tetapi, untuk menggunakannya dengan konsol Amazon S3, Anda harus memberikan izin tambahan yang diperlukan oleh konsol. Untuk informasi tentang menggunakan kebijakan seperti ini dengan konsol Amazon S3, lihat [Mengontrol akses ke bucket dengan kebijakan pengguna](walkthrough1.md). 

Untuk informasi selengkapnya tentang izin operasi S3 API menurut jenis sumber daya S3, lihat. [Izin yang diperlukan untuk operasi API Amazon S3](using-with-s3-policy-actions.md)

**Topics**
+ [Mengizinkan akses pengguna IAM ke salah satu bucket Anda](#iam-policy-ex0)
+ [Mengizinkan setiap akses pengguna IAM ke folder dalam bucket](#iam-policy-ex1)
+ [Mengizinkan grup memiliki folder bersama di Amazon S3](#iam-policy-ex2)
+ [Mengizinkan semua pengguna Anda membaca objek di sebagian bucket](#iam-policy-ex3)
+ [Mengizinkan mitra untuk menempatkan file ke dalam bagian tertentu bucket](#iam-policy-ex4)
+ [Membatasi akses ke bucket Amazon S3 dalam bucket tertentu Akun AWS](#iam-policy-ex6)
+ [Membatasi akses ke bucket Amazon S3 dalam unit organisasi Anda](#iam-policy-ex7)
+ [Membatasi akses ke bucket Amazon S3 di organisasi Anda](#iam-policy-ex8)
+ [Memberikan izin untuk mengambil PublicAccessBlock konfigurasi untuk Akun AWS](#using-with-s3-actions-related-to-accountss)
+ [Membatasi pembuatan bucket ke satu Wilayah](#condition-key-bucket-ops-1)

## Mengizinkan akses pengguna IAM ke salah satu bucket Anda
<a name="iam-policy-ex0"></a>

Dalam contoh ini, Anda ingin memberikan pengguna IAM dalam Akun AWS akses ke salah satu bucket Anda{{amzn-s3-demo-bucket1}}, dan memungkinkan pengguna untuk menambahkan, memperbarui, dan menghapus objek. 

Selain memberikan izin `s3:PutObject`, `s3:GetObject`, dan `s3:DeleteObject` bagi pengguna, kebijakan tersebut juga memberikan izin `s3:ListAllMyBuckets`, `s3:GetBucketLocation`, dan `s3:ListBucket`. Izin-izin tersebut adalah izin tambahan yang diperlukan oleh konsol tersebut. Selain itu, tindakan `s3:PutObjectAcl` dan `s3:GetObjectAcl` diperlukan untuk dapat menyalin, memotong, dan menempel objek di konsol. Untuk panduan contoh yang memberikan izin kepada pengguna dan mengujinya dengan menggunakan konsol, lihat [Mengontrol akses ke bucket dengan kebijakan pengguna](walkthrough1.md). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":["s3:ListBucket","s3:GetBucketLocation"],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*"
      }
   ]
}
```

------

## Mengizinkan setiap akses pengguna IAM ke folder dalam bucket
<a name="iam-policy-ex1"></a>

Dalam contoh ini, Anda ingin dua pengguna IAM, Mary dan Carlos, memiliki akses ke bucket Anda{{amzn-s3-demo-bucket1}}, sehingga mereka dapat menambahkan, memperbarui, dan menghapus objek. Namun, Anda ingin membatasi setiap akses pengguna ke satu prefiks (folder) dalam bucket. Anda dapat membuat folder dengan nama yang cocok dengan nama pengguna mereka. 

```
{{amzn-s3-demo-bucket1}}
   {{Mary}}/
   {{Carlos}}/
```

Untuk memberikan setiap pengguna akses hanya ke foldernya saja, Anda dapat menulis kebijakan untuk setiap pengguna dan melampirkannya secara sendiri-sendiri. Misalnya, Anda dapat melampirkan kebijakan berikut ke pengguna Mary untuk mengizinkan izin Amazon S3 tertentu pada folder `{{amzn-s3-demo-bucket1}}/{{Mary}}`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket1}}/{{Mary}}/*"
      }
   ]
}
```

------

Anda kemudian dapat melampirkan kebijakan serupa ke pengguna Carlos, menentukan folder `{{Carlos}}` dalam nilai`Resource`.

Alih-alih melampirkan kebijakan kepada masing-masing pengguna, Anda dapat menulis satu kebijakan yang menggunakan variabel kebijakan dan melampirkan kebijakan tersebut ke grup. Pertama, Anda harus membuat grup dan menambahkan Mary dan Carlos ke grup. Kebijakan contoh berikut memungkinkan serangkaian izin Amazon S3 pada folder `{{amzn-s3-demo-bucket1}}/${aws:username}`. Ketika kebijakan dievaluasi, variabel `${aws:username}` kebijakan diganti dengan nama pengguna pemohon. Misalnya, jika Mary mengirim permintaan untuk menempatkan objek, maka operasi hanya diperbolehkan jika Mary mengunggah objek tersebut ke `{{amzn-s3-demo-bucket1}}/Mary` folder.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/${aws:username}/*"
      }
   ]
}
```

------

**catatan**  
Saat menggunakan variabel kebijakan, Anda harus secara jelas menyebutkan versi `2012-10-17` dalam kebijakan tersebut. Versi bawaan bahasa kebijakan IAM, yaitu 2008-10-17, tidak mendukung variabel kebijakan ini. 

 Jika Anda ingin menguji kebijakan sebelumnya di konsol Amazon S3, maka konsol tersebut memerlukan izin tambahan, seperti yang ditunjukkan dalam kebijakan berikut. Untuk informasi tentang bagaimana konsol menggunakan izin ini, lihat [Mengontrol akses ke bucket dengan kebijakan pengguna](walkthrough1.md). 

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

****  

```
{
 "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowGroupToSeeBucketListInTheConsole",
      "Action": [ 
      	"s3:ListAllMyBuckets", 
      	"s3:GetBucketLocation" 
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"  
    },
    {
      "Sid": "AllowRootLevelListingOfTheBucket",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket1}}",
      "Condition": { 
            "StringEquals": {
                    "s3:prefix": [""], "s3:delimiter": ["/"]
                           }
                 }
    },
    {
      "Sid": "AllowListBucketOfASpecificUserPrefix",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket1}}",
      "Condition": {  "StringLike": {"s3:prefix": ["${aws:username}/*"] }
       }
    },
      {
     "Sid": "AllowUserSpecificActionsOnlyInTheSpecificUserPrefix",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket1}}/${aws:username}/*"
      }
  ]
}
```

------

**catatan**  
Dalam versi kebijakan 2012-10-17, variabel kebijakan dimulai dengan `$`. Perubahan sintaks ini berpotensi membuat konflik jika kunci objek Anda (nama objek) termasuk `$`.   
Untuk menghindari konflik ini, tentukan `$` karakter dengan menggunakan`${$}`. Misalnya, untuk menyertakan kunci objek `my$file` dalam kebijakan, tentukan sebagai`my${$}file`.

Meskipun nama pengguna IAM adalah pengidentifikasi yang dapat dibaca manusia dan mudah dikenali, tetapi nama-nama tersebut tidak harus bersifat unik secara global. Misalnya, jika pengguna Carlos meninggalkan organisasi dan Carlos lainnya bergabung, maka Carlos baru dapat mengakses informasi Carlos lama.

Alih-alih menggunakan nama pengguna, Anda bisa membuat folder berdasarkan pengguna IAM. IDs Setiap ID pengguna IAM adalah unik. Dalam hal ini, Anda harus mengubah kebijakan sebelumnya untuk menggunakan variabel kebijakan`${aws:userid}`. Untuk informasi lebih lanjut tentang pengidentifikasi pengguna, lihat [Pengidentifikasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) dalam *Panduan Pengguna IAM*.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::{{amzn-s3-demo-bucket1}}/home/${aws:userid}/*"
      }
   ]
}
```

------

### Mengizinkan pengguna non-IAM (pengguna aplikasi seluler) mengakses folder di dalam bucket
<a name="non-iam-mobile-app-user-access"></a>

Misalkan Anda ingin mengembangkan sebuah aplikasi seluler, sebuah permainan yang menyimpan data pengguna dalam bucket S3. Untuk setiap pengguna aplikasi, Anda ingin membuat folder dalam bucket Anda. Anda juga ingin membatasi akses setiap pengguna ke folder mereka sendiri. Tetapi Anda tidak dapat membuat folder sebelum seseorang mengunduh aplikasi Anda dan mulai memainkan game, karena Anda tidak memiliki ID pengguna mereka.

Dalam hal ini, Anda dapat meminta pengguna untuk masuk ke aplikasi Anda dengan menggunakan penyedia identitas publik seperti Login dengan Amazon, Facebook, atau Google. Setelah pengguna masuk ke aplikasi Anda melalui salah satu penyedia layanan ini, mereka memiliki ID pengguna yang dapat Anda gunakan untuk membuat folder kustom pengguna saat runtime.

Anda kemudian dapat menggunakan federasi identitas web AWS Security Token Service untuk mengintegrasikan informasi dari penyedia identitas dengan aplikasi Anda dan untuk mendapatkan kredensil keamanan sementara untuk setiap pengguna. Anda kemudian dapat membuat kebijakan IAM yang memungkinkan aplikasi mengakses bucket Anda dan melakukan operasi seperti membuat folder kustom pengguna dan mengunggah data. Untuk informasi lebih lanjut tentang federasi identitas web, lihat [Tentang Federasi Identitas Web](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html) dalam *Panduan Pengguna IAM*.

## Mengizinkan grup memiliki folder bersama di Amazon S3
<a name="iam-policy-ex2"></a>

Melampirkan kebijakan berikut ke grup akan memberikan kepada semua orang di grup akses ke folder berikut di Amazon S3: `{{amzn-s3-demo-bucket1}}/share/marketing`. Anggota grup diizinkan untuk hanya mengakses izin Amazon S3 tertentu saja yang ditampilkan dalam kebijakan dan hanya untuk objek di folder tertentu saja. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/share/marketing/*"
      }
   ]
}
```

------

## Mengizinkan semua pengguna Anda membaca objek di sebagian bucket
<a name="iam-policy-ex3"></a>

Dalam contoh ini, Anda membuat grup dengan nama `{{AllUsers}}`, yang berisi semua pengguna IAM yang dimiliki oleh Akun AWS. Anda kemudian melampirkan kebijakan yang memberikan grup akses ke `GetObject` dan `GetObjectVersion`, tetapi hanya untuk objek yang ada di folder `{{amzn-s3-demo-bucket1}}/readonly` saja. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:GetObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/readonly/*"
      }
   ]
}
```

------

## Mengizinkan mitra untuk menempatkan file ke dalam bagian tertentu bucket
<a name="iam-policy-ex4"></a>

Dalam contoh ini, Anda membuat grup yang disebut `{{AnyCompany}}` yang mewakili perusahaan mitra. Anda membuat pengguna IAM untuk orang atau aplikasi tertentu di perusahaan mitra yang memerlukan akses, lalu Anda menempatkan pengguna tersebut dalam grup. 

Anda kemudian melampirkan kebijakan yang memberikan `PutObject` akses kepada grup ke folder berikut dalam bucket:

`{{amzn-s3-demo-bucket1}}/uploads/anycompany` 

Anda ingin mencegah `{{AnyCompany}}` grup melakukan hal lain dengan bucket, sehingga Anda menambahkan pernyataan yang secara jelas menolak izin untuk tindakan Amazon S3 kecuali pada sumber daya `PutObject` Amazon S3 di. Akun AWS

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/{{anycompany}}/*"
      },
      {
         "Effect":"Deny",
         "Action":"s3:*",
         "NotResource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/{{anycompany}}/*"
      }
   ]
}
```

------

## Membatasi akses ke bucket Amazon S3 dalam bucket tertentu Akun AWS
<a name="iam-policy-ex6"></a>

Jika Anda ingin memastikan bahwa kepala sekolah Amazon S3 Anda hanya mengakses sumber daya yang ada di dalam tepercaya Akun AWS, Anda dapat membatasi akses. Misalnya, [kebijakan IAM berbasis identitas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) ini menggunakan `Deny` efek untuk memblokir akses ke tindakan Amazon S3, kecuali sumber daya Amazon S3 yang sedang diakses ada di akun `{{222222222222}}`. Untuk mencegah prinsipal IAM dalam mengakses objek Amazon S3 di luar akun, lampirkan kebijakan IAM berikut: Akun AWS 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "{{222222222222}}"
          ]
        }
      }
    }
  ]
}
```

------

**catatan**  
Kebijakan ini tidak menggantikan kontrol akses IAM Anda yang ada, karena tidak memberikan akses apa pun. Sebagai gantinya, kebijakan ini bertindak sebagai pagar pembatas tambahan untuk izin IAM Anda yang lain, terlepas dari izin yang diberikan melalui kebijakan IAM lainnya.

Pastikan untuk mengganti ID akun `{{222222222222}}` di polis dengan ID Anda sendiri Akun AWS. Untuk menerapkan kebijakan ke beberapa akun sambil tetap mempertahankan batasan ini, ganti ID akun dengan kunci `aws:PrincipalAccount` kondisi. Kondisi ini mensyaratkan bahwa pengguna utama dan sumber daya harus berada dalam akun yang sama.

## Membatasi akses ke bucket Amazon S3 dalam unit organisasi Anda
<a name="iam-policy-ex7"></a>

Jika Anda memiliki [unit organisasi (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) yang disiapkan AWS Organizations, Anda mungkin ingin membatasi akses bucket Amazon S3 ke bagian tertentu dari organisasi Anda. Dalam contoh ini, kami akan menggunakan `aws:ResourceOrgPaths` kunci untuk membatasi akses bucket Amazon S3 ke OU di organisasi Anda. Untuk contoh ini, [ID OU](https://docs.aws.amazon.com/organizations/latest/APIReference/API_OrganizationalUnit.html) adalah`{{ou-acroot-exampleou}}`. Pastikan untuk mengganti nilai ini dalam kebijakan Anda sendiri dengan OU Anda sendiri IDs.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "AllowS3AccessOutsideMyBoundary",
       "Effect": "Allow",
       "Action": [
         "s3:*"
       ],
       "Resource": "*",
       "Condition": {
         "ForAllValues:StringLike": {
           "aws:ResourceOrgPaths": [
             "{{o-acorg/r-acroot/ou-acroot-exampleou/}}"
           ] 
         }
       }
     }
   ]
 }
```

------

**catatan**  
Kebijakan ini tidak memberikan akses apa pun. Sebagai gantinya, kebijakan ini bertindak sebagai penghalang untuk izin IAM Anda yang lain, mencegah pengguna utama mengakses objek Amazon S3 di luar batas yang ditentukan OU.

Kebijakan ini menolak akses ke tindakan Amazon S3 kecuali objek Amazon S3 yang sedang diakses ada di OU di `{{ou-acroot-exampleou}}` organisasi Anda. [Kondisi kebijakan IAM mengharuskan`aws:ResourceOrgPaths`, kunci kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) multivalued, untuk memuat salah satu jalur OU yang terdaftar. Kebijakan menggunakan `ForAllValues:StringNotLike` operator untuk membandingkan nilai yang tercantum OUs tanpa `aws:ResourceOrgPaths` pencocokan peka huruf besar/kecil.

## Membatasi akses ke bucket Amazon S3 di organisasi Anda
<a name="iam-policy-ex8"></a>

Untuk membatasi akses ke objek Amazon S3 dalam organisasi Anda, lampirkan kebijakan IAM ke root organisasi, terapkan ke semua akun di organisasi Anda. Untuk mewajibkan pengguna utama IAM Anda mengikuti aturan ini, gunakan kebijakan kontrol [layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCP). Jika Anda memilih untuk menggunakan SCP, pastikan untuk [menguji SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-warning-testing-effect) secara menyeluruh sebelum melampirkan kebijakan ke root organisasi.

Dalam contoh kebijakan berikut, akses ditolak ke tindakan Amazon S3 kecuali objek Amazon S3 yang diakses berada di organisasi yang sama dengan pengguna utama IAM yang mengaksesnya:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "DenyS3AccessOutsideMyBoundary",
       "Effect": "Deny",
       "Action": [
         "s3:*"
       ],
       "Resource": "arn:aws:s3:::*/*",
       "Condition": {
         "StringNotEquals": {
           "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
         }
       }
     }
   ]
 }
```

------

**catatan**  
Kebijakan ini tidak memberikan akses apa pun. Sebagai gantinya, kebijakan ini bertindak sebagai penghalang untuk izin IAM Anda yang lain, mencegah pengguna utama mengakses objek Amazon S3 apa pun di luar organisasi Anda. Kebijakan ini juga berlaku untuk sumber daya Amazon S3 yang dibuat setelah kebijakan diberlakukan.

[Kondisi kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam contoh ini mengharuskan `aws:ResourceOrgID` dan `aws:PrincipalOrgID` agar sama satu dengan yang lainnya. Dengan persyaratan ini, pengguna utama yang membuat permintaan dan sumber daya yang diakses harus berada di organisasi yang sama.

## Memberikan izin untuk mengambil PublicAccessBlock konfigurasi untuk Akun AWS
<a name="using-with-s3-actions-related-to-accountss"></a>

Contoh kebijakan berbasis identitas berikut memberikan `s3:GetAccountPublicAccessBlock` izin kepada pengguna. Untuk izin ini, Anda mengatur nilai `Resource` ke `"*"`. Untuk informasi tentang sumber daya ARNs, lihat[Sumber daya kebijakan untuk Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action":[
            "s3:GetAccountPublicAccessBlock" 
         ],
         "Resource":[
            "*"
         ]
       }
    ]
}
```

------

## Membatasi pembuatan bucket ke satu Wilayah
<a name="condition-key-bucket-ops-1"></a>

Misalkan Akun AWS administrator ingin memberikan izin kepada penggunanya (Dave) untuk membuat ember di Wilayah Amerika Selatan (São Paulo) saja. Administrator akun dapat melampirkan kebijakan pengguna berikut ini yang memberikan izin `s3:CreateBucket` dengan syarat seperti yang ditunjukkan. Pasangan nilai kunci dalam pemblokiran `Condition` menentukan kunci `s3:LocationConstraint` dan Wilayah `sa-east-1` sebagai nilainya.

**catatan**  
Dalam contoh ini, pemilik bucket memberikan izin kepada salah satu penggunanya, sehingga kebijakan bucket atau kebijakan pengguna dapat digunakan. Contoh ini menunjukkan kebijakan pengguna.

Untuk daftar Wilayah Amazon S3, lihat [Wilayah dan Titik Akhir](https://docs.aws.amazon.com/general/latest/gr/s3.html) di *Referensi Umum AWS*. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "statement1",
         "Effect": "Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Menambahkan penolakan eksplisit**  
Kebijakan sebelumnya membatasi pengguna untuk membuat bucket di Wilayah lain kecuali `sa-east-1`. Namun, beberapa kebijakan lain mungkin memberikan izin kepada pengguna ini untuk membuat bucket di Wilayah lain. Misalnya, jika pengguna merupakan bagian dari sebuah kelompok, dan kelompok tersebut mungkin memiliki kebijakan yang melekat padanya yang memberikan izin kepada semua pengguna dalam kelompok tersebut untuk membuat bucket di Wilayah lain. Untuk memastikan bahwa pengguna tidak mendapatkan izin untuk membuat bucket di Wilayah lain, Anda dapat menambahkan pernyataan penolakan eksplisit dalam kebijakan di atas. 

Pernyataan `Deny` menggunakan kondisi `StringNotLike`. Artinya, permintaan buat bucket ditolak jika kendala lokasi tidak `sa-east-1`. Penolakan eksplisit tidak memungkinkan pengguna membuat bucket di Wilayah lain mana pun, apa pun izin lain yang didapat pengguna. Kebijakan berikut mencakup pernyataan penolakan eksplisit.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringNotLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Uji kebijakan dengan AWS CLI**  
Anda dapat menguji kebijakan menggunakan `create-bucket` AWS CLI perintah berikut. Contoh ini menggunakan file `bucketconfig.txt` untuk menentukan batasan lokasi. Perhatikan jalur Windows file. Anda perlu memperbarui nama bucket dan alurnya sesuai kebutuhan. Anda harus memberikan kredensial pengguna dengan menggunakan parameter `--profile`. *Untuk informasi selengkapnya tentang pengaturan dan penggunaan AWS CLI, lihat [Mengembangkan dengan Amazon S3 menggunakan AWS CLI di Referensi API](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) Amazon S3.*

```
aws s3api create-bucket --bucket {{examplebucket}} --profile AccountADave --create-bucket-configuration file://c:/Users/someUser/bucketconfig.txt
```

File `bucketconfig.txt` menentukan konfigurasi sebagai berikut.

```
{"LocationConstraint": "sa-east-1"}
```