全部产品
Search
文档中心

Resource Access Management:Gunakan SourceIdentity untuk pelacakan asumsi peran dan kontrol akses

更新时间:Dec 12, 2025

Topik ini menjelaskan konsep inti, metode konfigurasi, kebijakan kontrol akses, serta skenario umum untuk SourceIdentity. Panduan troubleshooting juga disediakan.

Apa itu SourceIdentity

SourceIdentity adalah identitas sumber yang Anda tetapkan untuk sesi saat ini ketika memanggil operasi OpenAPI untuk mengasumsikan peran RAM dan mendapatkan token Security Token Service (STS) sementara.

Tujuan utama menggunakan SourceIdentity adalah:

  • Lacak identitas dalam skenario kompleks seperti role chaining

    Role chain adalah skenario di mana identitas RAM atau pengguna yang login melalui SSO berbasis peran mengasumsikan suatu peran, mendapatkan sesi peran, lalu memanggil operasi API untuk mengasumsikan peran lain. Contohnya: Pengguna A → Peran B → Peran C. Peran RAM dalam role chain dapat berasal dari Akun Alibaba Cloud yang sama atau berbeda.

    Dalam skenario asumsi peran, Anda dapat menetapkan RoleSessionName untuk mengaudit identitas sumber. Namun, dalam skenario role chain, RoleSessionName mungkin dimodifikasi selama beberapa kali asumsi peran, sehingga menyulitkan pelacakan identitas operator awal secara akurat.

    Setelah SourceIdentity ditetapkan di awal role chain, nilainya bertahan dalam sesi peran dan tidak dapat diubah. Hal ini memastikan identitas operator awal tetap dapat dilacak dalam log, bahkan setelah beberapa kali asumsi peran.

    Untuk informasi lebih lanjut tentang penerapan SourceIdentity dalam role chain, lihat Contoh role chain.

  • Terapkan kontrol akses detail halus untuk peran berhak istimewa tinggi

    Administrator dapat mengonfigurasi otorisasi detail halus berdasarkan nilai atau keberadaan SourceIdentity. Ini berguna ketika suatu peran bersama—yaitu peran yang digunakan oleh beberapa identitas—digunakan untuk menjalankan operasi.

    Sebagai contoh, administrator dapat menggunakan kunci kondisi dalam kebijakan akses untuk mewajibkan identitas sumber menetapkan nilai SourceIdentity tertentu saat mengasumsikan suatu peran. Hal ini membatasi asumsi peran berhak istimewa tinggi atau akses ke sumber daya inti hanya untuk identitas sumber tertentu.

Metode untuk menetapkan SourceIdentity

Anda dapat menetapkan SourceIdentity saat memanggil STS untuk mengasumsikan peran menggunakan salah satu dari tiga operasi API berikut.

Gunakan operasi AssumeRole

Saat memanggil operasi API AssumeRole, Anda dapat menggunakan parameter SourceIdentity untuk menentukan identitas sumber. Misalnya, Anda dapat menetapkan nilainya menjadi Alice. Ini berlaku untuk skenario asumsi peran standar di mana pengguna RAM atau peran RAM mengasumsikan peran lain.

Setelah pemanggilan berhasil, SourceIdentity dikembalikan sebagai bidang tingkat atas dalam respons. Contoh respons berikut menunjukkan hasilnya:

{
  "RequestId": "6894B13B-6D71-4EF5-88FA-F3278173****",
  "AssumedRoleUser": {
    "AssumedRoleId": "34458433936495****:alice",
    "Arn": "acs:ram::123456789012****:role/alice"
  },
  "Credentials": {
    "SecurityToken": "********",
    "Expiration": "2015-04-09T11:52:19Z",
    "AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
    "AccessKeyId": "STS.L4aBSCSJVMuKg5U1****"
  },
  "SourceIdentity": "Alice"
}

Untuk informasi lebih lanjut tentang cara memanggil operasi ini, lihat AssumeRole - Dapatkan kredensial identitas temporary untuk peran RAM.

Gunakan operasi AssumeRoleWithSAML

Dalam skenario SSO berbasis peran SAML, nilai SourceIdentity disediakan oleh penyedia identitas (IdP) dalam pernyataan SAML.

