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.
Topik
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:
-
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.
-
Pengguna administrator Akun B melampirkan kebijakan pengguna kepada pengguna yang mendelegasikan izin yang diterima pengguna administrator Akun B dari Akun A.
-
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 |
|---|---|---|
|
|
Akun A |
AccountAadmin |
|
|
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
-
Pastikan Anda memiliki dua Akun AWS dan bahwa setiap akun memiliki satu pengguna administrator seperti yang ditunjukkan pada tabel di bagian sebelumnya.
-
Mendaftar untuk Akun AWS, jika perlu.
-
Dengan menggunakan kredensial Akun A, masuk ke Konsol IAM
untuk membuat pengguna administrator: -
Buat pengguna
AccountAadmindan catat kredenSIAL keamanan. Untuk instruksi, lihat Membuat Pengguna IAM dalam Akun AWS Anda, dalam Panduan Pengguna IAM. -
Berikan hak administrator AccountAadmin dengan melampirkan kebijakan pengguna yang memberikan akses penuh. Untuk instruksi, lihat Bekerja dengan Kebijakan dalam Panduan Pengguna IAM.
-
-
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.
-
Ulangi langkah sebelumnya dengan menggunakan kredensial Akun B dan buat pengguna administrator
AccountBadmin.
-
-
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,
AccountAadmindanAccountBadmin, dalam file konfigurasi. -
Jika menggunakan AWS Tools for Windows PowerShell, pastikan Anda menyimpan kredenSIAL untuk sesi sebagai
AccountAadmindanAccountBadmin.
Untuk petunjuk, lihat Menyiapkan alat untuk penelusuran.
-
-
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.
-
Tambahkan profil dalam file AWS CLI kredenSIAL untuk masing-masing pengguna administrator,
AccountAadmindanAccountBadmin, di dua akun.[AccountAadmin] aws_access_key_id =access-key-IDaws_secret_access_key =secret-access-keyregion = us-east-1 [AccountBadmin] aws_access_key_id =access-key-IDaws_secret_access_key =secret-access-keyregion = us-east-1 -
Jika Anda menggunakan AWS Tools for Windows PowerShell, jalankan perintah berikut.
set-awscredentials –AccessKeyAcctA-access-key-ID–SecretKeyAcctA-secret-access-key–storeas AccountAadmin set-awscredentials –AccessKeyAcctB-access-key-ID–SecretKeyAcctB-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
-
Pada konsol Amazon S3, buat bucket. Latihan ini mengasumsikan bucket dibuat di AS Timur (Virginia Utara) Wilayah AWS dan diberi nama
.amzn-s3-demo-bucketUntuk petunjuk, lihat Membuat bucket tujuan umum.
-
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.
-
Melampirkan kebijakan bucket berikut untuk
. Kebijakan tersebut memberikan izin Akun B untuk tindakanamzn-s3-demo-buckets3:GetLifecycleConfigurationdans3:ListBucket.Untuk petunjuk, lihat Menambahkan kebijakan bucket dengan menggunakan konsol Amazon S3.
-
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 --bucketamzn-s3-demo-bucket--profile AccountBadmin -
Verifikasi menggunakan AWS Tools for Windows PowerShell
get-s3object -BucketNameamzn-s3-demo-bucket-StoredCredentials AccountBadmin get-s3bucketlifecycleconfiguration -BucketNameamzn-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 IAMDave.
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.
Untuk instruksi, lihat Mengelola kebijakan IAM dalam Panduan Pengguna IAM.
Langkah 2.4: Menguji izin
Sekarang Dave di Akun B dapat mencantumkan isi yang dimiliki oleh Akun A. Anda dapat memverifikasi izin menggunakan salah satu prosedur berikut. amzn-s3-demo-bucket
Uji izin menggunakan AWS CLI
-
Tambahkan
UserDaveprofil ke file AWS CLI konfigurasi. Untuk informasi lebih lanjut tentang file config, lihat Menyiapkan alat untuk penelusuran.[profile UserDave] aws_access_key_id =access-keyaws_secret_access_key =secret-access-keyregion =us-east-1 -
Pada prompt perintah, masukkan AWS CLI perintah berikut untuk memverifikasi Dave sekarang bisa mendapatkan daftar objek dari akun
milik A. Perhatikan perintah menentukanamzn-s3-demo-bucketUserDaveprofil.aws s3 ls s3://--profile UserDaveamzn-s3-demo-bucketDave tidak memiliki izin lain. Jadi, jika dia mencoba operasi lainnya—misalnya,
get-bucket-lifecyclekonfigurasi berikutnya—Amazon S3 mengembalikan izin yang ditolak.aws s3api get-bucket-lifecycle-configuration --bucketamzn-s3-demo-bucket--profile UserDave
Uji izin menggunakan AWS Tools for Windows PowerShell
-
Simpan kredensial Dave sebagai
AccountBDave.set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave -
Coba perintah Cantumkan bucket.
get-s3object -BucketNameamzn-s3-demo-bucket-StoredCredentials AccountBDaveDave tidak memiliki izin lain. Jadi, jika dia mencoba operasi lain—misalnya, berikut ini
get-s3bucketlifecycleconfiguration—Amazon S3 mengembalikan izin yang ditolak.get-s3bucketlifecycleconfiguration -BucketNameamzn-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 di.amzn-s3-demo-bucket
-
Menggunakan kredensial pengguna
AccountAadminpada Akun A, ganti kebijakan kelompok dengan yang berikut ini. -
Sekarang jika Anda mencoba mendapatkan bucket list menggunakan
AccountBadminkredenSIAL, 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 -BucketNameamzn-s3-demo-bucket-StoredCredentials AccountBDave
-
Langkah 4: Membersihkan
-
Setelah selesai pengujian, Anda dapat melakukan hal berikut untuk membersihkan:
-
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
. Dalam bucket Properti, hapus kebijakan yang ada dalam bagian Izin.amzn-s3-demo-bucket -
Jika bucket dibuat untuk latihan ini, pada konsol Amazon S3, hapus objek dan kemudian hapus bucket.
-
Di Konsol IAM
, hapus AccountAadminpengguna.
-
-
-
Masuk ke Konsol IAM
menggunakan kredenSIAL Akun B. Hapus pengguna AccountBadmin. Untuk petunjuk langkah demi langkah, lihat Menghapus pengguna IAM di Panduan Pengguna IAM.