Mengakses sumber daya di tempat lain Akun AWS di Step Functions - AWS Step Functions

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

Mengakses sumber daya di tempat lain Akun AWS di Step Functions

Step Functions menyediakan akses lintas akun ke sumber daya yang dikonfigurasi dalam berbagai Akun AWS dalam alur kerja Anda. Menggunakan integrasi layanan Step Functions, Anda dapat memanggil lintas akun apa pun AWS sumber daya bahkan jika itu Layanan AWS tidak mendukung kebijakan berbasis sumber daya atau panggilan lintas akun.

Misalnya, anggaplah Anda memiliki dua Akun AWS, disebut Pengembangan dan Pengujian, dalam hal yang sama Wilayah AWS. Menggunakan akses lintas akun, alur kerja Anda di akun Pengembangan dapat mengakses sumber daya, seperti bucket Amazon S3, tabel Amazon DynamoDB, dan fungsi Lambda yang tersedia di akun Pengujian.

penting

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 partisi aws-cn. Anda tidak dapat menggunakan kebijakan berbasis sumber daya Amazon S3 di akun Anda di Tiongkok (Beijing) untuk memungkinkan akses bagi pengguna dalam akun aws standar Anda.

Untuk informasi selengkapnya tentang akses lintas akun, lihat Logika evaluasi kebijakan lintas akun di IAMPanduan Pengguna.

Meskipun masing-masing Akun AWS mempertahankan kontrol penuh atas sumber dayanya sendiri, dengan Step Functions, Anda dapat mengatur ulang, menukar, menambah, atau menghapus langkah-langkah dalam alur kerja Anda tanpa perlu menyesuaikan kode apa pun. Anda dapat melakukan ini bahkan saat proses berubah atau aplikasi berkembang.

Anda juga dapat menjalankan eksekusi mesin status bersarang sehingga tersedia di berbagai akun. Melakukannya secara efisien memisahkan dan mengisolasi alur kerja Anda. Saat Anda menggunakan pola integrasi .synclayanan dalam alur kerja yang mengakses alur kerja Step Functions lain di akun lain, Step Functions menggunakan polling yang menggunakan kuota yang ditetapkan. Untuk informasi selengkapnya, lihat Jalankan Tugas (.sync).

catatan

Saat ini, Lintas wilayah AWS SDKIntegrasi dan Lintas wilayah AWS akses sumber daya tidak tersedia di Step Functions.

Konsep sumber daya lintas akun utama

Peran eksekusi

IAMPeran yang digunakan Step Functions untuk menjalankan kode dan akses AWS sumber daya, seperti AWS Lambda tindakan Memanggil fungsi.

Integrasi layanan

Bagian AWS SDKAPItindakan integrasi yang dapat dipanggil dari dalam Task keadaan dalam alur kerja Anda.

akun sumber

Sesi Akun AWS yang memiliki mesin negara dan telah memulai pelaksanaannya.

akun target

Sesi Akun AWS tempat Anda melakukan panggilan lintas akun.

peran target

IAMPeran dalam akun target yang diasumsikan oleh mesin negara untuk melakukan panggilan ke sumber daya yang dimiliki akun target.

Jalankan Job (.sync)

Pola integrasi layanan yang digunakan untuk memanggil layanan, seperti AWS Batch. Itu juga membuat mesin status Step Functions menunggu pekerjaan selesai sebelum melanjutkan ke status berikutnya. Untuk menunjukkan bahwa Step Functions harus menunggu, tambahkan .sync akhiran di Resource bidang dalam definisi Task status Anda.

Memanggil sumber daya lintas akun

Untuk memanggil sumber daya lintas akun di alur kerja Anda, lakukan hal berikut:

  1. Buat IAM peran di akun target yang berisi sumber daya. Peran ini memberikan akun sumber, yang berisi mesin status, izin untuk mengakses sumber daya akun target.

  2. Dalam definisi Task status, tentukan IAM peran target yang akan diasumsikan oleh mesin status sebelum menjalankan sumber daya lintas akun.

  3. Ubah kebijakan kepercayaan dalam IAM peran target agar akun sumber dapat mengambil peran ini sementara. Kebijakan kepercayaan harus menyertakan Amazon Resource Name (ARN) dari mesin status yang ditentukan dalam akun sumber. Juga, tentukan izin yang sesuai dalam IAM peran target untuk memanggil AWS sumber daya.

  4. Perbarui peran eksekusi akun sumber untuk menyertakan izin yang diperlukan untuk mengasumsikan IAM peran target.

Sebagai contoh, lihat Mengakses lintas akun AWS sumber daya di Step Functions di tutorial.

catatan

Anda dapat mengonfigurasi mesin status Anda untuk mengambil IAM peran untuk mengakses sumber daya dari beberapa Akun AWS. Namun, mesin negara hanya dapat mengambil satu IAM peran pada waktu tertentu.

Konsep untuk mengakses sumber daya lintas akun

Akses lintas akun untuk pola integrasi.sync

Saat Anda menggunakan pola integrasi .sync layanan dalam alur kerja, Step Functions akan melakukan polling sumber daya lintas akun yang dipanggil untuk mengonfirmasi bahwa tugas telah selesai. Hal ini menyebabkan sedikit keterlambatan antara waktu penyelesaian tugas yang sebenarnya dan waktu ketika Step Functions mengenali tugas sebagai selesai. IAMPeran target membutuhkan izin yang diperlukan untuk .sync pemanggilan untuk menyelesaikan polling loop ini. Untuk melakukan ini, IAM peran target harus memiliki kebijakan kepercayaan yang memungkinkan akun sumber untuk mengasumsikannya. Selain itu, IAM peran target memerlukan izin yang diperlukan untuk menyelesaikan polling loop.

catatan

Untuk Alur Kerja Ekspres bersarang, saat ini arn:aws:states:::states:startExecution.sync tidak didukung. Gunakan arn:aws:states:::aws-sdk:sfn:startSyncExecution sebagai gantinya.

Pembaruan kebijakan kepercayaan untuk panggilan.sync

Perbarui kebijakan kepercayaan IAM peran target Anda seperti yang ditunjukkan pada contoh berikut. sts:ExternalIdBidang lebih lanjut mengontrol siapa yang dapat mengambil peran. Nama mesin negara harus menyertakan hanya karakter yang AWS Security Token Service AssumeRoleAPImendukung. Untuk informasi lebih lanjut, lihat AssumeRoledi AWS Security Token Service APIReferensi.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::sourceAccountID:role/InvokeRole", }, "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID:stateMachine:stateMachineName" } } } ] }

Izin diperlukan untuk panggilan.sync

Untuk memberikan izin yang diperlukan untuk mesin status Anda, perbarui izin yang diperlukan untuk peran targetIAM. Untuk informasi selengkapnya, lihat Bagaimana Step Functions menghasilkan IAM kebijakan untuk layanan terintegrasi. EventBridge Izin Amazon dari kebijakan contoh tidak diperlukan. Misalnya, untuk memulai mesin status, tambahkan izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:region:accountID:execution:stateMachineName:*" ] } ] }