Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membangun integrasi Anda
Memahami Siklus Hidup Permintaan
Sebelum membangun integrasi Anda, penting untuk memahami bagaimana permintaan delegasi berkembang dari pembuatan hingga penyelesaian.
Minta Negara
Permintaan delegasi berlangsung melalui status berikut:
| Status | Deskripsi |
|---|---|
| Tidak ditugaskan | Permintaan dibuat tetapi belum dikaitkan dengan akun pelanggan dan prinsipal IAM. Permintaan mungkin telah dibuat tanpa menentukan akun target, atau dengan ID akun target tetapi belum diklaim oleh pemilik akun. |
| Ditugaskan | Permintaan terkait dengan akun pelanggan dan menunggu peninjauan |
| Persetujuan Tertunda | Pelanggan telah meneruskan permintaan ke administrator untuk persetujuan |
| Diterima | Permintaan disetujui oleh pelanggan tetapi token pertukaran belum dirilis |
| Selesai | Token pertukaran dirilis ke penyedia produk. Periode delegasi (validitas token pertukaran) dimulai ketika permintaan mencapai status Finalized |
| Ditolak | Permintaan ditolak oleh pelanggan |
| Kadaluarsa | Permintaan kedaluwarsa karena tidak aktif atau batas waktu |
Transisi Negara
Aliran Normal (Jalur Persetujuan)
Tidak Ditugaskan → Ditugaskan: Pelanggan mengaitkan permintaan dengan akun mereka
Ditugaskan → Diterima ATAU Ditugaskan → Persetujuan Tertunda: Pelanggan menyetujui permintaan secara langsung ATAU meneruskan ke administrator untuk ditinjau
Persetujuan Tertunda → Diterima: Administrator menyetujui permintaan
Diterima → Selesai: Pelanggan merilis token pertukaran
Jalur Penolakan
Ditugaskan → Ditolak: Pelanggan menolak permintaan
Persetujuan Tertunda → Ditolak: Administrator menolak permintaan
Diterima → Ditolak: Pelanggan mencabut persetujuan sebelum merilis token
Jalur Kedaluwarsa
Permintaan secara otomatis kedaluwarsa jika tidak ada tindakan yang diambil dalam jangka waktu yang ditentukan:
Tidak Ditugaskan → Kedaluwarsa (1 hari)
Ditugaskan → Kedaluwarsa (7 hari)
Persetujuan Tertunda → Kedaluwarsa (7 hari)
Diterima → Kedaluwarsa (7 hari)
Ditolak → Kedaluwarsa (7 hari)
Finalisasi → Kedaluwarsa (7 hari)
Negara Terminal
Status berikut adalah terminal (tidak ada transisi lebih lanjut):
Selesai: Token Pertukaran dikirim
Ditolak: Permintaan ditolak
Kedaluwarsa: Waktu permintaan habis atau periode delegasi berakhir
Permintaan kedaluwarsa akhirnya dihapus dari sistem setelah periode retensi.
Mengelola status permintaan delegasi dalam aplikasi Anda
Sebagai mitra, Anda harus melacak status permintaan delegasi di sistem Anda dan memunculkannya ke pelanggan Anda. Saat Anda menerima pemberitahuan SNS tentang perubahan status, simpan pembaruan ini di backend Anda dan cerminkan di UI yang menghadap pelanggan. Berikan perhatian khusus pada status Persetujuan Tertunda — saat pelanggan meneruskan permintaan ke administrator untuk ditinjau, AWS mengirimkan pemberitahuan Persetujuan Tertunda kepada Anda. Permintaan dapat tetap dalam status ini hingga 7 hari sambil menunggu tindakan administrator. Selama waktu ini, tunjukkan kepada pelanggan bahwa permintaan mereka sedang menunggu persetujuan administrator dalam aplikasi Anda. Pertimbangkan untuk menyediakan tautan dalam ke AWS Konsol tempat pelanggan dapat memeriksa status permintaan atau menindaklanjuti dengan administrator mereka. Menangani mesin status dengan benar di backend Anda dan menampilkan informasi status yang benar kepada pelanggan di setiap tahap penting untuk pengalaman integrasi yang baik.
Mengkonfigurasi Pemberitahuan
IAM menggunakan Amazon Simple Notification Service (SNS) untuk mengkomunikasikan perubahan status permintaan delegasi kepada Anda. Saat Anda membuat permintaan delegasi, Anda harus memberikan ARN topik SNS dari akun terdaftar Anda. AWS IAM akan mempublikasikan pesan ke topik ini untuk acara penting, termasuk ketika pelanggan menyetujui atau menolak permintaan dan ketika token pertukaran siap.
catatan
Topik SNS tidak dapat berada di Wilayah keikutsertaan AWS . Topik SNS Anda harus berada di AWS Wilayah yang diaktifkan secara default. Untuk daftar Wilayah keikutsertaan, lihat Mengelola AWS Wilayah dalam panduan Manajemen AWS Akun.
Konfigurasi Topik SNS
Untuk menerima pemberitahuan permintaan delegasi, Anda harus mengonfigurasi topik SNS Anda untuk memberikan izin IAM untuk mempublikasikan pesan ke sana. Tambahkan pernyataan kebijakan berikut ke kebijakan topik SNS Anda:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMServiceToPublish", "Effect": "Allow", "Principal": { "Service": "iam.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME" } ] }
penting
Topik SNS harus ada di salah satu AWS akun terdaftar Anda. IAM tidak akan menerima topik SNS dari akun lain. Jika kebijakan topik tidak dikonfigurasi dengan benar, Anda tidak akan menerima pemberitahuan perubahan status atau token pertukaran.
Jenis Pemberitahuan
IAM mengirimkan dua jenis notifikasi:
StateChange Pemberitahuan
Dikirim ketika permintaan delegasi bertransisi ke status baru (Ditugaskan, Menunggu Persetujuan, Diterima, Diselesaikan, Ditolak, Kedaluwarsa).
ExchangeToken Pemberitahuan
Dikirim saat pelanggan merilis token delegasi (status Finalized). Pemberitahuan ini mencakup token pertukaran yang Anda butuhkan untuk mendapatkan kredensyal.
Status Pemberitahuan
Anda akan menerima pemberitahuan untuk status permintaan delegasi berikut:
| Status | Jenis Pemberitahuan | Deskripsi |
|---|---|---|
| DITETAPKAN | StateChange | Permintaan telah dikaitkan dengan akun pelanggan |
| MENUNGGU PERSETUJUAN | StateChange | Pelanggan telah meneruskan permintaan ke administrator untuk persetujuan |
| DITERIMA | StateChange | Pelanggan telah menyetujui permintaan tetapi belum merilis token |
| DISELESAIKAN | StateChange | Pelanggan telah merilis token pertukaran |
| DISELESAIKAN | ExchangeToken | Pemberitahuan ini berisi Token Exchange |
| MENOLAK | StateChange | Pelanggan telah menolak permintaan |
| KEDALUWARSA | StateChange | Permintaan kedaluwarsa sebelum selesai |
Format Pesan Pemberitahuan
IAM menerbitkan pemberitahuan SNS standar. Informasi permintaan delegasi terkandung dalam bidang Pesan sebagai string JSON.
Bidang Umum (Semua Pemberitahuan)
| Bidang | Tipe | Deskripsi |
|---|---|---|
| Tipe | String | Entah "StateChange" atau "ExchangeToken” |
| RequestId | String | ID permintaan delegasi IAM |
| RequestorWorkflowId | String | ID alur kerja yang Anda berikan saat membuat permintaan |
| Status | String | Status permintaan saat ini |
| OwnerAccountId | String | ID AWS Rekening Nasabah |
| UpdatedAt | String | Stempel waktu saat status berubah (format ISO 8601) |
Bidang Tambahan (Hanya ExchangeToken Pemberitahuan)
| Bidang | Tipe | Deskripsi |
|---|---|---|
| ExchangeToken | String | Token untuk ditukar dengan kredensyal menggunakan API AWS STS GetDelegatedAccessToken |
| ExpiresAt | String | Ketika akses yang didelegasikan kedaluwarsa (format ISO 8601) |
Contoh Pemberitahuan
StateChange Pemberitahuan
{ "Type": "Notification", "MessageId": "61ee8ad4-6eec-56b5-8f3d-eba57556aa13", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestorWorkflowId\":\"workflow-12345\",\"Type\":\"StateChange\",\"RequestId\":\"dr-abc123\",\"State\":\"ACCEPTED\",\"OwnerAccountId\":\"111122223333\",\"UpdatedAt\":\"2025-01-15T10:30:00.123Z\"}", "Timestamp": "2025-01-15T10:30:00.456Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }
ExchangeToken Pemberitahuan
{ "Type": "Notification", "MessageId": "e44e5435-c72c-5333-aba3-354406782f5b", "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications", "Message": "{\"RequestId\":\"dr-abc123\",\"RequestorWorkflowId\":\"workflow-12345\",\"State\":\"FINALIZED\",\"OwnerAccountId\":\"111122223333\",\"ExchangeToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\"ExpiresAt\":\"2025-01-15T18:30:00.123Z\",\"UpdatedAt\":\"2025-01-15T10:30:00.456Z\",\"Type\":\"ExchangeToken\"}", "Timestamp": "2025-01-15T10:30:00.789Z", "SignatureVersion": "1", "Signature": "...", "SigningCertURL": "...", "UnsubscribeURL": "..." }
Token Pertukaran
Token pertukaran atau perdagangan token dikeluarkan oleh IAM ketika pelanggan menerima dan menyelesaikan permintaan delegasi. Penyedia produk menggunakan pertukaran ini atau perdagangan token untuk memanggil AWS AWS STS GetDelegatedAccessToken API untuk mendapatkan AWS kredensi sementara dengan izin yang disetujui pelanggan. Token pertukaran itu sendiri tidak memberikan akses ke AWS sumber daya Anda; itu harus ditukar dengan kredensi aktual melalui STS. AWS
Token pertukaran hanya dapat ditukarkan oleh akun penyedia produk yang membuat permintaan delegasi. Akun yang meminta disematkan dalam token, memastikan bahwa hanya penyedia produk resmi yang dapat memperoleh kredensi untuk mengakses akun pelanggan.
Durasi Akses
Periode delegasi dimulai saat pelanggan merilis token pertukaran, bukan saat penyedia produk menebusnya. Setelah pelanggan merilis token:
Penyedia produk menerima token melalui notifikasi SNS
Mereka dapat segera menukarnya dengan kredensyal
Kredensyal kedaluwarsa pada: waktu rilis+durasi yang disetujui
Penyedia produk dapat menukar token beberapa kali sebelum kedaluwarsa untuk mendapatkan kredensyal baru jika diperlukan
Beberapa Penukaran
Penyedia produk dapat menukar token beberapa kali selama masa berlaku untuk mendapatkan kredensyal baru. Namun, semua kredensyal yang diperoleh dari token pertukaran yang sama kedaluwarsa pada saat yang sama, berdasarkan kapan Anda merilis token.
Contoh: Jika Anda menyetujui permintaan delegasi 2 jam dan melepaskan token pada pukul 10:00:
| Waktu Rilis Token | Waktu Pertukaran Token | Kedaluwarsa Kredensi | Waktu yang Dapat Digunakan |
|---|---|---|---|
| 10:00 pagi | 10:00 pagi | 12:00pm | 2 jam |
| 10:00 pagi | 10:20 pagi | 12:00pm | 1 jam 40 menit |
| 10:00 pagi | 11:40am | 12:00pm | 20 menit |
| 10:00 pagi | 12:10pm | Gagal (token kedaluwarsa) | 0 menit |
Seperti yang ditunjukkan pada tabel, pertukaran token nanti dalam masa berlaku menghasilkan waktu yang kurang dapat digunakan untuk penyedia produk.