Anda dapat mengonfigurasi atribut SAML di IdP dan memetakannya ke identitas pengguna, seperti username. Nama atribut harus berupa https://www.aliyun.com/SAML-Role/Attributes/SourceIdentity.

Setelah konfigurasi selesai, respons SAML yang dikeluarkan oleh IdP berisi pernyataan SAML berikut. Contoh ini mengasumsikan bahwa awalan User Principal Name (UPN) pengguna dipetakan ke nilai SourceIdentity:

<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SourceIdentity">      
  <AttributeValue>upn_prefix</AttributeValue>
</Attribute>

Respons untuk pemanggilan yang berhasil sama dengan respons operasi AssumeRole. Untuk informasi lebih lanjut tentang cara memanggil operasi ini, lihat AssumeRoleWithSAML - Dapatkan kredensial identitas temporary untuk peran RAM selama SSO berbasis peran SAML.

Gunakan operasi AssumeRoleWithOIDC

Dalam skenario SSO berbasis peran OpenID Connect (OIDC), nilai SourceIdentity disediakan oleh IdP sebagai klaim dalam token ID, juga dikenal sebagai token OIDC.

Anda dapat mengonfigurasi klaim token ID kustom di IdP dan memetakannya ke identitas pengguna, seperti username. Nama klaim harus berupa https://www.aliyun.com/source_identity. Contohnya:

Setelah konfigurasi selesai, token ID yang dikeluarkan oleh IdP berisi klaim berikut. Contoh ini mengasumsikan bahwa awalan UPN pengguna dipetakan ke nilai SourceIdentity:

{
  "https://www.aliyun.com/source_identity": "upn_prefix"
}

Respons untuk pemanggilan yang berhasil sama dengan respons operasi AssumeRole. Untuk informasi lebih lanjut tentang cara memanggil operasi ini, lihat AssumeRoleWithOIDC - Dapatkan kredensial identitas temporary untuk peran RAM selama SSO berbasis peran OIDC.

Persyaratan format

  • Nilai harus terdiri dari 2 hingga 64 karakter.

  • Nilai dapat berisi huruf, angka, dan karakter khusus berikut: =, ,, ., @, -, dan _.

  • Nilai tidak boleh menggunakan awalan yang dicadangkan oleh Alibaba Cloud, seperti acs:, aliyun:, atau alibabacloud:.

Pengaturan izin dan kontrol kondisi

Anda dapat menggunakan kombinasi kebijakan akses berbasis identitas dan kebijakan kepercayaan peran untuk mengontrol penggunaan SourceIdentity secara tepat.

Operasi izin

Nama

Tipe

Cakupan

Fungsi

sts:SetSourceIdentity

Operasi izin

  • Kebijakan akses berbasis identitas

  • Kebijakan kepercayaan peran

Memberikan izin untuk menetapkan SourceIdentity saat mengasumsikan peran.

Contoh konfigurasi operasi izin

Untuk mengizinkan suatu identitas, seperti pengguna RAM atau peran RAM, menetapkan SourceIdentity saat memanggil AssumeRole, Anda harus memberikan izin sts:SetSourceIdentity baik dalam kebijakan akses berbasis identitas pihak yang berwenang maupun dalam kebijakan kepercayaan peran peran target. Tambahkan sts:SetSourceIdentity ke blok Action.

  • Contoh kebijakan akses berbasis identitas (diberikan kepada pihak yang berwenang):

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_ID:role/TARGET_ROLE"
        }
      ]
    }
  • Contoh kebijakan kepercayaan peran (dikonfigurasi untuk peran yang diasumsikan):

    {
      "Statement": [
        {
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::ACCOUNT_ID:root"
            ]
          }
        }
      ],
      "Version": "1"
    }

Contoh konfigurasi operasi izin untuk skenario SSO berbasis peran

Saat mengasumsikan peran dengan memanggil operasi AssumeRoleWithSAML atau AssumeRoleWithOIDC, Anda hanya perlu memberikan izin sts:SetSourceIdentity dalam kebijakan kepercayaan peran peran target. Contoh berikut menunjukkan kebijakan untuk SSO berbasis peran SAML:

