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

-
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 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 |
---|---|---|
|
Akun A |
AccountAadmin |
|
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
-
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 diperlukan.
-
Dengan menggunakan kredensial Akun A, masuk ke Konsol IAM
untuk membuat pengguna administrator: -
Buat pengguna
AccountAadmin
dan catat kredensialnya. Untuk instruksi, lihat Membuat Pengguna IAM dalam Akun AWS Anda, dalam Panduan Pengguna IAM. -
Berikan hak administrator AccountAadmindengan melampirkan kebijakan pengguna yang memberikan akses penuh. Untuk instruksi, lihat Bekerja dengan Kebijakan dalam Panduan Pengguna IAM.
-
-
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.
-
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 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.
-
-
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 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 -
Jika Anda menggunakan AWS Tools for Windows PowerShell, jalankan perintah berikut.
set-awscredentials –AccessKey
AcctA-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 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
-
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.
-
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.
-
Melampirkan kebijakan bucket berikut untuk
. Kebijakan tersebut memberikan izin Akun B untuk tindakanamzn-s3-demo-bucket
s3:GetLifecycleConfiguration
dans3: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
" ] } ] } -
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 -BucketName
amzn-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 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 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 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
yang dimiliki oleh Akun A. Anda dapat memverifikasi izin menggunakan salah satu prosedur berikut. amzn-s3-demo-bucket
Izin uji menggunakan AWS CLI
-
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
-
Pada command prompt, masukkan AWS CLI perintah berikut untuk memverifikasi Dave sekarang bisa mendapatkan daftar objek dari yang
dimiliki oleh Account A. Catatan perintah menentukan profil.amzn-s3-demo-bucket
UserDave
aws s3 ls s3://
--profile UserDaveamzn-s3-demo-bucket
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
-
Simpan kredensial Dave sebagai
AccountBDave
.set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
-
Coba perintah Cantumkan bucket.
get-s3object -BucketName
amzn-s3-demo-bucket
-StoredCredentials AccountBDaveDave 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
-
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
" ] } ] } -
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
-
Setelah selesai melakukan pengujian, Anda dapat melakukan hal berikut untuk membersihkan:
-
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
. 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 AccountAadmin
pengguna.
-
-
-
Masuk ke Konsol IAM
menggunakan kredensil Akun B. Hapus pengguna AccountBadmin
. Untuk step-by-step petunjuk, lihat Menghapus pengguna IAM di Panduan Pengguna IAM.