Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Step Functions menyediakan akses lintas akun ke sumber daya yang dikonfigurasi Akun AWS di berbagai alur kerja Anda. Dengan menggunakan integrasi layanan Step Functions, Anda dapat memanggil AWS sumber daya lintas akun apa pun meskipun Layanan AWS tidak mendukung kebijakan berbasis sumber daya atau panggilan lintas akun.
Misalnya, asumsikan Anda memiliki dua Akun AWS, yang 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
Peran IAM dan kebijakan berbasis sumber daya mendelegasikan akses ke seluruh akun hanya dalam satu partisi tunggal. 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 Panduan Pengguna IAM.
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, integrasi AWS SDK lintas wilayah dan akses AWS sumber daya lintas wilayah tidak tersedia di Step Functions.
Konsep sumber daya lintas akun utama
- Peran eksekusi
-
Peran IAM yang digunakan Step Functions untuk menjalankan kode dan mengakses AWS sumber daya, seperti tindakan Invoke AWS Lambda fungsi.
- Integrasi layanan
-
Tindakan API integrasi AWS SDK yang dapat dipanggil dari dalam
Task
status dalam alur kerja Anda. - akun sumber
An Akun AWS yang memiliki mesin negara dan telah memulai eksekusi.
- akun target
Tempat Akun AWS Anda melakukan panggilan lintas akun.
- peran target
Peran IAM 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 diResource
bidang dalam definisiTask
status Anda.
Memanggil sumber daya lintas akun
Untuk memanggil sumber daya lintas akun di alur kerja Anda, lakukan hal berikut:
Buat peran IAM di akun target yang berisi sumber daya. Peran ini memberikan akun sumber, yang berisi mesin status, izin untuk mengakses sumber daya akun target.
Dalam definisi
Task
status, tentukan peran IAM target yang akan diasumsikan oleh mesin status sebelum menjalankan sumber daya lintas akun.Ubah kebijakan kepercayaan dalam peran IAM target untuk memungkinkan akun sumber mengambil peran ini sementara. Kebijakan kepercayaan harus menyertakan Nama Sumber Daya Amazon (ARN) dari mesin status yang ditentukan dalam akun sumber. Juga, tentukan izin yang sesuai dalam peran IAM target untuk memanggil sumber daya. AWS
Perbarui peran eksekusi akun sumber untuk menyertakan izin yang diperlukan untuk mengasumsikan peran IAM target.
Sebagai contoh, lihat Mengakses AWS sumber daya lintas akun di Step Functions di tutorial.
catatan
Anda dapat mengonfigurasi mesin status Anda untuk mengambil peran IAM untuk mengakses sumber daya dari beberapa. Akun AWS Namun, mesin negara hanya dapat mengasumsikan satu peran IAM pada waktu tertentu.

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. Peran IAM target memerlukan izin yang diperlukan untuk .sync
pemanggilan untuk menyelesaikan polling loop ini. Untuk melakukan ini, peran IAM target harus memiliki kebijakan kepercayaan yang memungkinkan akun sumber untuk mengasumsikan itu. Selain itu, peran IAM 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 peran IAM target Anda seperti yang ditunjukkan pada contoh berikut. sts:ExternalId
Bidang lebih lanjut mengontrol siapa yang dapat mengambil peran. Nama mesin status harus menyertakan hanya karakter yang didukung AWS Security Token Service AssumeRole
API. Untuk informasi selengkapnya, lihat AssumeRole di dalam Referensi API AWS Security Token Service .
{
"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 IAM target. Untuk informasi selengkapnya, lihat Bagaimana Step Functions menghasilkan kebijakan IAM 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
:*"
]
}
]
}