View a markdown version of this page

Tutorial IAM: Delegasikan akses di seluruh AWS akun yang menggunakan peran IAM - AWS Identity and Access Management

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

Tutorial IAM: Delegasikan akses di seluruh AWS akun yang menggunakan peran IAM

penting

Praktik terbaik IAM menyarankan agar Anda mewajibkan pengguna manusia menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredentif sementara alih-alih menggunakan pengguna IAM dengan kredentif jangka panjang. Kami menyarankan Anda hanya menggunakan pengguna IAM untuk kasus penggunaan tertentu yang tidak didukung oleh pengguna federasi.

Tutorial ini mengajarkan Anda cara menggunakan peran untuk mendelegasikan akses ke sumber daya di berbagai yang Akun AWS disebut Tujuan dan Sumber. Anda berbagi sumber daya di satu akun dengan pengguna di akun yang berbeda. Dengan mengatur akses lintas akun dengan cara ini, Anda tidak perlu membuat pengguna IAM individual di setiap akun. Selain itu, pengguna tidak perlu keluar dari satu akun dan masuk ke akun lain untuk mengakses sumber daya yang berbeda Akun AWS. Setelah mengonfigurasi peran, Anda melihat cara menggunakan peran dari Konsol Manajemen AWS, the AWS CLI, dan API.

Dalam tutorial ini, akun Tujuan mengelola data aplikasi yang diakses oleh aplikasi dan tim yang berbeda. Di setiap akun, Anda menyimpan informasi aplikasi di bucket Amazon S3. Anda mengelola pengguna IAM di akun Origining, di mana Anda memiliki dua peran pengguna IAM: Peng embang dan Analis. Pengembang dan Analis menggunakan akun Originating untuk menghasilkan data yang dibagikan oleh beberapa layanan mikro. Kedua peran memiliki izin untuk bekerja di akun Origin dan mengakses sumber daya di sana. Dari waktu ke waktu, pengembang harus memperbarui data bersama di akun Tujuan. Pengembang menyimpan data ini dalam bucket Amazon S3 yang disebutamzn-s3-demo-bucket-shared-container.

Di akhir tutorial ini, Anda memiliki hal berikut:

  • Pengguna di akun Origin (akun tepercaya) diizinkan untuk mengambil peran tertentu di akun Tujuan.

  • Peran di akun Tujuan (akun yang dipercaya) diizinkan untuk mengakses bucket Amazon S3 tertentu.

  • amzn-s3-demo-bucket-shared-containerBucket di akun Tujuan.

Pengembang dapat menggunakan peran dalam Konsol Manajemen AWS untuk mengakses amzn-s3-demo-bucket-shared-container bucket di akun Tujuan. Mereka juga dapat mengakses bucket dengan menggunakan panggilan API yang diautentikasi oleh kredentif sementara yang disediakan oleh peran. Upaya serupa oleh Analis untuk menggunakan peran gagal.

Alur kerja ini memiliki tiga langkah dasar:

Buat peran di Akun Tujuan

Pertama, Anda menggunakan Konsol Manajemen AWS untuk membangun kepercayaan antara akun Tujuan (nomor ID 999999999999) dan akun Origin (nomor ID 11111111 1111). Anda mulai dengan membuat peran IAM bernama UpdateData. Saat Anda membuat peran, Anda menentukan akun Origin sebagai entitas tepercaya dan menentukan kebijakan izin yang memungkinkan pengguna tepercaya memperbarui amzn-s3-demo-bucket-shared-container bucket.

Berikan akses ke peran tersebut

Di bagian ini, Anda mengubah kebijakan peran untuk menolak akses Analis ke UpdateData peran. Karena Analis memiliki PowerUser akses dalam skenario ini, dan Anda harus secara eksplisit menolak kemampuan untuk menggunakan peran tersebut.

Akses uji dengan mengalihkan peran

Terakhir, sebagai Pengembang, Anda menggunakan UpdateData peran untuk memperbarui amzn-s3-demo-bucket-shared-container bucket di akun Tujuan. Anda melihat cara mengakses peran melalui AWS konsol, AWS CLI, dan API.

Pertimbangan-pertimbangan

