Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah peran IAM
Gunakan informasi di sini untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan peran IAM.
Topik
Saya tidak dapat mengsumsikan peran
Periksa hal berikut:
-
Untuk memungkinkan pengguna untuk mengambil peran saat ini lagi dalam sesi peran, tentukan peran ARN atau Akun AWS ARN sebagai prinsipal dalam kebijakan kepercayaan peran. Layanan AWS yang menyediakan sumber daya komputasi seperti Amazon EC2, Amazon ECS, Amazon EKS, dan Lambda memberikan kredensil sementara dan secara otomatis memperbarui kredensil ini. Ini memastikan bahwa Anda selalu memiliki seperangkat kredensional yang valid. Untuk layanan ini, tidak perlu mengambil peran saat ini lagi untuk mendapatkan kredensi sementara. Namun, jika Anda berniat untuk meneruskan tag sesi atau kebijakan sesi, Anda perlu mengambil peran saat ini lagi. Untuk mempelajari cara memodifikasi kebijakan kepercayaan peran untuk menambahkan peran utama ARN atau Akun AWS ARN, lihat. Memperbarui kebijakan kepercayaan peran
-
Ketika Anda mengambil peran menggunakan Konsol Manajemen AWS, pastikan untuk menggunakan nama persis peran Anda. Nama peran peka huruf besar/kecil.
-
Saat Anda mengambil peran menggunakan AWS STS API atau AWS CLI, pastikan untuk menggunakan nama persis peran Anda di ARN. Nama peran peka huruf besar/kecil.
-
Saat Anda mengambil peran menggunakan penyedia identitas federasi berbasis SAFL dan enkripsi SAFL diaktifkan, pastikan Anda telah mengunggah kunci dekripsi pribadi yang valid untuk penyedia identitas SALL. Untuk informasi selengkapnya, lihat Kelola kunci enkripsi SAMP.
-
Verifikasi bahwa kebijakan IAM Anda mengizinkan memanggil
sts:AssumeRoleuntuk peran yang ingin Anda asumsikan. ElemenActionkebijakan IAM Anda harus mengizinkan Anda memanggil tindakanAssumeRole. Selain itu, elemenResourcekebijakan IAM Anda harus menentukan peran yang ingin Anda asumsikan. Misalnya, elemenResourcedapat menentukan peran berdasarkan Amazon Resource Name (ARN) atau berdasarkan wildcard (*). Misalnya, setidaknya satu kebijakan yang berlaku bagi Anda harus memberikan izin yang serupa dengan yang berikut ini:"Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume" -
Verifikasikan bahwa identitas IAM Anda ditandai dengan tag apa pun yang diwajibkan oleh kebijakan IAM. Misalnya, dalam izin kebijakan berikut, elemen
Conditionmewajibkan Anda, sebagai prinsipal yang meminta untuk mengasumsikan peran tersebut, memiliki tanda khusus. Anda harus ditandai dengandepartment = HRataudepartment = CS. Jika tidak, Anda tidak dapat mengambil peran tersebut. Untuk mempelajari tentang menandai pengguna dan peran IAM, lihat Tag untuk AWS Identity and Access Management sumber daya."Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*", "Condition": {"StringEquals": {"aws:PrincipalTag/department": [ "HR", "CS" ]}} -
Verifikasi bahwa Anda memenuhi semua kondisi yang ditentukan di kebijakan kepercayaan peran tersebut.
Conditiondapat menentukan tanggal kedaluwarsa, ID eksternal, atau bahwa permintaan harus berasal hanya dari alamat IP tertentu. Pertimbangkan contoh berikut: Jika tanggal saat ini adalah kapan saja setelah tanggal yang ditentukan, kebijakan tidak pernah cocok dan tidak dapat memberi Anda izin untuk mengambil peran tersebut."Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume" "Condition": { "DateLessThan" : { "aws:CurrentTime" : "2016-05-01T12:00:00Z" } } -
Verifikasi bahwa Akun AWS dari mana Anda menelepon
AssumeRoleadalah entitas tepercaya untuk peran yang Anda asumsikan. Entitas tepercaya didefinisikan sebagaiPrincipaldi kebijakan kepercayaan peran. Contoh berikut adalah kebijakan kepercayaan yang terlampir pada peran yang ingin Anda asumsikan. Dalam contoh ini, ID akun dengan pengguna IAM yang Anda gunakan untuk masuk harus 123456789012. Jika nomor akun Anda tidak tercantum di elemenPrincipalkebijakan kepercayaan peran, maka Anda tidak dapat mengasumsikan peran tersebut. Izin apa pun yang diberikan kepada Anda dalam kebijakan akses tidak akan berpengaruh. Perlu diketahui bahwa contoh kebijakan membatasi izin terhadap tindakan yang inklusif terjadi antara 1 Juli 2017 dan 31 Desember 2017 (UTC). Jika Anda masuk sebelum atau sesudah tanggal-tanggal tersebut, maka kebijakan tidak cocok, dan Anda tidak dapat mengasumsikan peran tersebut."Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"}, "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"} } -
Identitas Sumber - Administrator dapat mengonfigurasi peran untuk meminta identitas meneruskan string kustom yang mengidentifikasi orang atau aplikasi yang melakukan tindakan AWS, yang disebut identitas sumber. Verifikasi apakah peran yang diambil mengharuskan identitas sumber ditetapkan. Untuk informasi selengkapnya tentang identitas sumber, lihat Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan.
Peran baru muncul di AWS akun saya
Beberapa AWS layanan mengharuskan Anda menggunakan jenis peran layanan unik yang ditautkan langsung ke layanan. Peran yang berkaitan dengan layanan ini telah ditetapkan sebelumnya oleh layanan dan mencakup semua izin yang diperlukan layanan. Hal ini memudahkan pengaturan layanan karena Anda tidak perlu menambahkan izin yang diperlukan secara manual. Untuk informasi umum tentang peran terkait layanan, lihat Buat peran tertaut layanan.
Anda mungkin sudah menggunakan layanan ketika layanan mulai mendukung peran yang terkait dengan layanan. Jika demikian, Anda mungkin menerima surel tentang peran baru di akun Anda. Peran ini mencakup semua izin yang diperlukan layanan untuk melakukan tindakan atas nama Anda. Anda tidak perlu mengambil tindakan apa pun untuk mendukung peran ini. Namun, Anda tidak boleh menghapus peran tersebut dari akun Anda. Melakukan hal tersebut dapat menghapus izin yang diperlukan layanan untuk mengakses sumber daya AWS . Anda dapat melihat peran yang terkait dengan layanan di akun Anda dengan mengunjungi laman Peran IAM di konsol IAM. Peran yang terkait dengan layanan muncul dengan (Peran yang terkait dengan layanan) di kolom Entitas tepercaya di tabel.
Untuk informasi tentang layanan mana yang mendukung peran terkait layanan, lihat AWS layanan yang bekerja dengan IAM dan cari layanan yang memiliki Ya di kolom Peran yang Terkait dengan Layanan. Untuk informasi tentang menggunakan peran yang terkait dengan layanan, pilih tautan Ya.
Saya tidak dapat mengedit atau menghapus peran di Akun AWS
Anda tidak dapat menghapus atau mengedit izin untuk peran yang terkait dengan layanan di IAM. Peran ini mencakup kepercayaan dan izin yang ditetapkan sebelumnya yang diperlukan oleh layanan untuk melakukan tindakan atas nama Anda. Anda dapat menggunakan konsol IAM, AWS CLI, atau API untuk mengedit hanya deskripsi peran terkait layanan. Anda dapat melihat peran yang terkait dengan layanan di akun Anda dengan masuk ke Peran IAM di konsol. Peran yang terkait dengan layanan muncul dengan (Peran yang terkait dengan layanan) dalam kolom Entitas terpercaya di tabel. Banner pada halaman Ringkasan peran juga menunjukkan bahwa peran tersebut adalah peran yang terkait dengan layanan. Anda dapat mengelola dan menghapus peran ini hanya melalui layanan yang terhubung, jika layanan tersebut mendukung tindakan. Berhati-hatilah saat memodifikasi atau menghapus peran terkait layanan karena melakukan hal ini dapat menghapus izin yang diperlukan layanan untuk mengakses sumber daya AWS .
Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat AWS layanan yang bekerja dengan IAM dan cari layanan yang memiliki Ya di kolom Peran yang Terkait dengan Layanan.
Saya tidak berwenang untuk melakukan: iam: PassRole
Saat Anda membuat peran yang terkait dengan layanan, Anda harus memiliki izin untuk meneruskan peran tersebut ke layanan. Beberapa layanan secara otomatis membuat peran yang terkait dengan layanan di akun Anda ketika Anda melakukan tindakan di layanan tersebut. Misalnya, Amazon EC2 Auto Scaling membuat AWSServiceRoleForAutoScaling peran yang terkait dengan layanan untuk Anda pertama kali saat Anda membuat kelompok Auto Scaling. Jika Anda mencoba membuat grup Auto Scaling tanpa izin PassRole, Anda menerima kesalahan berikut ini:
ClientError: An error occurred (AccessDenied) when calling the PutLifecycleHook
operation: User: arn:aws:sts::111122223333:assumed-role/Testrole/Diego is not authorized
to perform: iam:PassRole on resource:
arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling
Untuk memperbaiki kesalahan ini, minta administrator Anda untuk menambahkan izin iam:PassRole untuk Anda.
Untuk mempelajari layanan mana yang mendukung peran yang terkait dengan layanan, lihat AWS layanan yang bekerja dengan IAM. Untuk mempelajari apakah layanan secara otomatis membuat peran yang terkait dengan layanan untuk Anda, pilih tautan Ya untuk melihat dokumentasi peran layanan yang terkait dengan layanan.
Mengapa saya tidak dapat mengasumsikan peran dengan sesi 12 jam? (AWS CLI, AWS API)
Saat Anda menggunakan operasi AWS STS AssumeRole* API atau assume-role* CLI untuk mengambil peran, Anda dapat menentukan nilai untuk parameter tersebutDurationSeconds. Anda dapat menentukan nilai dari 900 detik (15 menit) hingga pengaturan Durasi sesi maksimum untuk peran tersebut. Jika Anda menentukan nilai yang lebih tinggi dari pengaturan ini, operasi akan gagal. Pengaturan ini dapat memiliki nilai maksimum 12 jam. Misalnya, jika Anda menentukan durasi sesi 12 jam, tetapi administrator Anda mengatur durasi sesi maksimum menjadi 6 jam, operasi Anda gagal. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat Memperbarui durasi sesi maksimum untuk peran.
Jika Anda menggunakan rantai peran (menggunakan peran untuk mengsumsikan peran kedua), sesi Anda dibatasi hingga maksimum satu jam. Jika Anda kemudian menggunakan parameter DurationSeconds untuk memberikan nilai lebih dari satu jam, operasi akan gagal.
Saya menerima kesalahan saat mencoba beralih peran di konsol IAM
Informasi yang Anda masukkan di laman Beralih Peran harus sesuai dengan informasi untuk peran. Jika tidak, operasi akan gagal dan Anda menerima kesalahan berikut:
Invalid information in one or more fields. Check your information or contact your
administrator.
Jika Anda menerima pesan kesalahan ini, pastikan bahwa informasi berikut benar:
-
ID Akun atau alias — Akun AWS ID adalah nomor 12 digit. Akun Anda mungkin memiliki alias, yang merupakan pengenal ramah seperti nama perusahaan Anda yang dapat digunakan sebagai pengganti ID Anda Akun AWS . Anda dapat menggunakan ID akun atau alias di bidang ini.
-
Nama peran – Nama peran bersifat peka terhadap kapitalisasi huruf. ID akun dan nama peran harus sesuai dengan apa yang dikonfigurasi untuk peran tersebut.
Jika Anda terus menerima pesan kesalahan, hubungi administrator Anda untuk memverifikasi informasi sebelumnya. Kebijakan kepercayaan peran atau kebijakan pengguna IAM mungkin membatasi akses Anda. Administrator Anda dapat memverifikasi izin untuk kebijakan ini.
Peran saya memiliki kebijakan yang memungkinkan saya melakukan tindakan, tetapi saya mendapatkan “akses ditolak”
Sesi peran Anda mungkin dibatasi oleh kebijakan sesi. Jika Anda meminta kredensil keamanan sementara secara terprogram AWS STS, Anda dapat meneruskan kebijakan sesi inline atau terkelola secara opsional. Kebijakan sesi adalah kebijakan lanjutan yang Anda sampaikan sebagai parameter saat Anda secara terprogram membuat sesi kredensial sementara untuk peran. Anda dapat menyampaikan satu dokumen kebijakan sesi inline JSON menggunakan parameter Policy. Anda dapat menggunakan parameter PolicyArns untuk menentukan hingga 10 kebijakan sesi terkelola. Izin sesi yang dihasilkan adalah persimpangan kebijakan berbasis identitas dan kebijakan sesi peran. Selain itu, jika administrator Anda atau program khusus memberi Anda kredensial sementara, mereka mungkin telah menyertakan kebijakan sesi untuk membatasi akses Anda.
Layanan tidak membuat versi kebijakan default peran tersebut
Peran layanan adalah peran yang diasumsikan oleh layanan untuk melakukan tindakan di akun Anda atas nama Anda. Ketika Anda mengatur beberapa lingkungan AWS layanan, Anda harus menentukan peran untuk layanan untuk mengambil alih. Dalam beberapa kasus, layanan tersebut menciptakan peran layanan dan kebijakannya di IAM untuk Anda. Meskipun Anda dapat memodifikasi atau menghapus peran layanan dan kebijakannya dari dalam IAM, AWS tidak merekomendasikan hal ini. Peran dan kebijakan ditujukan hanya untuk digunakan oleh layanan tersebut. Jika Anda mengedit kebijakan dan menyiapkan lingkungan lain, ketika layanan mencoba menggunakan peran dan kebijakan yang sama, operasi dapat gagal.
Misalnya, saat Anda menggunakan AWS CodeBuild untuk pertama kalinya, layanan akan membuat peran bernamacodebuild-RWBCore-service-role. Peran layanan tersebut menggunakan kebijakan bernama codebuild-RWBCore-managed-policy. Jika Anda mengedit kebijakan, ini akan membuat versi baru dan menyimpan versi tersebut sebagai versi default. Jika Anda melakukan operasi berikutnya di AWS CodeBuild, layanan mungkin mencoba memperbarui kebijakan. Jika iya, Anda akan menerima kesalahan berikut:
codebuild.amazon.com did not create the default version (V2) of the
codebuild-RWBCore-managed-policy policy that is attached to the
codebuild-RWBCore-service-role role. To continue, detach the policy from any other
identities and then delete the policy and the role.
Jika Anda menerima kesalahan ini, Anda harus membuat perubahan di IAM sebelum Anda dapat melanjutkan dengan operasi layanan Anda. Pertama, atur versi kebijakan default ke V1 dan coba kembali operasi tersebut. Jika V1 sebelumnya dihapus, atau jika memilih V1 tidak berfungsi, maka bersihkan dan hapus kebijakan dan peran yang ada.
Untuk informasi selengkapnya tentang mengedit kebijakan terkelola, lihat Menyunting kebijakan terkelola pelanggan (konsol). Untuk informasi selengkapnya tentang versi kebijakan, lihat Peningkatan versi IAM.
Untuk menghapus peran layanan dan kebijakannya
Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, pilih Kebijakan.
-
Dalam daftar kebijakan, pilih nama kebijakan yang ingin Anda hapus.
-
Pilih tab Entitas yang dilampirkan untuk melihat pengguna, grup, atau peran IAM mana yang menggunakan kebijakan ini. Jika salah satu dari identitas ini menggunakan kebijakan, selesaikan tugas berikut:
-
Buat kebijakan terkelola baru dengan izin yang diperlukan. Untuk memastikan bahwa identitas memiliki izin yang sama sebelum dan setelah tindakan Anda, salin dokumen kebijakan JSON dari kebijakan yang ada. Kemudian buat kebijakan terkelola baru dan tempel dokumen JSON seperti yang dijelaskan dalam Membuat Kebijakan menggunakan editor JSON.
-
Untuk setiap identitas yang terpengaruh, lampirkan kebijakan baru dan lepaskan kebijakan lama. Untuk informasi selengkapnya, lihat Menambahkan dan menghapus izin identitas IAM.
-
-
Di panel navigasi, pilih Peran.
-
Dalam daftar peran, pilih nama peran yang ingin Anda hapus.
-
Pilih tab Hubungan kepercayaan untuk melihat entitas mana yang dapat mengasumsikan peran tersebut. Jika entitas selain layanan dicantumkan, selesaikan tugas berikut:
-
Buat peran baru yang memercayai entitas tersebut.
-
Kebijakan yang Anda buat pada langkah sebelumnya. Jika Anda melewatkan langkah tersebut, buat kebijakan terkelola baru sekarang.
-
Beri tahu siapa pun yang mengasumsikan peran tersebut bahwa mereka tidak dapat lagi melakukannya. Berikan informasi kepada mereka tentang cara mengasumsikan peran baru dan memiliki izin yang sama.
-
Tidak ada kasus penggunaan untuk peran layanan di konsol
Beberapa layanan mengharuskan Anda membuat peran layanan secara manual untuk memberi layanan izin untuk melakukan tindakan atas nama Anda. Jika layanan tidak terdaftar di konsol IAM, Anda harus mencantumkan layanan secara manual sebagai prinsipal tepercaya. Jika dokumentasi untuk layanan atau fitur yang Anda gunakan tidak menyertakan petunjuk untuk mencantumkan layanan sebagai prinsipal tepercaya, berikan umpan balik untuk halaman.
Untuk membuat peran layanan secara manual, Anda harus mengetahui prinsipal layanan untuk layanan yang akan mengambil peran. Sebuah prinsipal layanan adalah pengidentifikasi yang digunakan untuk memberikan izin layanan. Prinsipal layanan ditentukan oleh layanan tersebut.
Anda dapat menemukan prinsipal layanan untuk beberapa layanan dengan memeriksa hal berikut:
-
Periksa apakah layanan memiliki Yes (Ya) di kolom Service-linked roles (Peran terkait layanan).
-
Pilih tautan Ya untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.
-
Temukan bagian Izin peran terkait layanan untuk layanan tersebut untuk melihat prinsipal layanan.
Anda dapat secara manual membuat peran layanan menggunakan perintah AWS CLI atau operasi API AWS. Untuk membuat peran layanan secara manual menggunakan konsol IAM, selesaikan tugas-tugas berikut:
-
Buat peran IAM menggunakan ID akun Anda. Jangan lampirkan kebijakan atau beri izin apa pun. Lihat perinciannya di Buat peran untuk memberikan izin kepada pengguna IAM.
-
Buka peran dan edit hubungan kepercayaan. Alih-alih memercayai akun, peran harus memercayai layanan. Misalnya, perbarui yang elemen
Principalberikut:"Principal": { "AWS": "arn:aws:iam::123456789012:root" }Ubah prinsipal ke nilai layanan Anda, seperti IAM.
"Principal": { "Service": "iam.amazonaws.com" } -
Tambahkan izin yang diperlukan layanan dengan melampirkan kebijakan izin untuk peran.
-
Kembali ke layanan yang memerlukan izin dan gunakan metode yang didokumentasikan untuk memberi tahu layanan tentang peran layanan baru.