Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun - Amazon Simple Storage Service

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

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.

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

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

  3. 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 (lihatTentang menggunakan pengguna administrator untuk membuat sumber daya dan memberikan izin), 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 AWS Management Console. 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

  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.

    2. Dengan menggunakan kredensial Akun A, masuk ke Konsol IAM untuk membuat pengguna administrator:

      1. Buat pengguna AccountAadmin dan catat kredensialnya. Untuk instruksi, lihat Membuat Pengguna IAM dalam Akun AWS Anda, dalam Panduan Pengguna IAM.

      2. Berikan hak administrator AccountAadmindengan melampirkan kebijakan pengguna yang memberikan akses penuh. Untuk instruksi, lihat Bekerja dengan Kebijakan dalam Panduan Pengguna IAM.

    3. 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 AWS Management Console.

      Untuk informasi lebih lanjut, lihat Cara Pengguna Masuk ke Akun Anda dalam Panduan Pengguna IAM.

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

  2. Siapkan 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 danAccountBadmin, dalam file konfigurasi.

    • Jika menggunakan AWS Tools for Windows PowerShell, pastikan bahwa Anda menyimpan kredensi untuk sesi sebagai AccountAadmin dan. AccountBadmin

    Untuk petunjuk, lihat Menyiapkan alat untuk penelusuran.

  3. 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.

    1. Tambahkan profil dalam file AWS CLI kredensyal untuk masing-masing pengguna administrator, AccountAadmin danAccountBadmin, 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
    2. 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

Langkah 1.1: Masuk ke AWS Management Console

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

Langkah 1.2: Buat bucket

  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 ember tujuan umum.

  2. Unggah objek sampel ke bucket.

    Untuk instruksi, buka Langkah 2: Unggah objek ke bucket Anda.

Langkah 1.3: Melampirkan kebijakan bucket untuk memberikan izin lintas akun kepada Akun B

Kebijakan bucket memberikan s3:ListBucket izin s3:GetLifecycleConfiguration dan ke Akun B. Diasumsikan bahwa Anda masih masuk ke konsol menggunakan kredensil AccountAadminpengguna.

  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.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. 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

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

Langkah 2.1: Masuk ke AWS Management Console

Menggunakan URL login pengguna IAM untuk Akun B, pertama-tama masuk ke pengguna AWS Management Console sebagai AccountBadmin.

Langkah 2.2: Buat Dave pengguna di Akun B

Di Konsol IAM, buat pengguna,Dave.

Untuk petunjuk, lihat Membuat pengguna IAM (konsol) di Panduan Pengguna IAM.

Langkah 2.3: Delegasikan izin untuk dave pengguna

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 AccountBadminkredensil pengguna.

{ "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 dalam Panduan Pengguna IAM.

Langkah 2.4: Menguji izin

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.

    [profile UserDave] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. 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
  2. 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

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.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:GetLifecycleConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Deny permission", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::AccountB-ID:root" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] } ] }
  2. Sekarang jika Anda mencoba untuk mendapatkan daftar ember menggunakan AccountBadmin kredensil, 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

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

    1. Masuk ke AWS Management Console (AWS Management Console) 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, hapus AccountAadmin pengguna.

  2. Masuk ke Konsol IAM menggunakan kredensil Akun B. Hapus penggunaAccountBadmin. Untuk step-by-step petunjuk, lihat Menghapus pengguna IAM di Panduan Pengguna IAM.