Sebelum Anda menggunakan peran IAM untuk mendelegasikan akses sumber daya di seluruh dunia Akun AWS, penting untuk mempertimbangkan hal berikut:

  • Anda tidak dapat beralih ke peran saat masuk sebagai Pengguna root akun AWS.

  • Peran IAM dan kebijakan berbasis sumber daya mendelegasikan akses ke seluruh akun hanya dengan satu partisi. Misalnya, anggap saja Anda memiliki akun di AS Barat (California Utara) di partisi aws standar. Anda juga memiliki rekening di Tiongkok (Beijing) di partisi aws-cn tersebut. Anda tidak dapat menggunakan kebijakan berbasis sumber daya Amazon S3 di akun Anda di Tiongkok (Beijing) untuk mengizinkan akses bagi pengguna dalam akun standar aws Anda.

  • Anda dapat menggunakannya AWS IAM Identity Center untuk memfasilitasi single sign-on (SSO) untuk eksternal Akun AWS (akun di luar Anda AWS Organizations) menggunakan Security Assertion Markup Language (SAML). Untuk detailnya, lihat Meng integrasikan eksternal Akun AWS ke dalam AWS IAM Identity Center untuk manajemen akses pusat dengan penagihan independen menggunakan SAML 2.0

  • Anda dapat mengaitkan peran ke AWS sumber daya seperti instans atau AWS Lambda fungsi Amazon EC2. Lihat perinciannya di Buat peran untuk mendelegasikan izin ke AWS layanan.

  • Jika Anda ingin aplikasi mengambil peran di aplikasi lain Akun AWS, Anda dapat menggunakan AWS SDK untuk asumsi peran lintas akun. Untuk informasi selengkapnya, lihat Otentikasi dan akses di Panduan Referensi AWS SDK dan Alat.

  • Beralih peran menggunakan Konsol Manajemen AWS satu-satunya berfungsi dengan akun yang tidak memerlukanExternalId. Misalnya, Anda memberikan akses untuk akun Anda ke pihak ketiga dan memerlukan ExternalId dalam elemen Condition dalam kebijakan izin Anda. Dalam hal ini, pihak ketiga dapat mengakses akun Anda hanya dengan menggunakan AWS API atau alat baris perintah. Pihak ketiga tidak dapat menggunakan konsol karena harus memberikan nilai untukExternalId. Untuk informasi selengkapnya tentang skenario iniAkses ke Akun AWS dimiliki oleh pihak ketiga, lihat, dan Cara mengaktifkan akses lintas akun ke Konsol Manajemen AWS dalam Blog AWS Keamanan.

Prasyarat

Tutorial ini mengasumsikan bahwa Anda telah melakukan hal berikut:

  • Dua terpisah Akun AWS yang dapat Anda gunakan, satu untuk mewakili akun Origin, dan satu untuk mewakili akun Tujuan.

  • Pengguna dan peran dalam akun Origin dibuat dan dikonfigurasi sebagai berikut:

    Judul pekerjaan Pengguna Perizinan
    Developer David Kedua pengguna dapat masuk dan menggunakan akun Orig Konsol Manajemen AWS in.
    Analis Jane
  • Anda tidak perlu membuat pengguna apa pun di akun Tujuan.

  • Bucket Amazon S3 yang dibuat di akun Tujuan. Anda dapat menyebut amzn-s3-demo-bucket-shared-container nya dalam tutorial ini, tetapi karena nama bucket S3 harus unik secara global, Anda harus menggunakan bucket dengan nama yang berbeda.

Buat peran di Akun Tujuan

Anda dapat mengizinkan pengguna dari satu Akun AWS untuk mengakses sumber daya di yang lain Akun AWS. Dalam tutorial ini, kita akan melakukan ini dengan membuat peran yang menentukan siapa yang dapat mengaksesnya dan izin apa yang diberikan kepada pengguna yang beralih ke itu.

Pada langkah tutorial ini, Anda membuat peran di akun Tujuan dan menentukan akun Origin sebagai entitas tepercaya. Anda juga membatasi izin peran untuk hanya membaca dan menulis akses ke amzn-s3-demo-bucket-shared-container bucket. Siapa pun yang diberi izin untuk menggunakan peran dapat membaca dan menulis ke shared-container bucket.

Sebelum Anda dapat membuat peran, Anda memerlukan ID akun dari Orig in Akun AWS. Masing-masing Akun AWS memiliki pengenal ID akun unik yang ditetapkan untuknya.

