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 IAM peran.
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 AmazonEC2, Amazon, Amazon ECSEKS, dan Lambda memberikan kredensi sementara dan secara otomatis memperbarui kredensi 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, lihatMemperbarui kebijakan kepercayaan peran .
-
Ketika Anda mengambil peran menggunakan AWS Management Console, pastikan untuk menggunakan nama yang tepat dari peran Anda. Nama peran peka huruf besar/kecil.
-
Ketika Anda mengambil peran menggunakan AWS STS API atau AWS CLI, pastikan untuk menggunakan nama yang tepat dari peran Anda diARN. Nama peran peka huruf besar/kecil.
-
Ketika Anda mengambil peran menggunakan penyedia identitas federasi SAML berbasis dan SAML enkripsi diaktifkan, pastikan Anda telah mengunggah kunci dekripsi pribadi yang valid untuk penyedia identitas. SAML Untuk informasi selengkapnya, lihat Kelola kunci enkripsi SAMP.
-
Verifikasi bahwa IAM kebijakan Anda memberi Anda izin
sts:AssumeRole
untuk memanggil peran yang ingin Anda ambil.Action
Elemen IAM kebijakan Anda harus memungkinkan Anda untuk memanggilAssumeRole
tindakan. Selain itu,Resource
elemen IAM kebijakan Anda harus menentukan peran yang ingin Anda ambil. Misalnya,Resource
elemen dapat menentukan peran berdasarkan Amazon Resource Name (ARN) atau dengan 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
" -
Verifikasi bahwa IAM identitas Anda ditandai dengan tag apa pun yang diperlukan oleh IAM kebijakan tersebut. Misalnya, dalam izin kebijakan berikut, elemen
Condition
mewajibkan Anda, sebagai prinsipal yang meminta untuk mengasumsikan peran tersebut, memiliki tanda khusus. Anda harus ditandai dengandepartment = HR
ataudepartment = CS
. Jika tidak, Anda tidak dapat mengambil peran tersebut. Untuk mempelajari tentang menandai IAM pengguna dan peran, lihatTag 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.
Condition
dapat 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
AssumeRole
adalah entitas tepercaya untuk peran yang Anda asumsikan. Entitas tepercaya didefinisikan sebagaiPrincipal
di kebijakan kepercayaan peran. Contoh berikut adalah kebijakan kepercayaan yang terlampir pada peran yang ingin Anda asumsikan. Dalam contoh ini, ID akun dengan IAM pengguna yang Anda masuki harus 123456789012. Jika nomor akun Anda tidak tercantum di elemenPrincipal
kebijakan kepercayaan peran, maka Anda tidak dapat mengasumsikan peran tersebut. Izin apa pun yang diberikan kepada Anda dalam kebijakan akses tidak akan berpengaruh. Perhatikan bahwa kebijakan contoh membatasi izin untuk tindakan yang terjadi antara 1 Juli 2017 dan 31 Desember 2017 (UTC), inklusif. 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 akun AWS 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 ditautkan layanan di akun Anda dengan membuka halaman IAM Peran 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 terkait 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 IAM konsol AWS CLI,, atau API hanya mengedit deskripsi peran terkait layanan. Anda dapat melihat peran terkait layanan di akun Anda dengan membuka halaman IAM Peran di konsol. Peran yang terkait dengan layanan muncul dengan (Peran yang terkait dengan layanan) di kolom Entitas tepercaya 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 peran AWSServiceRoleForAutoScaling
terkait layanan untuk Anda saat pertama kali membuat grup 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 assume-role*
CLI operasi AWS STS AssumeRole*
API atau untuk mengambil peran, Anda dapat menentukan nilai untuk DurationSeconds
parameter tersebut. 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 ketika saya mencoba beralih peran di IAM konsol
Informasi yang Anda masukkan di halaman 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 IAM pengguna 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. Bila Anda meminta kredenial keamanan sementara secara terprogram menggunakan AWS STS, Anda dapat secara opsional meneruskan kebijakan sesi inline atau terkelola. Kebijakan sesi adalah kebijakan lanjutan yang Anda sampaikan sebagai parameter saat Anda secara terprogram membuat sesi kredensial sementara untuk peran. Anda dapat meneruskan satu dokumen kebijakan sesi JSON inline menggunakan Policy
parameter. 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 menciptakan peran layanan dan kebijakannya IAM untuk Anda. Meskipun Anda dapat memodifikasi atau menghapus peran layanan dan kebijakannya dari dalamIAM, 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 IAM sebelum Anda dapat melanjutkan 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 Kebijakan IAM versioning.
Untuk menghapus peran layanan dan kebijakannya
Masuk ke AWS Management Console dan buka IAM konsol 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 IAM pengguna, grup, atau peran 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 sesudah tindakan Anda, salin dokumen JSON kebijakan dari kebijakan yang ada. Kemudian buat kebijakan terkelola baru dan tempel JSON dokumen seperti yang dijelaskan dalam Membuat Kebijakan menggunakan JSON editor.
-
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 IAM konsol, 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 membuat peran layanan secara manual menggunakan AWS CLI perintah atau AWS APIoperasi. Untuk membuat peran layanan secara manual menggunakan IAM konsol, selesaikan tugas-tugas berikut:
-
Buat IAM peran menggunakan ID akun Anda. Jangan lampirkan kebijakan atau beri izin apa pun. Untuk detailnya, lihat 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
Principal
berikut:"Principal": { "AWS": "arn:aws:iam::
123456789012
:root" }Ubah prinsipal menjadi nilai untuk layanan Anda, sepertiIAM.
"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.