{
  "Statement": [
    {
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringEquals": {
          "saml:recipient": [
            "https://signin.aliyun.com/saml-role/sso"
          ]
        }
      },
      "Effect": "Allow",
      "Principal": {
        "Federated": [
          "acs:ram::ACCOUNT_ID:saml-provider/PROVIDER_NAME"
        ]
      }
    }
  ],
  "Version": "1"
}
Penting

Jika Anda mengonfigurasi atribut SourceIdentity di IdP, kebijakan kepercayaan semua peran yang terkait dengan IdP tersebut harus mencakup operasi sts:SetSourceIdentity. Jika tidak, pengguna tidak dapat login melalui SSO karena izin tidak mencukupi.

Kunci kondisi

Nama

Tipe

Cakupan

Fungsi

sts:SourceIdentity

Kunci kondisi

  • Kebijakan akses berbasis identitas

  • Kebijakan kepercayaan peran

Mengaitkan satu atau beberapa nilai SourceIdentity. Digunakan untuk mencocokkan nilai SourceIdentity dalam permintaan pengasumsian peran guna menentukan apakah pemohon diizinkan menetapkan nilai SourceIdentity tertentu.

acs:SourceIdentity

Kunci kondisi (global)

  • Kebijakan akses berbasis identitas

Mengaitkan satu atau beberapa nilai SourceIdentity. Digunakan untuk mencocokkan nilai SourceIdentity yang ada dalam sesi peran guna menentukan apakah sesi saat ini berisi nilai SourceIdentity tertentu saat mengakses sumber daya atau layanan Alibaba Cloud.

Catatan

Saat ini, kunci kondisi acs:SourceIdentity hanya berlaku selama evaluasi kebijakan untuk STS.

Perbedaan antara kunci kondisi sts:SourceIdentity dan acs:SourceIdentity adalah sebagai berikut:

  • sts:SourceIdentity mencocokkan atribut SourceIdentity dalam permintaan asumsi peran.

  • acs:SourceIdentity mencocokkan atribut SourceIdentity yang ada dalam sesi peran, termasuk token STS, setelah peran berhasil diasumsikan.

Jika Anda mengasumsikan peran untuk pertama kalinya, Anda harus mengonfigurasi kunci kondisi sts:SourceIdentity dalam kebijakan, termasuk kebijakan akses berbasis identitas dan kebijakan kepercayaan peran. Karena sesi peran yang valid belum dihasilkan, penggunaan kunci kondisi acs:SourceIdentity akan menyebabkan asumsi peran gagal.

Contoh kontrol kondisi

Dengan menggunakan kunci kondisi sts:SourceIdentity dalam blok Condition kebijakan, Anda dapat mewajibkan nilai SourceIdentity tertentu harus dilewatkan saat mengasumsikan peran. Anda dapat mengonfigurasi kondisi dalam satu atau kedua jenis kebijakan berikut:

  • Tetapkan kondisi dalam kebijakan akses berbasis identitas: Batasi identitas agar hanya dapat menetapkan nilai SourceIdentity tertentu saat mengasumsikan peran tertentu.

  • Tetapkan kondisi dalam kebijakan kepercayaan peran: Batasi semua identitas agar hanya dapat menetapkan nilai SourceIdentity tertentu saat mengasumsikan peran tersebut.

Perhatikan bahwa Anda juga harus menambahkan izin sts:SetSourceIdentity ke blok Action kebijakan. Jika tidak, fitur kontrol kondisi tidak akan berfungsi.

Catatan

Setelah pengguna RAM login ke Konsol, pengguna tersebut tidak dapat menggunakan fitur Switch Identity untuk mengasumsikan peran yang mewajibkan penyetelan SourceIdentity. Hal ini karena Konsol tidak mendukung pemasukan parameter ini.

Asumsikan terdapat peran RAM berhak istimewa tinggi untuk lingkungan produksi bernama prod-role. Administrator perlu menerapkan kontrol berikut:

  1. Hanya pengguna RAM Alice dan Bob yang dapat mengasumsikan prod-role.

  2. Saat mengasumsikan prod-role, SourceIdentity harus ditetapkan, dan nilainya harus sesuai dengan username pihak yang berwenang. Misalnya, saat Alice mengasumsikan peran, nilainya dapat diatur menjadi alice atau alice@exampledomain.com.

Langkah 1: Konfigurasikan kebijakan kepercayaan peran untuk prod-role