Untuk mendapatkan yang berasal Akun AWS ID
  1. Masuk ke Konsol Manajemen AWS sebagai administrator akun Origin ating, dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di konsol IAM, pilih nama pengguna Anda di bilah navigasi di kanan atas. Biasanya terlihat seperti ini: username @ account_ID_number_or_alias.

    Untuk skenario ini, Anda dapat menggunakan ID akun 111111111111 untuk akun Origin. Namun, Anda harus menggunakan ID akun yang valid jika Anda menggunakan skenario ini di lingkungan pengujian Anda.

Untuk membuat peran di akun Tujuan yang dapat digunakan oleh akun Origin
  1. Masuk ke Konsol Manajemen AWS sebagai administrator akun Tujuan, dan buka konsol IAM.

  2. Sebelum membuat peran, siapkan kebijakan terkelola yang mendefinisikan izin untuk persyaratan peran. Anda kemudian perlu melampirkan kebijakan ini ke peran tersebut pada langkah berikutnya.

    Anda ingin mengatur akses baca dan tulis ke bucket amzn-s3-demo-bucket-shared-container. Meskipun AWS menyediakan beberapa kebijakan terkelola Amazon S3, tidak ada yang menyediakan akses baca dan tulis ke satu bucket Amazon S3. Anda dapat membuat kebijakan Anda sendiri.

    Pada panel navigasi, silakan pilih Kebijakan dan kemudian pilih Buat kebijakan.

  3. Pilih tab JSON dan salin teks dari dokumen kebijakan JSON berikut. Tempel teks ini ke dalam kotak teks JSON, ganti sumber daya ARN (arn:aws:s3:::shared-container) dengan yang asli untuk bucket Amazon S3 Anda.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-shared-container" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-shared-container/*" } ] }

    T ListAllMyBuckets indakan memberikan izin untuk mencantumkan semua bucket yang dimiliki oleh pengirim permintaan yang diautentikasi. Izin ListBucket memungkinkan pengguna melihat objek dalam bucket amzn-s3-demo-bucket-shared-container. Izin GetObject, PutObject, DeleteObject memungkinkan pengguna melihat, memperbarui, dan menghapus konten di bucket amzn-s3-demo-bucket-shared-container.

    catatan

    Anda dapat beralih antara opsi editor Visual dan JSON kapan saja. Namun, jika Anda melakukan perubahan atau memilih Berikutnya di editor Visual, IAM dapat merestrukturisasi kebijakan Anda untuk mengoptimalkannya bagi editor visual. Untuk informasi selengkapnya, lihat Restrukturisasi kebijakan.

  4. Pada halaman Tinjau dan buat, read-write-app-bucket ketik nama kebijakan. Tinjau izin yang diberikan oleh kebijakan Anda, lalu pilih Buat kebijakan untuk menyimpan pekerjaan Anda.

    Kebijakan baru muncul di daftar kebijakan terkelola.

  5. Pada panel navigasi, silakan pilih Peran lalu pilih Buat peran.

  6. Pilih jenis Akun AWS peran An.

  7. Untuk ID Akun, ketik ID akun asal.

    Tutorial ini menggunakan contoh ID akun 111111111111 untuk akun Origin. Anda harus menggunakan ID akun yang valid. Jika Anda menggunakan ID akun yang tidak valid, seperti 111111111111, IAM tidak mengizinkan Anda membuat peran baru.

    Untuk saat ini, Anda tidak perlu memerlukan ID eksternal, atau mewajibkan pengguna untuk memiliki Multi-Factor Authentication (MFA) untuk menjalankan peran tersebut. Biarkan opsi ini tidak dipilih. Untuk informasi selengkapnya, lihat AWS Multi-factor otentikasi di IAM.

  8. Pilih Berikutnya: Izin untuk mengatur izin yang terkait dengan peran.

  9. Pilih kotak centang di sebelah kebijakan yang Anda buat sebelumnya.

    Kiat

    Untuk Filter, pilih Pelang gan berhasil memfilter daftar agar hanya menyertakan kebijakan yang Anda buat. Ini menyembunyikan kebijakan yang AWS dibuat dan membuatnya lebih mudah untuk menemukan yang Anda butuhkan.

    Lalu, pilih Selanjutnya.

  10. (Opsional) Tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan kunci-nilai. Untuk informasi selengkapnya tentang menggunakan tanda di IAM, lihat Tag untuk AWS Identity and Access Management sumber daya.

  11. (Opsional) Untuk Deskripsi, masukkan deskripsi untuk peran baru ini.

  12. Setelah meninjau peran, klik Buat peran.

    Peran UpdateData muncul di daftar peran.

