

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

# Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun
<a name="example-walkthroughs-managing-access-example2"></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**
+ [Bersiap untuk panduan](#cross-acct-access-step0)
+ [Langkah 1: Melakukan tugas Akun A](#access-policies-walkthrough-cross-account-permissions-acctA-tasks)
+ [Langkah 2: Melakukan tugas Akun B](#access-policies-walkthrough-cross-account-permissions-acctB-tasks)
+ [Langkah 3: (Opsional) Coba penolakan eksplisit](#access-policies-walkthrough-example2-explicit-deny)
+ [Langkah 4: Membersihkan](#access-policies-walkthrough-example2-cleanup-step)

Sebuah Akun AWS—misalnya, Akun a—dapat memberikan izin lain Akun AWS, Akun B, untuk mengakses sumber dayanya seperti ember dan objek. Akun B kemudian dapat mendelegasikan izin tersebut kepada pengguna dalam akunnya. Dalam skenario contoh ini, pemilik bucket memberikan izin lintas akun kepada akun lain untuk melakukan operasi bucket tertentu.

**catatan**  
Akun A juga dapat secara langsung memberikan izin kepada pengguna di Akun B dengan menggunakan kebijakan bucket. Namun, pengguna masih memerlukan izin dari akun induk, Akun B, tempat pengguna berada, bahkan jika Akun B tidak memiliki izin dari Akun A. Selama pengguna memiliki izin dari pemilik sumber daya dan akun induk, pengguna akan dapat mengakses sumber daya.

Berikut ini adalah ringkasan langkah-langkah panduan:

![\[Akun AWS Pemberian Akun AWS izin lain untuk mengakses sumber dayanya.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/access-policy-ex2.png)


1. Pengguna administrator Akun A melampirkan kebijakan bucket yang memberikan izin lintas akun kepada Akun B untuk melakukan operasi bucket tertentu.

   Perhatikan bahwa pengguna administrator di Akun B akan secara otomatis mewarisi izin tersebut.

1. Pengguna administrator Akun B melampirkan kebijakan pengguna kepada pengguna yang mendelegasikan izin yang diterima pengguna administrator Akun B dari Akun A.

1. Pengguna di Akun B kemudian memverifikasi izin dengan mengakses objek yang ada dalam bucket yang dimiliki oleh Akun A.

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


| Akun AWS ID | Akun disebut sebagai | Pengguna 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, panduan menggunakan alat baris perintah, ( AWS Command Line Interface CLI) dan AWS Tools for Windows PowerShell, jadi Anda tidak perlu menulis kode apa pun.

## Bersiap untuk panduan
<a name="cross-acct-access-step0"></a>

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

   1. Mendaftar untuk Akun AWS, jika diperlukan. 

   1. Dengan menggunakan kredensial Akun A, masuk ke [Konsol IAM](https://console.aws.amazon.com/iam/home?#home) untuk membuat pengguna administrator:

      1. Buat pengguna **AccountAadmin** dan catat kredensialnya. Untuk instruksi, lihat [Membuat Pengguna IAM dalam Akun AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) Anda, dalam *Panduan Pengguna IAM*. 

      1. Berikan hak administrator **AccountAadmin**dengan melampirkan kebijakan pengguna yang memberikan akses penuh. Untuk instruksi, lihat [Bekerja dengan Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) dalam *Panduan Pengguna IAM*. 

   1. **Saat Anda berada di konsol IAM, perhatikan **URL Masuk pengguna IAM** di Dasbor.** 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. Mengatur baik AWS Command Line Interface (AWS CLI) atau AWS Tools for Windows PowerShell. Pastikan Anda menyimpan kredensi pengguna administrator sebagai berikut:
   + Jika menggunakan AWS CLI, buat dua profil, `AccountAadmin` dan`AccountBadmin`, dalam file konfigurasi.
   + Jika menggunakan AWS Tools for 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). 

1. Simpan kredensial pengguna administrator, juga disebut sebagai profil. Anda dapat menggunakan nama profil alih-alih menentukan kredensial untuk setiap perintah yang Anda masukkan. Untuk informasi selengkapnya, lihat [Menyiapkan alat untuk penelusuran](policy-eval-walkthrough-download-awscli.md). 

   1. Tambahkan profil dalam file AWS CLI kredensyal untuk masing-masing pengguna administrator, `AccountAadmin` dan`AccountBadmin`, di dua akun. 

      ```
      [AccountAadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      
      [AccountBadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      ```

   1. Jika Anda menggunakan AWS Tools for Windows PowerShell, jalankan perintah berikut.

      ```
      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin
      set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin
      ```

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

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

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

### Langkah 1.2: Buat bucket
<a name="access-policies-walkthrough-example2a-create-bucket"></a>

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

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

1. Unggah objek sampel ke bucket.

   Untuk instruksi, buka [Langkah 2: Unggah objek ke bucket Anda](GetStartedWithS3.md#uploading-an-object-bucket). 

### Langkah 1.3: Melampirkan kebijakan bucket untuk memberikan izin lintas akun kepada Akun B
<a name="access-policies-walkthrough-example2a"></a>

Kebijakan bucket memberikan `s3:ListBucket` izin `s3:GetLifecycleConfiguration` dan ke Akun B. Diasumsikan bahwa Anda masih masuk ke konsol menggunakan kredensyal **AccountAadmin**pengguna.

1. Melampirkan kebijakan bucket berikut untuk `amzn-s3-demo-bucket`. Kebijakan tersebut memberikan izin Akun B untuk tindakan `s3:GetLifecycleConfiguration` dan `s3:ListBucket`.

   Untuk petunjuk, lihat [Menambahkan kebijakan bucket dengan menggunakan konsol Amazon S3](add-bucket-policy.md). 

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
               "s3:GetLifecycleConfiguration",
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
         }
      ]
   }
   ```

------

1. Verifikasi bahwa Akun B (dan dengan demikian pengguna administratornya) dapat melakukan operasi.
   + Verifikasi menggunakan AWS CLI

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Verifikasi menggunakan AWS Tools for Windows PowerShell

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin 
     get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin
     ```

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

Sekarang administrator Akun B membuat pengguna, yakni Dave, dan mendelegasikan izin yang diterima dari Akun A. 

### Langkah 2.1: Masuk ke Konsol Manajemen AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks-sign-in"></a>

Menggunakan URL login pengguna IAM untuk Akun B, pertama-tama masuk ke pengguna Konsol Manajemen AWS sebagai **AccountBadmin**. 

### Langkah 2.2: Buat Dave pengguna di Akun B
<a name="access-policies-walkthrough-example2b-create-user"></a>

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

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

### Langkah 2.3: Delegasikan izin untuk dave pengguna
<a name="access-policies-walkthrough-example2-delegate-perm-userdave"></a>

Buat kebijakan yang selaras untuk pengguna Dave, dengan menggunakan kebijakan berikut. Anda harus memperbarui kebijakan dengan memberikan nama bucket Anda.

Diasumsikan bahwa Anda masuk ke konsol menggunakan kredensyal **AccountBadmin**pengguna.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      }
   ]
}
```

------

Untuk instruksi, lihat [Mengelola kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) dalam *Panduan Pengguna IAM*.

### Langkah 2.4: Menguji izin
<a name="access-policies-walkthrough-example2b-user-dave-access"></a>

Sekarang Dave di Akun B dapat mencantumkan isi `amzn-s3-demo-bucket` yang dimiliki oleh Akun A. Anda dapat memverifikasi izin menggunakan salah satu prosedur berikut. 

**Izin uji menggunakan AWS CLI**

1. Tambahkan `UserDave` profil ke file AWS CLI konfigurasi. Untuk informasi lebih lanjut tentang file config, lihat [Menyiapkan alat untuk penelusuran](policy-eval-walkthrough-download-awscli.md).

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

1. Pada command prompt, masukkan AWS CLI perintah berikut untuk memverifikasi Dave sekarang bisa mendapatkan daftar objek dari yang `amzn-s3-demo-bucket` dimiliki oleh Account A. Catatan perintah menentukan profil. `UserDave`

   ```
   aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave
   ```

   Dave tidak memiliki izin lain. Jadi, jika dia mencoba operasi lain—misalnya, `get-bucket-lifecycle` konfigurasi berikut—Amazon S3 mengembalikan izin yang ditolak. 

   ```
   aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
   ```

**Uji izin menggunakan AWS Tools for Windows PowerShell**

1. Simpan kredensial Dave sebagai `AccountBDave`.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
   ```

1. Coba perintah Cantumkan bucket.

   ```
   get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

   Dave tidak memiliki izin lain. Jadi, jika dia mencoba operasi lain—misalnya, berikut `get-s3bucketlifecycleconfiguration` ini—Amazon S3 mengembalikan izin yang ditolak. 

   ```
   get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

## Langkah 3: (Opsional) Coba penolakan eksplisit
<a name="access-policies-walkthrough-example2-explicit-deny"></a>

Anda dapat memiliki izin yang diberikan dengan menggunakan daftar kontrol akses (ACL), kebijakan bucket, atau kebijakan pengguna. Tetapi jika ada penolakan eksplisit yang ditetapkan oleh kebijakan bucket atau kebijakan pengguna, penolakan eksplisit lebih diutamakan daripada izin lainnya. Untuk pengujian, perbarui kebijakan bucket dan tolak izin Akun B secara eksplisit. `s3:ListBucket` Kebijakan tersebut juga memberikan `s3:ListBucket` izin. Namun, penolakan eksplisit diutamakan, dan Akun B atau pengguna di Akun B tidak akan dapat mencantumkan objek. `amzn-s3-demo-bucket`

1. Menggunakan kredensial pengguna `AccountAadmin` pada Akun A, ganti kebijakan kelompok dengan yang berikut ini. 

1. Sekarang jika Anda mencoba untuk mendapatkan daftar ember menggunakan `AccountBadmin` kredensyal, akses ditolak.
   + Menggunakan AWS CLI, jalankan perintah berikut:

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Menggunakan AWS Tools for Windows PowerShell, jalankan perintah berikut:

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
     ```

## Langkah 4: Membersihkan
<a name="access-policies-walkthrough-example2-cleanup-step"></a>

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

   1. Masuk ke Konsol Manajemen AWS ([Konsol Manajemen AWS](https://console.aws.amazon.com/)) menggunakan kredensi Akun A, dan lakukan hal berikut:
     + Pada konsol Amazon S3, hapus kebijakan bucket yang terlampir pada `amzn-s3-demo-bucket`. 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.

1. Masuk ke [Konsol IAM](https://console.aws.amazon.com/iam/) menggunakan kredensyal Akun B. Hapus pengguna`AccountBadmin`. 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*.