Kebijakan ini memastikan hanya Alice dan Bob yang dapat mengasumsikan peran ini, dan permintaan harus berisi nilai SourceIdentity yang diawali dengan alice atau bob.

{
  "Statement": [
    {
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringLike": {
          "sts:SourceIdentity": [
            "alice*",
            "bob*"
          ]
        }
      },
      "Effect": "Allow",
      "Principal": {
        "RAM": [
          "acs:ram::ACCOUNT_ID:user/alice",
          "acs:ram::ACCOUNT_ID:user/bob"
        ]
      }
    }
  ],
  "Version": "1"
}

Langkah 2: Konfigurasikan kebijakan akses berbasis identitas untuk Alice dan Bob

Kebijakan berikut memberikan izin kepada Alice dan Bob untuk mengasumsikan prod-role dan mewajibkan mereka menetapkan nilai SourceIdentity yang sesuai dengan username masing-masing dalam permintaan.

  • Kebijakan akses berbasis identitas Alice

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_ID:role/prod-role",
          "Condition": {
            "StringLike": {
              "sts:SourceIdentity": [
                "alice*"
              ]
            }
          }
        }
      ]
    }
  • Kebijakan akses berbasis identitas Bob

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_ID:role/prod-role",
          "Condition": {
            "StringLike": {
              "sts:SourceIdentity": [
                "bob*"
              ]
            }
          }
        }
      ]
    }

Contoh kontrol kondisi untuk skenario SSO berbasis peran

Asumsikan peran dev-role hanya dapat diasumsikan melalui SSO berbasis peran SAML dan dibatasi untuk pengguna dengan ID karyawan employeeid-alice dan employeeid-bob. IdP menambahkan ID karyawan pengguna ke pernyataan SAML sebagai nilai SourceIdentity.

Kebijakan kepercayaan untuk dev-role dikonfigurasi sebagai berikut:

{
  "Statement": [
    {
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringEquals": {
          "saml:recipient": [
            "https://signin.aliyun.com/saml-role/sso"
          ],
          "sts:SourceIdentity": [
            "employeeid-alice",
            "employeeid-bob"
          ]
        }
      },
      "Effect": "Allow",
      "Principal": {
        "Federated": [
          "acs:ram::ACCOUNT_ID:saml-provider/PROVIDER_NAME"
        ]
      }
    }
  ],
  "Version": "1"
}

Rekomendasi untuk menggunakan kontrol kondisi

  • Uji sebelum rilis: Jangan langsung mengaktifkan kebijakan wajib untuk SourceIdentity di lingkungan produksi. Ini mencakup kebijakan akses berbasis identitas dan kebijakan kepercayaan peran yang telah dikonfigurasi dengan kunci kondisi sts:SourceIdentity. Pertama-tama, gunakan peran dan kebijakan uji untuk verifikasi lengkap. Setelah konfigurasi dipastikan benar, Anda dapat menerapkan kebijakan tersebut secara bertahap ke lingkungan produksi.

  • Komunikasikan terlebih dahulu: Sebelum mengaktifkan kebijakan wajib, beri tahu pengguna terkait tentang cara menggunakan SourceIdentity dan nilai apa saja yang diizinkan. Hal ini membantu mencegah gangguan pada operasi bisnis normal.

Contoh rantai peran

Deskripsi skenario

Alat otomatisasi Continuous Integration/Continuous Deployment (CI/CD), seperti Jenkins, dijalankan menggunakan peran RAM automation-role. Peran ini dapat diasumsikan oleh developer, seperti Alice dan Bob.

Seorang developer, seperti Alice, menggunakan alat tersebut untuk menerapkan aplikasi ke bucket OSS di lingkungan produksi. Operasi penerapan memerlukan asumsi peran berhak istimewa lebih tinggi, deploy-role, yang memiliki izin tulis pada bucket OSS.

Alice, Bob, dan automation-role berada di Akun Alibaba Cloud A. deploy-role berada di Akun Alibaba Cloud B.

Persyaratan bisnis dan alur kerja

automation-role hanya dapat berhasil mengasumsikan deploy-role jika pemanggil awal adalah Alice. Permintaan panggilan dari pengguna lain, seperti Bob, harus ditolak.