Sekarang Anda harus mendapatkan Nama Sumber Daya Amazon (ARN) dari peran tersebut, pengidentifikasi unik untuk peran tersebut. Saat Anda mengubah peran Pengembang di akun Origin, Anda menentukan peran ARN dari akun Tujuan untuk memberikan atau menolak izin.

Untuk mendapatkan ARN untuk UpdateData
  1. Di panel navigasi konsol IAM, pilih Peran.

  2. Dalam daftar peran, pilih peran UpdateData.

  3. Di bagian Ringkasan di panel perincian, salin nilai ARN Peran.

    Akun Tujuan memiliki ID akun 999999999999, jadi peran ARN adalah. arn:aws:iam::999999999999:role/UpdateData Pastikan Anda memberikan Akun AWS ID asli untuk akun Tujuan.

Pada titik ini, Anda telah membangun kepercayaan antara akun Tujuan dan Asal. Anda melakukan ini dengan membuat peran di akun Tujuan yang mengidentifikasi akun A sal sebagai prinsipal tepercaya. Anda juga menentukan apa yang dapat dilakukan oleh pengguna yang beralih ke UpdateData peran.

Selanjutnya, ubah izin untuk peran Pengembang.

Berikan akses ke peran tersebut

Pada titik ini, Analis dan Pengembang memiliki izin yang memungkinkan mereka mengelola data di akun Origin. Gunakan langkah-langkah berikut yang diperlukan untuk menambahkan izin untuk memungkinkan beralih ke peran.

Untuk memodifikasi peran Pengembang untuk memungkinkan mereka beralih ke UpdateData peran
  1. Masuk sebagai administrator di akun Originating, dan buka konsol IAM.

  2. Pilih Per an, lalu pilih Peng embang.

  3. Pilih tab Permissions (Izin), pilih Add permissions (Tambahkan izin), lalu pilih Create inline policy (Membuat kebijakan inline).

  4. Pilih tab JSON.

  5. Tambahkan pernyataan kebijakan berikut untuk mengiz AssumeRole inkan tindakan pada UpdateData peran di akun Tujuan. Pastikan bahwa Anda mengubah DESTINATION-ACCOUNT-ID Resource elemen ke Akun AWS ID aktual dari akun Tujuan.

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/UpdateData" } }

    AllowEfek ini secara eksplisit memungkinkan akses grup Pengembang ke UpdateData peran di akun Tujuan. Setiap pengembang yang mencoba mengakses peran berhasil.

  6. Pilih Tinjau kebijakan.

  7. Ketik Nama sepertiallow-assume-S3-role-in-destination.

  8. Pilih Buat kebijakan.

Di sebagian besar lingkungan, Anda mungkin tidak memerlukan prosedur berikut. Namun, jika Anda menggunakan PowerUserAccess izin, maka beberapa grup mungkin sudah dapat beralih peran. Prosedur berikut menunjukkan cara menambahkan "Deny" izin ke grup Analis untuk memastikan bahwa mereka tidak dapat mengambil peran tersebut. Jika Anda tidak memerlukan prosedur ini di lingkungan Anda, maka kami sarankan Anda tidak menambahkannya. "Deny"izin membuat gambaran izin keseluruhan lebih rumit untuk dikelola dan dipahami. Gunakan "Deny" izin hanya jika Anda tidak memiliki opsi yang lebih baik.

Untuk memodifikasi peran Analis untuk menolak izin untuk mengambil UpdateData peran
  1. Pilih Per an, lalu pilih Analis.

  2. Pilih tab Permissions (Izin), pilih Add permissions (Tambahkan izin), lalu pilih Create inline policy (Membuat kebijakan inline).

  3. Pilih tab JSON.

  4. Tambahkan pernyataan kebijakan berikut untuk menolak tindakan AssumeRole di peran UpdateData. Pastikan bahwa Anda mengubah DESTINATION-ACCOUNT-ID Resource elemen ke Akun AWS ID aktual dari akun Tujuan.

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/UpdateData" } }

    DenyEfek secara eksplisit menolak akses grup Analis ke UpdateData peran di akun Tujuan. Setiap analis yang mencoba mengakses peran menerima pesan akses ditolak.

  5. Pilih Tinjau kebijakan.

  6. Ketik Nama sepertideny-assume-S3-role-in-destination.

  7. Pilih Buat kebijakan.

