View a markdown version of this page

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.

Akun AWS Misalnya, Akun A - dapat memberikan izin lain Akun AWS, Akun B, untuk mengakses sumber dayanya seperti bucket 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:

Mem Akun AWS berikan 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 kredenSIAL 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

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

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

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

      2. Berikan hak administrator AccountAadmin dengan 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 Sign-In URL 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 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 kredentif pengguna administrator sebagai berikut:

    • Jika menggunakan AWS CLI, buat dua profil, AccountAadmin danAccountBadmin, dalam file konfigurasi.

    • Jika menggunakan AWS Tools for Windows PowerShell, pastikan Anda menyimpan kredenSIAL untuk sesi sebagai AccountAadmin danAccountBadmin.

    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 kredenSIAL 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 Konsol Manajemen AWS

Menggunakan URL masuk pengguna IAM untuk Akun A, masuk terlebih dahulu ke Konsol Manajemen AWS sebagai AccountAadmin pengguna. 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 bucket dibuat di AS Timur (Virginia Utara) Wilayah AWS dan diberi namaamzn-s3-demo-bucket.

    Untuk petunjuk, lihat Membuat bucket 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 kreden AccountAadmin SIAL 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.

    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" ] } ] }
  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 Konsol Manajemen AWS

Menggunakan URL masuk pengguna IAM untuk Akun B, masuk terlebih dahulu ke Konsol Manajemen AWS sebagai AccountBadmin pengguna.

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 kreden AccountBadmin SIAL 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 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.

Uji izin 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 prompt perintah, masukkan AWS CLI perintah berikut untuk memverifikasi Dave sekarang bisa mendapatkan daftar objek dari akun amzn-s3-demo-bucket milik A. Perhatikan perintah menentukan UserDave profil.

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

    Dave tidak memiliki izin lain. Jadi, jika dia mencoba operasi lainnya—misalnya, get-bucket-lifecycle konfigurasi berikutnya—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 ini get-s3bucketlifecycleconfiguration —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 diutamakan daripada izin lainnya. Untuk pengujian, perbarui kebijakan bucket dan tolak s3:ListBucket izin Akun B secara eksplisit. Kebijakan ini juga memberikan s3:ListBucket izin. Namun, penolakan eksplisit diutamakan, dan Akun B atau pengguna di Akun B tidak akan dapat mencantumkan objek diamzn-s3-demo-bucket.

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

  2. Sekarang jika Anda mencoba mendapatkan bucket list menggunakan AccountBadmin kredenSIAL, 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 pengujian, Anda dapat melakukan hal berikut untuk membersihkan:

    1. Masuk ke Konsol Manajemen AWS (Konsol Manajemen AWS) menggunakan kredenSIAL 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 kredenSIAL Akun B. Hapus penggunaAccountBadmin. Untuk petunjuk langkah demi langkah, lihat Menghapus pengguna IAM di Panduan Pengguna IAM.