

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

# Contoh 3: Pemilik bucket yang memberikan izin kepada penggunanya ke objek yang bukan miliknya
<a name="example-walkthroughs-managing-access-example3"></a>

**penting**  
Memberikan izin untuk peran IAM adalah praktik yang lebih baik daripada memberikan izin kepada pengguna individu. Untuk mempelajari cara melakukannya, lihat [Memahami izin lintas akun dan menggunakan peran IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Langkah 0: Bersiap-siap untuk panduan](#access-policies-walkthrough-cross-account-acl-step0)
+ [Langkah 1: Melakukan tugas Akun A](#access-policies-walkthrough-cross-account-acl-acctA-tasks)
+ [Langkah 2: Melakukan tugas Akun B](#access-policies-walkthrough-cross-account-acl-acctB-tasks)
+ [Langkah 3: Menguji izin](#access-policies-walkthrough-cross-account-acl-verify)
+ [Langkah 4: Membersihkan](#access-policies-walkthrough-cross-account-acl-cleanup)

Skenario untuk contoh ini adalah bahwa pemilik bucket ingin memberikan izin untuk mengakses objek, tetapi pemilik bucket tidak memiliki semua objek di bucket. Untuk contoh ini, pemilik bucket mencoba memberikan izin kepada pengguna yang ada di akunnya sendiri.

Pemilik bucket dapat mengaktifkan orang lain Akun AWS untuk mengunggah objek. Secara default, pemilik bucket tidak memiliki objek yang ditulis ke bucket oleh orang lain Akun AWS. Objek dimiliki oleh akun yang menulisnya ke bucket S3. Jika pemilik bucket tidak memiliki objek di bucket, pemilik objek harus terlebih dahulu memberikan izin kepada pemilik bucket menggunakan daftar kontrol akses objek (ACL). Kemudian, pemilik bucket dapat memberikan izin ke objek yang tidak mereka miliki. Untuk informasi selengkapnya, lihat [bucket Amazon S3 dan kepemilikan objek](access-policy-language-overview.md#about-resource-owner).

Jika pemilik bucket menerapkan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan S3 Object untuk bucket, pemilik bucket akan memiliki semua objek di bucket, termasuk objek yang ditulis oleh yang lain. Akun AWS Pendekatan ini menyelesaikan masalah bahwa objek tidak dimiliki oleh pemilik ember. Kemudian, Anda dapat mendelegasikan izin kepada pengguna di akun Anda sendiri, atau ke orang lain Akun AWS.

**catatan**  
S3 Object Ownership adalah setelan tingkat ember Amazon S3 yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket dan untuk menonaktifkan atau mengaktifkan. ACLs Secara default, Kepemilikan Objek disetel ke setelan diberlakukan pemilik Bucket, dan semuanya ACLs dinonaktifkan. Ketika ACLs dinonaktifkan, pemilik bucket memiliki semua objek di bucket dan mengelola akses ke mereka secara eksklusif dengan menggunakan kebijakan manajemen akses.  
 Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan. ACLs Kami menyarankan agar Anda tetap ACLs dinonaktifkan, kecuali dalam keadaan di mana Anda perlu mengontrol akses untuk setiap objek secara individual. Dengan ACLs dinonaktifkan, Anda dapat menggunakan kebijakan untuk mengontrol akses ke semua objek di bucket, terlepas dari siapa yang mengunggah objek ke bucket Anda. Untuk informasi selengkapnya, lihat [Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda](about-object-ownership.md).

Dalam contoh ini, kami menganggap pemilik bucket belum menerapkan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek. Pemilik bucket mendelegasikan izin kepada pengguna di akunnya sendiri. Berikut ini adalah ringkasan dari langkah-langkah penelusuran: 

![\[Pemilik bucket yang memberikan izin ke objek yang tidak dimilikinya.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/access-policy-ex3.png)


1. Pengguna administrator Akun A melampirkan kebijakan bucket dengan dua pernyataan.
   + Memungkinkan izin lintas akun ke Akun B untuk mengunggah objek.
   + Memungkinkan pengguna dalam akunnya sendiri untuk mengakses objek yang ada dalam bucket.

1. Pengguna administrator Akun B mengunggah objek ke bucket yang dimiliki oleh Akun A.

1. Administrator Akun B memperbarui ACL objek yang menambahkan pemberian yang memberikan pemilik bucket izin kontrol penuh pada objek.

1. Pengguna di Akun A memverifikasi dengan mengakses objek di dalam bucket, terlepas dari siapa pemiliknya.

Untuk contoh ini, Anda memerlukan dua akun. Tabel berikut menunjukkan cara kami merujuk akun-akun ini, dan pengguna administrator yang ada dalam akun-akun tersebut. Dalam panduan ini, Anda tidak menggunakan kredensial pengguna root, menurut pedoman IAM yang direkomendasikan. Untuk informasi selengkapnya, lihat [Tentang menggunakan pengguna administrator untuk membuat sumber daya dan memberikan izin](example-walkthroughs-managing-access.md#about-using-root-credentials). Sebagai gantinya, Anda membuat administrator di setiap akun dan menggunakan kredensial tersebut untuk membuat sumber daya dan memberikan mereka izin.


| Akun AWS ID | Akun disebut sebagai | Administrator pada akun  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Akun A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Akun B  |  AccountBadmin  | 

Semua tugas membuat pengguna dan memberikan izin dilakukan di Konsol Manajemen AWS. Untuk memverifikasi izin, penelusuran menggunakan alat baris perintah, AWS Command Line Interface (AWS CLI) dan AWS Tools for Windows PowerShell, jadi Anda tidak perlu menulis kode apa pun. 

## Langkah 0: Bersiap-siap untuk panduan
<a name="access-policies-walkthrough-cross-account-acl-step0"></a>

1. Pastikan Anda memiliki dua Akun AWS dan setiap akun memiliki satu administrator seperti yang ditunjukkan pada tabel di bagian sebelumnya.

   1. Mendaftar untuk Akun AWS, jika diperlukan. 

   1. Menggunakan kredensi Akun A, masuk ke [Konsol IAM](https://console.aws.amazon.com/iam/) dan lakukan hal berikut untuk membuat pengguna administrator:
      + Buat pengguna **AccountAadmin** dan catat kredensil keamanan pengguna. Untuk informasi lebih lanjut tentang penambahan pengguna, lihat [Membuat Pengguna IAM dalam Akun AWS Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) dalam *Panduan Pengguna IAM*. 
      + Berikan izin administrator **AccountAadmin**dengan melampirkan kebijakan pengguna yang memberikan akses penuh. Untuk instruksi, lihat [Mengelola kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) dalam *Panduan Pengguna IAM*. 
      + Di **Dasbor** [Konsol IAM](https://console.aws.amazon.com/iam/), perhatikan URL **Masuk Pengguna IAM**. Semua pengguna di akun tersebut harus menggunakan URL ini saat masuk ke Konsol Manajemen AWS. Untuk informasi lebih lanjut, lihat [Cara pengguna masuk ke akun anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) dalam *Panduan Pengguna IAM*. 

   1. Ulangi langkah sebelumnya dengan menggunakan kredensial Akun B dan buat pengguna administrator **AccountBadmin**.

1. Siapkan salah satu AWS CLI atau Tools untuk Windows PowerShell. Pastikan Anda menyimpan kredensial administrator seperti berikut ini:
   + Jika menggunakan AWS CLI, buat dua profil, `AccountAadmin` dan`AccountBadmin`, dalam file konfigurasi.
   + Jika menggunakan Tools untuk Windows PowerShell, pastikan bahwa Anda menyimpan kredensyal untuk sesi sebagai `AccountAadmin` dan. `AccountBadmin`

   Untuk petunjuk, lihat [Menyiapkan alat untuk penelusuran](policy-eval-walkthrough-download-awscli.md). 

## Langkah 1: Melakukan tugas Akun A
<a name="access-policies-walkthrough-cross-account-acl-acctA-tasks"></a>

Lakukan langkah-langkah berikut untuk Akun A:

### Langkah 1.1: Masuk ke konsol tersebut
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example3"></a>

Menggunakan URL login pengguna IAM untuk Akun A, masuk ke pengguna Konsol Manajemen AWS sebagai**AccountAadmin**. Pengguna ini akan membuat bucket dan melampirkan kebijakan pada bucket tersebut. 

### Langkah 1.2: Buat bucket dan pengguna, dan menambahkan kebijakan bucket yang memberikan izin pengguna
<a name="access-policies-walkthrough-cross-account-acl-create-bucket"></a>

1. Pada konsol Amazon S3, buat bucket. Latihan ini mengasumsikan bahwa ember dibuat di AS Timur (Virginia N.) Wilayah AWS, dan namanya adalah. `amzn-s3-demo-bucket1`

   Untuk petunjuk, lihat [Membuat bucket tujuan umum](create-bucket-overview.md). 

1. Di [Konsol IAM](https://console.aws.amazon.com/iam/), buat pengguna**Dave**. 

   Untuk step-by-step petunjuk, lihat [Membuat pengguna IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) di *Panduan Pengguna IAM*. 

1. Perhatikan kredensi Dave pengguna. 

1. Pada konsol Amazon S3, lampirkan kebijakan bucket berikut ini ke bucket `amzn-s3-demo-bucket1`. Untuk petunjuk, lihat [Menambahkan kebijakan bucket dengan menggunakan konsol Amazon S3](add-bucket-policy.md). Ikuti langkah-langkah untuk menambahkan kebijakan bucket. Untuk informasi tentang cara menemukan akun IDs, lihat [Menemukan Akun AWS ID Anda](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingYourAccountIdentifiers). 

   Kebijakan tersebut memberikan izin `s3:PutObject` dan `s3:ListBucket` kepada Akun B. Kebijakan ini juga memberikan `s3:GetObject` izin `Dave` kepada pengguna. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "s3:PutObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "Statement3",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/Dave"
               },
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
       ]
   }
   ```

------

## Langkah 2: Melakukan tugas Akun B
<a name="access-policies-walkthrough-cross-account-acl-acctB-tasks"></a>

Setelah Akun B memiliki izin untuk melakukan operasi pada bucket Akun A, administrator Akun B melakukan hal berikut:
+ Mengunggah objek ke bucket Akun A 
+ Menambahkan hibah di objek ACL untuk mengizinkan Akun A, pemilik bucket, kontrol penuh

**Menggunakan AWS CLI**

1. Menggunakan `put-object` AWS CLI perintah, unggah objek. Parameter `--body` dalam perintah mengidentifikasi file sumber yang akan diunggah. Misalnya, jika file ada di `C:` drive Windows mesin, tentukan`c:\HappyFace.jpg`. Parameter `--key` menyediakan nama kunci untuk objek. 

   ```
   aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --profile AccountBadmin
   ```

1. Tambahkan pemberian pada ACL objek untuk memungkinkan pemilik bucket mengontrol penuh objek. Untuk informasi tentang cara menemukan ID pengguna kanonik, lihat [Menemukan ID pengguna kanonik untuk Anda Akun AWS di Panduan Referensi](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId) Manajemen *AWS Akun*.

   ```
   aws s3api put-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --grant-full-control id="AccountA-CanonicalUserID" --profile AccountBadmin
   ```

**Menggunakan Alat untuk Windows PowerShell**

1. Menggunakan `Write-S3Object` perintah, unggah objek. 

   ```
   Write-S3Object -BucketName amzn-s3-demo-bucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountBadmin
   ```

1. Tambahkan pemberian pada ACL objek untuk memungkinkan pemilik bucket mengontrol penuh objek.

   ```
   Set-S3ACL -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -CannedACLName "bucket-owner-full-control" -StoredCreden
   ```

## Langkah 3: Menguji izin
<a name="access-policies-walkthrough-cross-account-acl-verify"></a>

Sekarang, verifikasi pengguna Dave di Akun A apakah dapat mengakses objek yang dimiliki oleh Akun B.

**Menggunakan AWS CLI**

1. Tambahkan kredensi Dave pengguna ke file AWS CLI konfigurasi dan buat profil baru,. `UserDaveAccountA` Untuk informasi selengkapnya, lihat [Menyiapkan alat untuk penelusuran](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Jalankan perintah `get-object` CLI untuk mengunduh `HappyFace.jpg` dan menyimpannya secara lokal. Anda memberikan kredensial pengguna Dave dengan menambahkan parameter `--profile`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg Outputfile.jpg --profile UserDaveAccountA
   ```

**Menggunakan Alat untuk Windows PowerShell**

1. Simpan AWS kredensi Dave pengguna, seperti`UserDaveAccountA`, ke toko persisten. 

   ```
   Set-AWSCredentials -AccessKey UserDave-AccessKey -SecretKey UserDave-SecretAccessKey -storeas UserDaveAccountA
   ```

1. Jalankan perintah `Read-S3Object` untuk mengunduh objek `HappyFace.jpg` dan menyimpannya secara lokal. Anda memberikan kredensial ke pengguna Dave dengan menambahkan parameter `-StoredCredentials`. 

   ```
   Read-S3Object -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -file HappyFace.jpg  -StoredCredentials UserDaveAccountA
   ```

## Langkah 4: Membersihkan
<a name="access-policies-walkthrough-cross-account-acl-cleanup"></a>

1. Setelah selesai melakukan pengujian, Anda dapat melakukan hal berikut untuk membersihkan:

   1. Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/) menggunakan kredensial Akun A, dan lakukan hal-hal berikut ini:
     + Pada konsol Amazon S3, hapus kebijakan bucket yang terlampir pada *amzn-s3-demo-bucket1*. Dalam bucket **Properti**, hapus kebijakan yang ada dalam bagian **Izin**. 
     + Jika bucket dibuat untuk latihan ini, pada konsol Amazon S3, hapus objek dan kemudian hapus bucket. 
     + Di [Konsol IAM](https://console.aws.amazon.com/iam/), hapus **AccountAadmin**pengguna. Untuk step-by-step petunjuk, lihat [Menghapus pengguna IAM di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) *IAM*.

1. Masuklah ke [Konsol Manajemen AWS](https://console.aws.amazon.com/) menggunakan kredensial Akun B. Di [Konsol IAM](https://console.aws.amazon.com/iam/), hapus pengguna **AccountBadmin**.