Peran Pengembang sekarang memiliki izin untuk menggunakan UpdateData peran di akun Tujuan. Peran Analis dicegah untuk menggunakan UpdateData peran tersebut.

Selanjutnya, Anda dapat melihat bagaimana David, seorang pengembang, dapat mengakses amzn-s3-demo-bucket-shared-container bucket di akun Tujuan. David dapat mengakses bucket dari Konsol Manajemen AWS, the AWS CLI, atau AWS API.

Akses uji dengan mengalihkan peran

Setelah menyelesaikan dua langkah pertama dari tutorial ini, Anda memiliki peran yang memberikan akses ke sumber daya di akun Tujuan. Anda juga memiliki satu peran di akun Origin dengan pengguna yang diizinkan untuk menggunakan peran itu. Langkah ini membahas cara menguji pengalihan ke peran itu dari Konsol Manajemen AWS AWS CLI,, dan AWS API.

Untuk mendapatkan bantuan dengan masalah umum yang mungkin Anda temui saat bekerja dengan peran IAM, lihatMemecahkan masalah peran IAM.

Beralih peran (konsol)

Jika David perlu memperbarui data di akun Tujuan di Konsol Manajemen AWS, dia dapat melakukannya dengan menggunakan Peralihan Peran. Dia menentukan ID akun atau alias dan nama peran, dan izinnya segera dialihkan kepada mereka yang diizinkan oleh peran tersebut. Dia kemudian dapat menggunakan konsol untuk bekerja dengan amzn-s3-demo-bucket-shared-container bucket, tetapi tidak dapat bekerja dengan sumber daya lain di Dest ination. Sementara David menggunakan peran tersebut, dia juga tidak dapat menggunakan hak istimewa pengguna kekuatannya di akun Orig ining. Itu karena hanya satu set izin yang dapat berlaku pada satu waktu.

IAM menyediakan dua cara yang dapat digunakan David untuk masuk ke halaman Peral ihan Peran:

  • David menerima tautan dari administrator mereka yang menunjuk ke konfigurasi Peran Switch yang telah ditentukan sebelumnya. Tautan ini diberikan ke administrator di halaman terakhir dari panduan Buat peran atau pada halaman Ringkasan Peran untuk peran lintas akun. Memilih tautan ini membawa David ke halaman Alihkan Peran dengan bidang ID Akun dan Nama peran yang sudah diisi. Yang perlu dilakukan David adalah memilih Switch Roles.

  • Administrator tidak mengirim tautan di surel, tetapi mengirim nilai ID Akun dan Nama Peran. Untuk beralih peran, David harus memasukkan nilai secara manual. Hal ini digambarkan dalam prosedur berikut.

Untuk mengambil peran
  1. David masuk Konsol Manajemen AWS menggunakan pengguna normalnya di akun Origining.

  2. Mereka memilih tautan yang dikirim oleh administrator melalui email kepada mereka. Ini membawa David ke halaman Switch Role dengan ID akun atau alias dan informasi nama peran yang sudah diisi.

    — atau —

    David memilih nama mereka (menu Identitas) di bilah navigasi, dan kemudian memilih Ber alih Peran.

    Jika ini adalah pertama kalinya David mencoba mengakses halaman Switch Role dengan cara ini, dia pertama kali mendarat di halaman Switch Role yang dijalankan pertama kali. Halaman ini memberikan informasi tambahan tentang bagaimana pengalihan peran dapat memungkinkan pengguna mengelola sumber daya di seluruh Akun AWS. David harus memilih Beralih Peran di halaman ini untuk menyelesaikan sisa prosedur ini.

  3. Selanjutnya, untuk mengakses peran, David harus secara manual mengetikkan nomor ID akun Tujuan (999999999999) dan nama peran (UpdateData).

    Selain itu, David ingin memantau peran dan izin terkait yang saat ini aktif di IAM. Untuk melacak informasi ini, dia mengetik Destination di kotak teks Display Nama (Nama Tampilan), memilih opsi warna merah, lalu memilih Switch Role (Alihkan Peran).

  4. Sekarang, David dapat menggunakan konsol Amazon S3 untuk bekerja menggunakan bucket Amazon S3 atau sumber daya lain yang peran UpdateDatanya memiliki izin.

  5. Setelah selesai, David dapat kembali ke izin aslinya. Untuk melakukan itu, mereka memilih nama tampilan peran Tujuan pada bilah navigasi dan kemudian memilih Kem bali ke David @ 111111111111.

  6. Lain kali David ingin beralih peran dan memilih menu Identitas di bilah navigasi, dia melihat entri Tujuan masih ada dari terakhir kali. Dia cukup memilih entri itu untuk beralih peran segera tanpa memasukkan kembali ID akun dan nama peran.