Alur kerjanya adalah sebagai berikut:

  1. Alice memanggil operasi AssumeRole untuk mengasumsikan automation-role dan menetapkan SourceIdentity ke alice dalam permintaan.

  2. Setelah automation-role mendapatkan token STS, peran tersebut memanggil operasi AssumeRole lagi untuk mengasumsikan deploy-role. Nilai SourceIdentity diteruskan secara otomatis.

  3. Kebijakan kepercayaan deploy-role memeriksa apakah SourceIdentity masuk bernilai alice. Jika verifikasi berhasil, asumsi peran diizinkan.

Langkah-langkah konfigurasi kebijakan

Langkah 1: Ubah kebijakan kepercayaan deploy-role

Kebijakan ini hanya mempercayai permintaan asumsi peran dari peran automation-role di akun A dan mewajibkan nilai SourceIdentity harus berupa alice.

{
  "Statement": [
    {
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringEquals": {
          "acs:SourceIdentity": [
            "alice"
          ]
        }
      },
      "Effect": "Allow",
      "Principal": {
        "RAM": [
          "acs:ram::ACCOUNT_A_ID:role/automation-role"
        ]
      }
    }
  ],
  "Version": "1"
}
Catatan

Dalam kebijakan kepercayaan peran di atas, kunci kondisi acs:SourceIdentity digunakan, bukan sts:SourceIdentity. Hal ini memastikan peran deploy-role hanya menerima permintaan akses dari peran automation-role dan hanya jika SourceIdentity dalam sesi peran diatur menjadi alice.

Langkah 2: Modifikasi kebijakan akses dan kebijakan kepercayaan automation-role

  • Kebijakan akses: Mengizinkan peran automation-role untuk mengasumsikan peran deploy-role di akun B.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_B_ID:role/deploy-role"
        }
      ]
    }
  • Kebijakan kepercayaan: Mengizinkan Alice dan Bob untuk mengasumsikan automation-role.

    {
      "Statement": [
        {
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::ACCOUNT_A_ID:user/alice",
              "acs:ram::ACCOUNT_A_ID:user/bob"
            ]
          }
        }
      ],
      "Version": "1"
    }

Langkah 3: Modifikasi kebijakan akses berbasis identitas untuk Alice dan Bob

Izinkan mereka mengasumsikan peran automation-role dan mewajibkan mereka menetapkan nilai SourceIdentity yang persis sesuai dengan username masing-masing.

  • Kebijakan akses berbasis identitas Alice

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_A_ID:role/automation-role",
          "Condition": {
            "StringEquals": {
              "sts:SourceIdentity": [
                "alice"
              ]
            }
          }
        }
      ]
    }
  • Kebijakan akses berbasis identitas Bob

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole",
            "sts:SetSourceIdentity"
          ],
          "Resource": "acs:ram::ACCOUNT_A_ID:role/automation-role",
          "Condition": {
            "StringEquals": {
              "sts:SourceIdentity": [
                "bob"
              ]
            }
          }
        }
      ]
    }

Lihat SourceIdentity di ActionTrail

Anda dapat menemukan bidang SourceIdentity dalam log audit ActionTrail untuk pelacakan identitas.

  • Dalam log event AssumeRole*: SourceIdentity muncul dalam bidang responseElements dan requestParameters.

    {
      "eventId": "9BCD28D0-7FDB-5BF2-9302-CDA6CCC5****",
      "eventVersion": 1,
      "responseElements": {
        "SourceIdentity": "alice",
        "RequestId": "9BCD28D0-7FDB-5BF2-9302-CDA6CCC5****",
        ...
      },
      ...
      "requestParameters": {
        "SourceIdentity": "alice",
        "X-Acs-Request-Id": "9BCD28D0-7FDB-5BF2-9302-CDA6CCC5****",
        ...
      },
      "serviceName": "Sts",
      "eventName": "AssumeRole",
      ...
    }
    
  • Dalam log event untuk mengakses sumber daya cloud: SourceIdentity muncul dalam bidang userIdentity.sessionContext.

    {
      "eventId": "46B5B0A1-19F7-5A56-BE2C-0BCFE5F8****",
      "userIdentity": {
        "sessionContext": {
          "sourceIdentity": "alice",
          ...
        },
        "type": "assumed-role",
        ...
      },
      "serviceName": "Ecs",
      "eventName": "DescribeInstances",
      ...
    }

