Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IAMtutorial: Delegasikan akses di seluruh AWS akun menggunakan IAM peran
penting
IAMpraktik terbaik merekomendasikan bahwa Anda meminta pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensil sementara alih-alih menggunakan IAM pengguna dengan kredensil jangka panjang. Kami menyarankan Anda hanya menggunakan IAM pengguna untuk kasus penggunaan tertentu yang tidak didukung oleh pengguna federasi.
Tutorial ini mengajarkan Anda cara menggunakan peran untuk mendelegasikan akses ke sumber daya yang berbeda Akun AWS disebut Destinasi dan Originasi. 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 IAM pengguna individu di setiap akun. Selain itu, pengguna tidak perlu keluar dari satu akun dan masuk ke akun lain untuk mengakses sumber daya di akun yang berbeda Akun AWS. Setelah mengonfigurasi peran, Anda melihat cara menggunakan peran dari AWS Management Console, AWS CLI, danAPI.
Dalam tutorial ini, akun Tujuan mengelola data aplikasi yang diakses oleh berbagai aplikasi dan tim. Di setiap akun, Anda menyimpan informasi aplikasi di ember Amazon S3. Anda mengelola IAM pengguna di akun Originating, di mana Anda memiliki dua peran IAM pengguna: Pengembang 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 Originating dan mengakses sumber daya di sana. Dari waktu ke waktu, pengembang harus memperbarui data bersama di akun Tujuan. Pengembang menyimpan data ini dalam ember Amazon S3 yang disebut. amzn-s3-demo-bucket-shared-container
Di akhir tutorial ini, Anda memiliki hal berikut:
-
Pengguna di akun Originating (akun tepercaya) diizinkan untuk mengambil peran tertentu dalam akun Tujuan.
-
Peran di akun Tujuan (akun kepercayaan) diizinkan untuk mengakses bucket Amazon S3 tertentu.
-
amzn-s3-demo-bucket-shared-container
Bucket di akun Tujuan.
Pengembang dapat menggunakan peran dalam AWS Management Console untuk mengakses amzn-s3-demo-bucket-shared-container
bucket di akun Tujuan. Mereka juga dapat mengakses bucket dengan menggunakan API panggilan yang diautentikasi oleh kredensi sementara yang disediakan oleh peran. Upaya serupa oleh seorang Analis untuk menggunakan peran gagal.
Alur kerja ini memiliki tiga langkah dasar:
- Membuat peran di Akun Tujuan
-
Pertama, Anda menggunakan AWS Management Console untuk membangun kepercayaan antara akun Tujuan (nomor ID 999999999999) dan akun Originating (nomor ID 1111111111). Anda mulai dengan membuat IAM peran bernama UpdateData. Saat membuat peran, Anda menentukan akun Originating sebagai entitas tepercaya dan menentukan kebijakan izin yang memungkinkan pengguna tepercaya memperbarui bucket.
amzn-s3-demo-bucket-shared-container
- Berikan akses ke peran tersebut
-
Di bagian ini, Anda mengubah kebijakan peran untuk menolak akses Analis ke
UpdateData
peran tersebut. 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 memperbaruiamzn-s3-demo-bucket-shared-container
bucket di akun Tujuan. Anda melihat cara mengakses peran melalui AWS konsol, AWS CLI, danAPI.
Pertimbangan
Sebelum Anda menggunakan IAM peran untuk mendelegasikan akses sumber daya Akun AWS, penting untuk mempertimbangkan hal berikut:
-
Anda tidak dapat beralih ke peran ketika Anda masuk sebagai Pengguna root akun AWS.
-
IAMperan dan kebijakan berbasis sumber daya mendelegasikan akses di seluruh akun hanya dalam satu partisi. Misalnya, anggap Anda memiliki akun di AS Barat (N. California) dalam partisi
aws
standar. Anda juga memiliki akun di Tiongkok (Beijing) dalam partisiaws-cn
. Anda tidak dapat menggunakan kebijakan berbasis sumber daya Amazon S3 di akun Anda di Tiongkok (Beijing) untuk memungkinkan akses bagi pengguna dalam akunaws
standar Anda. -
Anda dapat menggunakan AWS IAM Identity Center untuk memfasilitasi single sign-on (SSO) untuk eksternal Akun AWS (akun di luar AWS Organizations) menggunakan Security Assertion Markup Language (). SAML Untuk detailnya, lihat Mengintegrasikan eksternal Akun AWS ke AWS IAM Identity Center untuk manajemen akses pusat dengan penagihan independen menggunakan 2.0 SAML
-
Anda dapat mengaitkan peran dengan AWS sumber daya seperti EC2 contoh Amazon atau AWS Lambda fungsi. Untuk detailnya, lihat Membuat peran untuk mendelegasikan izin ke layanan AWS.
-
Jika Anda ingin memiliki aplikasi mengambil peran dalam aplikasi lain Akun AWS, Anda dapat menggunakan AWS SDKuntuk asumsi peran lintas akun. Untuk informasi selengkapnya, lihat Otentikasi dan akses di AWS SDKsdan Panduan Referensi Alat.
-
Beralih peran menggunakan AWS Management Console hanya berfungsi dengan akun yang tidak memerlukan
ExternalId
. Misalnya, Anda memberikan akses untuk akun Anda ke pihak ketiga dan memerlukanExternalId
dalam elemenCondition
dalam kebijakan izin Anda. Dalam hal ini, pihak ketiga dapat mengakses akun Anda hanya dengan menggunakan AWS APIatau alat baris perintah. Pihak ketiga tidak dapat menggunakan konsol karena harus memberikan nilai untukExternalId
. Untuk informasi selengkapnya tentang skenario iniAkses ke Akun AWS yang dimiliki oleh pihak ketiga, lihat, dan Cara mengaktifkan akses lintas akun ke AWS Management Consoledi AWS Blog Keamanan.
Prasyarat
Tutorial ini mengasumsikan bahwa Anda telah melakukan hal berikut:
-
Dua terpisah Akun AWS yang dapat Anda gunakan, satu untuk mewakili akun Originating, dan satu untuk mewakili akun Tujuan.
-
Pengguna dan peran dalam akun Originating dibuat dan dikonfigurasi sebagai berikut:
Jabatan/Job Pengguna Izin Developer David Kedua pengguna dapat masuk dan menggunakan AWS Management Console di akun Originating. Analis Jane -
Anda tidak perlu membuat pengguna apa pun di akun Tujuan.
-
Bucket Amazon S3 yang dibuat di akun Tujuan. Anda dapat menyebutnya
amzn-s3-demo-bucket-shared-container
dalam tutorial ini, tetapi karena nama bucket S3 harus unik secara global, Anda harus menggunakan bucket dengan nama yang berbeda.
Membuat peran di Akun Tujuan
Anda dapat mengizinkan pengguna dari satu Akun AWS untuk mengakses sumber daya di tempat lain Akun AWS. Dalam tutorial ini, kita akan melakukan ini dengan membuat peran yang mendefinisikan siapa yang dapat mengaksesnya dan izin apa yang diberikannya kepada pengguna yang beralih ke sana.
Pada langkah tutorial ini, Anda membuat peran di akun Tujuan dan menentukan akun Originating 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
ember.
Sebelum Anda dapat membuat peran, Anda memerlukan ID akun dari Originating Akun AWS. Masing-masing Akun AWS memiliki pengenal ID akun unik yang ditetapkan untuk itu.
Untuk mendapatkan Originating Akun AWS ID
-
Masuk ke AWS Management Console sebagai administrator akun Originating, dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di IAM konsol, pilih nama pengguna Anda di bilah navigasi di kanan atas. Itu terlihat seperti ini:
username
@account_ID_number_or_alias
.Untuk skenario ini, Anda dapat menggunakan ID akun 111111111111 untuk akun Originating. 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 Originating
-
Masuk ke AWS Management Console sebagai administrator akun Tujuan, dan buka IAM konsol.
-
Sebelum membuat peran, siapkan kebijakan terkelola yang menentukan 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.
-
Pilih JSONtab dan salin teks dari dokumen JSON kebijakan berikut. Rekatkan teks ini ke dalam kotak JSONteks, ganti resource ARN (
arn:aws:s3:::shared-container
) dengan yang asli untuk bucket Amazon S3 Anda.{ "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/*
" } ] }ListAllMyBuckets
Tindakan memberikan izin untuk mencantumkan semua bucket yang dimiliki oleh pengirim permintaan yang diautentikasi. IzinListBucket
memungkinkan pengguna melihat objek dalam bucketamzn-s3-demo-bucket-shared-container
. IzinGetObject
,PutObject
,DeleteObject
memungkinkan pengguna melihat, memperbarui, dan menghapus konten di bucketamzn-s3-demo-bucket-shared-container
.catatan
Anda dapat beralih antara opsi Visual dan JSONeditor kapan saja. Namun, jika Anda membuat perubahan atau memilih Berikutnya di editor Visual, IAM mungkin merestrukturisasi kebijakan Anda untuk mengoptimalkannya untuk editor visual. Untuk informasi selengkapnya, lihat Restrukturisasi kebijakan.
-
Pada halaman Tinjau dan buat, ketik
read-write-app-bucket
nama kebijakan. Tinjau izin yang diberikan oleh kebijakan Anda, lalu pilih Buat kebijakan untuk menyimpan pekerjaan Anda.Kebijakan baru muncul di daftar kebijakan terkelola.
-
Pada panel navigasi, silakan pilih Peran lalu pilih Buat peran.
-
Pilih An Akun AWStipe peran.
-
Untuk Account ID, ketik Originating Account ID.
Tutorial ini menggunakan contoh ID akun
111111111111
untuk akun Originating. Anda harus menggunakan ID akun yang valid. Jika Anda menggunakan ID akun yang tidak valid, seperti111111111111
, IAM tidak memungkinkan Anda membuat peran baru.Untuk saat ini Anda tidak perlu memerlukan ID eksternal, atau mengharuskan pengguna untuk memiliki otentikasi multi-faktor (MFA) untuk mengambil peran. Biarkan opsi ini tidak dipilih. Untuk informasi selengkapnya, lihat AWS Otentikasi multi-faktor di IAM.
-
Pilih Berikutnya: Izin untuk mengatur izin yang terkait dengan peran.
-
Pilih kotak centang di samping kebijakan yang Anda buat sebelumnya.
Kiat
Untuk Filter, pilih Pelanggan berhasil memfilter daftar agar hanya menyertakan kebijakan yang Anda buat. Ini menyembunyikan AWS membuat kebijakan dan membuatnya lebih mudah untuk menemukan yang Anda butuhkan.
Lalu, pilih Selanjutnya.
-
(Opsional) Tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tag diIAM, lihatTag untuk AWS Identity and Access Management sumber daya.
-
(Opsional) Untuk Deskripsi, masukkan deskripsi untuk peran baru ini.
-
Setelah meninjau peran, klik Buat peran.
Peran
UpdateData
muncul di daftar peran.
Sekarang Anda harus mendapatkan Amazon Resource Name (ARN) peran, pengidentifikasi unik untuk peran tersebut. Saat mengubah peran Pengembang di akun Originating, Anda menentukan peran ARN dari akun Tujuan untuk memberikan atau menolak izin.
Untuk mendapatkan ARN untuk UpdateData
-
Di panel navigasi IAM konsol, pilih Peran.
-
Dalam daftar peran, pilih peran
UpdateData
. -
Di bagian Ringkasan panel detail, salin ARN nilai Peran.
Akun Tujuan memiliki ID akun 999999999999, jadi perannya adalah. ARN
arn:aws:iam::999999999999:role/UpdateData
Pastikan Anda memberikan yang nyata Akun AWS ID 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 Originating sebagai prinsipal tepercaya. Anda juga menentukan apa yang dapat dilakukan oleh pengguna yang beralih ke UpdateData
peran tersebut.
Selanjutnya, ubah izin untuk peran Pengembang.
Berikan akses ke peran tersebut
Pada titik ini, baik Analis dan Pengembang memiliki izin yang memungkinkan mereka mengelola data di akun Originating. Gunakan langkah-langkah berikut yang diperlukan untuk menambahkan izin agar dapat beralih ke peran.
Untuk memodifikasi peran Pengembang agar mereka dapat beralih ke UpdateData peran
-
Masuk sebagai administrator di akun Originating, dan buka IAM konsol.
-
Pilih Peran, lalu pilih Pengembang.
-
Pilih tab Permissions (Izin), pilih Add permissions (Tambahkan izin), lalu pilih Create inline policy (Membuat kebijakan inline).
-
Pilih JSONtab.
-
Tambahkan pernyataan kebijakan berikut untuk mengizinkan
AssumeRole
tindakan padaUpdateData
peran di akun Tujuan. Pastikan bahwa Anda mengubahDESTINATION-ACCOUNT-ID
dalamResource
elemen ke yang sebenarnya Akun AWS ID dari akun Tujuan.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Allow
Efeknya secara eksplisit memungkinkan grup Pengembang mengaksesUpdateData
peran di akun Tujuan. Setiap pengembang yang mencoba mengakses peran berhasil. -
Pilih Tinjau kebijakan.
-
Ketik Nama seperti
allow-assume-S3-role-in-destination
. -
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 gambar 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
-
Pilih Peran, lalu pilih Analis.
-
Pilih tab Permissions (Izin), pilih Add permissions (Tambahkan izin), lalu pilih Create inline policy (Membuat kebijakan inline).
-
Pilih JSONtab.
-
Tambahkan pernyataan kebijakan berikut untuk menolak tindakan
AssumeRole
di peranUpdateData
. Pastikan bahwa Anda mengubahDESTINATION-ACCOUNT-ID
dalamResource
elemen ke yang sebenarnya Akun AWS ID dari akun Tujuan.{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Deny
Efeknya secara eksplisit menyangkal akses grup Analis keUpdateData
peran dalam akun Tujuan. Setiap analis yang mencoba mengakses peran menerima pesan yang ditolak akses. -
Pilih Tinjau kebijakan.
-
Ketik Nama seperti
deny-assume-S3-role-in-destination
. -
Pilih Buat kebijakan.
Peran Pengembang sekarang memiliki izin untuk menggunakan UpdateData
peran di akun Tujuan. Peran analis dicegah dari 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 ember dari AWS Management Console, AWS CLI, atau AWS API.
Akses uji dengan mengalihkan peran
Setelah menyelesaikan dua langkah pertama tutorial ini, Anda memiliki peran yang memberikan akses ke sumber daya di akun Tujuan. Anda juga memiliki satu peran di akun Originating dengan pengguna diizinkan untuk menggunakan peran itu. Langkah ini membahas cara menguji beralih ke peran itu dari AWS Management Console, AWS CLI, dan AWS API.
Untuk mendapatkan bantuan dengan masalah umum yang mungkin Anda temui saat bekerja dengan IAM peran, lihatMemecahkan masalah peran IAM.
Beralih peran (konsol)
Jika David perlu memperbarui data di akun Tujuan di AWS Management Console, dia bisa melakukannya dengan menggunakan Switch Role. 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
ember, tetapi tidak dapat bekerja dengan sumber daya lain di Destination. Sementara David menggunakan peran itu, dia juga tidak dapat memanfaatkan hak istimewa penggunanya di akun Originating. Itu karena hanya satu set izin yang dapat berlaku pada satu waktu.
IAMmenyediakan dua cara yang dapat digunakan David untuk masuk ke halaman Switch Role:
-
David menerima tautan dari administrator mereka yang menunjuk ke konfigurasi Switch Role 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
-
Daud menandatangani AWS Management Console menggunakan pengguna normalnya di akun Originating.
-
Mereka memilih tautan yang dikirimkan administrator melalui email kepada mereka. Ini membawa David ke halaman Beralih Peran dengan ID akun atau alias dan informasi nama peran yang sudah diisi.
—atau—
David memilih nama mereka (menu Identity) pada bilah navigasi, dan kemudian memilih Switch Roles.
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 peralihan peran dapat memungkinkan pengguna untuk mengelola sumber daya di seluruh Akun AWS. David harus memilih Switch Role di halaman ini untuk menyelesaikan sisa prosedur ini.
-
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. 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). -
Sekarang, David dapat menggunakan konsol Amazon S3 untuk bekerja menggunakan bucket Amazon S3 atau sumber daya lain yang peran
UpdateData
nya memiliki izin. -
Setelah selesai, David dapat kembali ke izin aslinya. Untuk melakukan itu, mereka memilih nama tampilan peran Tujuan pada bilah navigasi dan kemudian memilih Kembali ke David @ 1111111111.
-
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 segera beralih peran 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 CLIaws sts
assume-role
perintah dan meneruskan peran ARN untuk mendapatkan kredensil keamanan sementara untuk peran itu. Dia kemudian mengonfigurasi kredensil tersebut dalam variabel lingkungan jadi selanjutnya AWS CLI perintah bekerja menggunakan izin peran. Sementara David menggunakan peran tersebut, ia tidak dapat menggunakan hak istimewa penggunanya di akun Originating, 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
-
David membuka jendela prompt perintah, 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 perintahaws configure
. Untuk informasi selengkapnya, lihat Mengonfigurasi AWS Command Line Interfacedi AWS Command Line Interface Panduan Pengguna. -
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" } }
-
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 kredensional Anda, lihat Mengonfigurasi AWS Command Line Interface. Anda tidak dapat menggunakan
aws configure
perintah karena tidak mendukung pengambilan 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. -
-
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 Alat untuk Windows Powershell, lihat Beralih ke IAM peran (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 kredensi yang sering digunakan dalam file yang dikelola oleh AWS CLI. Untuk informasi selengkapnya, lihat Menggunakan file konfigurasi dan kredensial yang ada di AWS Command Line Interface Panduan Pengguna.
-
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 orang lain AWS layanan, lihat AWS CLI dokumentasi untuk layanan itu 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. Panggilan mengembalikan kredensi sementara yang dapat dia gunakan untuk mengakses amzn-s3-demo-bucket-shared-container
bucket di akun Tujuan. Dengan kredensi tersebut, David dapat melakukan API panggilan untuk memperbarui ember. amzn-s3-demo-bucket-shared-container
Namun, ia tidak dapat melakukan API panggilan untuk mengakses sumber daya lain di akun Tujuan, meskipun ia memiliki izin pengguna daya di akun Originating.
Untuk mengambil peran
-
David memanggil
AssumeRole
sebagai bagian dari aplikasi. Mereka harus menentukanUpdateData
ARN:arn:aws:iam::999999999999:role/UpdateData
.Respond dari panggilan
AssumeRole
mencakup kredensial sementara denganAccessKeyId
danSecretAccessKey
. Informasi ini juga mencakup waktuExpiration
yang menunjukkan kapan kredensial kedaluwarsa dan Anda harus meminta yang baru. Saat Anda mengatur rantai peran dengan AWS SDK, banyak penyedia kredensi secara otomatis menyegarkan kredensil sebelum kedaluwarsa. -
Dengan kredensial sementara, David membuat panggilan
s3:PutObject
untuk memperbarui bucketamzn-s3-demo-bucket-shared-container
. Mereka akan meneruskan kredensil ke API panggilan sebagai parameter.AuthParams
Karena kredenal peran sementara hanya memiliki akses baca dan tulis keamzn-s3-demo-bucket-shared-container
bucket, tindakan lain apa pun di akun Tujuan ditolak.
Untuk contoh kode (menggunakan Python), lihat Beralih ke IAM peran (AWS API).
Sumber daya tambahan
Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang topik dalam tutorial ini:
-
Untuk informasi selengkapnya tentang IAM pengguna, lihatIAMIdentitas .
-
Untuk informasi selengkapnya tentang bucket Amazon S3, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
-
Untuk mengetahui apakah prinsipal di akun di luar zona kepercayaan Anda (organisasi atau akun tepercaya) memiliki akses untuk mengambil peran Anda, lihat Apa itu IAM Access Analyzer? .
Ringkasan
Anda telah menyelesaikan tutorial API akses 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 IAM pengguna mana yang dapat mengakses peran tersebut. Akibatnya, pengembang dari akun Originating dapat melakukan pembaruan ke amzn-s3-demo-bucket-shared-container
bucket di akun Destination dengan menggunakan kredensi sementara.