Beralih peran (AWS CLI)

Jika David perlu bekerja di lingkungan Tujuan di baris perintah, dia dapat melakukannya dengan menggunakan AWS CLI. Dia menjalankan perintah aws sts assume-role dan meneruskan peran ARN untuk mendapatkan kredensial keamanan sementara untuk peran tersebut. Dia kemudian mengonfigurasi kredenSIAL tersebut dalam variabel lingkungan sehingga AWS CLI perintah berikutnya berfungsi menggunakan izin peran. Sementara David menggunakan peran tersebut, dia tidak dapat menggunakan hak istimewa pengguna kekuatannya di akun Origining, karena hanya satu set izin yang dapat berlaku pada satu waktu.

Perhatikan bahwa semua access key dan token hanyalah contoh dan tidak dapat digunakan seperti yang ditunjukkan. Ganti dengan nilai yang sesuai dari lingkungan langsung Anda.

Untuk mengambil peran
  1. David membuka jendela command prompt, dan mengonfirmasi bahwa AWS CLI klien bekerja dengan menjalankan perintah:

    aws help
    catatan

    Lingkungan default David menggunakan kredensial pengguna David dari profil default yang ia buat dengan perintah aws configure. Untuk informasi lebih lanjut, lihat Mengonfigurasi AWS Command Line Interface di Panduan Pengguna AWS Command Line Interface .

  2. Dia memulai proses peralihan peran dengan menjalankan perintah berikut untuk beralih ke UpdateData peran di akun Tujuan. Dia menerima peran ARN dari administrator yang menciptakan peran tersebut. Perintah ini mengharuskan Anda memberikan nama sesi, Anda juga dapat memilih teks apa pun yang Anda suka untuk itu.

    aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/UpdateData" --role-session-name "David-ProdUpdate"

    David kemudian melihat hal-hal berikut di output:

    { "Credentials": { "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLE CvSRyh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDy EXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3Uuysg sKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87e NhyDHq6ikBQ==", "Expiration": "2014-12-11T23:08:07Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } }
  3. David melihat tiga bagian yang mereka butuhkan di bagian Credentials dari output.

    • AccessKeyId

    • SecretAccessKey

    • SessionToken

    David perlu mengkonfigurasi AWS CLI lingkungan untuk menggunakan parameter ini dalam panggilan berikutnya. Untuk informasi tentang berbagai cara mengonfigurasi kredensial Anda, lihat Mengonfigurasi AWS Command Line Interface. Anda tidak dapat menggunakan perintah aws configure karena ia tindak mendukung perekaman token sesi. Namun, Anda dapat memasukkan informasi secara manual ke dalam file konfigurasi. Karena ini adalah kredensial sementara dengan waktu kedaluwarsa yang relatif singkat, paling mudah menambahkannya ke lingkungan sesi baris perintah Anda saat ini.

  4. Untuk menambahkan tiga nilai ke lingkungan, David memotong dan menempelkan output langkah sebelumnya ke perintah berikutnya. Anda mungkin ingin memotong dan menempel ke dalam editor teks sederhana untuk mengatasi masalah line wrap dalam output token sesi. Ia harus ditambahkan sebagai satu string panjang, meskipun line wrap ditampilkan di sini untuk kejelasan.

    Contoh berikut menunjukkan perintah yang diberikan di lingkungan Windows, di mana “set” adalah perintah untuk membuat variabel lingkungan. Di komputer Linux atau macOS, Anda akan menggunakan perintah “ekspor” sebagai gantinya. Semua bagian contoh lainnya valid di ketiga lingkungan.

    Untuk detail tentang menggunakan Tools untuk Windows Powershell, lihat Beralih ke peran IAM (Alat untuk Windows PowerShell)

    set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY set AWS_SESSION_TOKEN=AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvS Ryh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXA MPLEKEY9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UusKd EXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLENhykxiHen DHq6ikBQ==

    Pada titik ini, setiap perintah berikut dijalankan di bawah izin peran yang diidentifikasi oleh kredensial tersebut. Dalam kasus David, peran UpdateData.

    penting

    Anda dapat menyimpan pengaturan konfigurasi dan kredenSIAL yang sering digunakan dalam file yang dikelola oleh AWS CLI. Untuk informasi selengkapnya, lihat Menggunakan file konfigurasi dan kredenSIAL yang ada di Panduan AWS Command Line Interface Pengguna.

  5. Jalankan perintah untuk mengakses sumber daya di akun Tujuan. Dalam contoh ini, David mencantumkan isi bucket S3 mereka dengan perintah berikut.

    aws s3 ls s3://shared-container

    Karena nama bucket Amazon S3 unik secara universal, tidak perlu menentukan ID akun yang memiliki bucket. Untuk mengakses sumber daya untuk AWS layanan lain, lihat AWS CLI dokumentasi untuk layanan tersebut untuk perintah dan sintaks yang diperlukan untuk mereferensikan sumber dayanya.

Menggunakan AssumeRole (AWS API)

Ketika David perlu membuat pembaruan ke akun Tujuan dari kode, dia membuat AssumeRole panggilan untuk mengambil UpdateData peran tersebut. Panggilan mengembalikan kredenSIAL sementara yang dapat ia gunakan untuk mengakses amzn-s3-demo-bucket-shared-container bucket di akun Tujuan. Dengan kredensial tersebut, David dapat melakukan panggilan API untuk memperbarui bucket amzn-s3-demo-bucket-shared-container. Namun, ia tidak dapat melakukan panggilan API untuk mengakses sumber daya lain di akun Tujuan, meskipun ia memiliki izin pengguna kuat di akun Orig in.

Untuk mengambil peran
  1. David memanggil AssumeRole sebagai bagian dari aplikasi. Mereka harus menentukan AR UpdateData N:arn:aws:iam::999999999999:role/UpdateData.

    Respond dari panggilan AssumeRole mencakup kredensial sementara dengan AccessKeyId dan SecretAccessKey. Informasi ini juga mencakup waktu Expiration yang menunjukkan kapan kredensial kedaluwarsa dan Anda harus meminta yang baru. Saat Anda mengatur rantai peran dengan AWS SDK, banyak penyedia kredensia secara otomatis menyegarkan kredensi sebelum kedaluwarsa.

  2. Dengan kredensial sementara, David membuat panggilan s3:PutObject untuk memperbarui bucket amzn-s3-demo-bucket-shared-container. Mereka akan meneruskan kredenSIAL ke panggilan API sebagai AuthParams parameter. Karena kredentif peran sementara hanya memiliki akses baca dan tulis ke amzn-s3-demo-bucket-shared-container bucket, tindakan lain di akun Tujuan ditolak.

Untuk contoh kode (menggunakan Python), lihat Beralih ke peran IAM (AWS API).

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang topik dalam tutorial ini:

  • Untuk informasi selengkapnya tentang pengguna IAM, lihatIdentitas IAM.

  • Untuk informasi selengkapnya tentang bucket Amazon S3, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

  • Untuk mempelajari apakah prinsip di akun di luar zona kepercayaan (organisasi atau akun tepercaya) memiliki akses untuk menjalankan peran Anda, lihat Apa yang dimaksud dengan Penganalisis Akses IAM?.

Ringkasan

Anda telah menyelesaikan tutorial akses API lintas akun. Anda menciptakan peran untuk membangun kepercayaan dengan akun lainnya dan menetapkan tindakan apa yang dapat dilakukan oleh entitas tepercaya. Kemudian, Anda mengubah kebijakan peran untuk mengontrol pengguna IAM mana yang dapat mengakses peran tersebut. Akibatnya, pengembang dari akun Orig in dapat melakukan pembaruan ke amzn-s3-demo-bucket-shared-container bucket di akun Tujuan dengan menggunakan kredenSIAL sementara.