Troubleshooting umum

Masalah paling umum saat mengonfigurasi SourceIdentity adalah izin tidak mencukupi. Bagian berikut menjelaskan dua skenario kesalahan khas beserta metode troubleshooting-nya.

Skenario 1: Masalah yang disebabkan oleh kebijakan akses berbasis identitas

Pesan error:

{
  "RequestId": "AC9DDEC1-3E1F-50B8-A2D1-BAA155FD****",
  "Code": "NoPermission",
  "Message": "You are not authorized to do this action. You should be authorized by RAM.",
  "AccessDeniedDetail": {
    "PolicyType": "AccountLevelIdentityBasedPolicy",
    "AuthAction": "sts:SetSourceIdentity",
    ...
  }
}

Analisis penyebab:

  • "PolicyType": "AccountLevelIdentityBasedPolicy" menunjukkan bahwa error disebabkan oleh kebijakan akses berbasis identitas pemanggil.

  • "AuthAction": "sts:SetSourceIdentity" menunjukkan bahwa izin untuk operasi sts:SetSourceIdentity tidak tersedia.

Solusi: Hubungi administrator untuk memeriksa kebijakan akses berbasis identitas pemanggil dan pastikan hal-hal berikut:

  1. Kebijakan mencakup "Action": "sts:SetSourceIdentity".

  2. Cakupan Resource kebijakan mencakup peran target yang ingin diasumsikan.

  3. Jika kebijakan berisi blok Condition, pastikan nilai SourceIdentity dalam permintaan memenuhi kondisi tersebut.

Skenario 2: Masalah yang disebabkan oleh kebijakan kepercayaan peran

Pesan error:

{
  "RequestId": "ECC91EE1-0EB0-5E79-B3F5-E54FD8B9****",
  "Code": "NoPermission",
  "Message": "You are not authorized to do this action. You should be authorized by RAM.",
  "AccessDeniedDetail": {
    "PolicyType": "AssumeRolePolicy",
    "AuthAction": "sts:SetSourceIdentity",
    ...
  }
}

Analisis penyebab:

  • "PolicyType": "AssumeRolePolicy" menunjukkan bahwa error disebabkan oleh kebijakan kepercayaan peran peran target.

  • "AuthAction": "sts:SetSourceIdentity" menunjukkan bahwa peran target tidak mempercayai operasi sts:SetSourceIdentity.

Solusi: Hubungi administrator untuk memeriksa kebijakan kepercayaan peran target dan pastikan hal-hal berikut:

  1. Kebijakan mencakup "Action": "sts:SetSourceIdentity".

  2. Jika kebijakan berisi blok Condition, pastikan nilai SourceIdentity dalam permintaan memenuhi kondisi tersebut.

Rekomendasi troubleshooting umum

  1. Persempit cakupan: Jika Anda mengalami masalah izin saat menetapkan SourceIdentity, pertama-tama coba hapus parameter SourceIdentity dan asumsikan peran lagi. Jika operasi berhasil, masalah kemungkinan besar terkait konfigurasi izin untuk SourceIdentity.

  2. Analisis error: Baca dengan cermat bagian AccessDeniedDetail dalam pesan error, terutama bidang PolicyType. Hal ini membantu Anda dengan cepat menentukan apakah masalah disebabkan oleh kebijakan akses berbasis identitas atau kebijakan kepercayaan peran.

  3. Gunakan alat diagnostik: Jika Anda hanya memiliki RequestId, gunakan alat OpenAPI Troubleshoot. Masukkan RequestId, dan sistem akan mengembalikan informasi diagnostik terperinci untuk membantu Anda menemukan masalah izin. Contohnya:

    image

  4. Bandingkan kebijakan dan permintaan: Setelah menemukan kebijakan spesifik, periksa dengan cermat pengaturan Resource dan Condition. Pastikan pengaturan tersebut sesuai dengan parameter dalam permintaan API, seperti ARN peran target dan nilai SourceIdentity.

Untuk informasi lebih lanjut tentang cara melakukan troubleshooting masalah izin, lihat Cara melakukan troubleshooting error akses akibat izin tidak mencukupi.