Memecahkan masalah akses ditolak pesan kesalahan - AWS Identity and Access Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah akses ditolak pesan kesalahan

Informasi berikut dapat membantu Anda mengidentifikasi, mendiagnosis, dan menyelesaikan kesalahan akses yang ditolak AWS Identity and Access Management. Kesalahan akses ditolak muncul ketika AWS secara eksplisit atau implisit menolak permintaan otorisasi.

  • Penolakan eksplisit terjadi ketika kebijakan berisi Deny pernyataan untuk tindakan tertentu AWS .

  • Penolakan implisit terjadi ketika tidak ada pernyataan yang berlaku dan juga tidak ada Deny pernyataan yang berlakuAllow. Karena IAM kebijakan menolak IAM prinsipal secara default, kebijakan harus secara eksplisit mengizinkan prinsipal untuk melakukan suatu tindakan. Jika tidak, kebijakan tersebut secara implisit menolak akses. Untuk informasi selengkapnya, lihat Perbedaan antara penolakan tegas dan implisit..

Saat Anda mengajukan permintaan ke layanan atau sumber daya, beberapa kebijakan mungkin berlaku untuk permintaan tersebut. Tinjau semua kebijakan yang berlaku selain kebijakan yang ditentukan dalam pesan kesalahan.

  • Jika beberapa kebijakan dari jenis kebijakan yang sama menolak permintaan, pesan kesalahan akses ditolak tidak menentukan jumlah kebijakan yang dievaluasi.

  • Jika beberapa jenis kebijakan menolak permintaan otorisasi, hanya AWS menyertakan salah satu jenis kebijakan tersebut dalam pesan kesalahan.

penting

Mengalami masalah saat masuk AWS? Pastikan Anda berada di halaman masuk AWS yang benar untuk jenis pengguna Anda. Jika Anda adalah Pengguna root akun AWS (pemilik akun), Anda dapat masuk AWS menggunakan kredenal yang Anda atur saat membuat. Akun AWS Jika Anda adalah IAM pengguna, administrator akun Anda dapat memberi Anda kredensi AWS masuk. Jika Anda perlu meminta dukungan, jangan gunakan tautan umpan balik di halaman ini. Formulir diterima oleh tim AWS Dokumentasi, bukan AWS Support. Sebagai gantinya, pada halaman Hubungi Kami pilih Masih tidak dapat masuk ke AWS akun Anda dan kemudian pilih salah satu opsi dukungan yang tersedia.

Saya mendapatkan “akses ditolak” ketika saya mengajukan permintaan ke AWS layanan

  • Periksa apakah pesan kesalahan menyertakan jenis kebijakan yang bertanggung jawab untuk menolak akses. Misalnya, jika kesalahan menyebutkan bahwa akses ditolak karena Kebijakan Kontrol Layanan (SCP), maka Anda dapat fokus pada pemecahan masalahSCP. Setelah mengidentifikasi jenis kebijakan, Anda dapat memeriksa pernyataan penolakan atau tindakan izinkan yang hilang dalam jenis kebijakan tersebut. Jika pesan kesalahan tidak menyebutkan jenis kebijakan yang bertanggung jawab untuk menolak akses, gunakan pedoman lainnya di bagian ini untuk memecahkan masalah lebih lanjut.

  • Pastikan bahwa Anda memiliki izin kebijakan berbasis identitas untuk memanggil tindakan dan sumber daya yang Anda minta. Jika ada kondisi yang ditetapkan, Anda juga harus memenuhi kondisi tersebut saat mengirimkan permintaan. Untuk informasi tentang melihat atau memodifikasi kebijakan untuk IAM pengguna, grup, atau peran, lihatMengelola IAM kebijakan.

  • Jika AWS Management Console mengembalikan pesan yang menyatakan bahwa Anda tidak berwenang untuk melakukan tindakan, maka Anda harus menghubungi administrator Anda untuk bantuan. Administrator memberi Anda kredensial masuk atau tautan masuk.

    Contoh kesalahan berikut terjadi ketika mateojackson IAM pengguna mencoba menggunakan konsol untuk melihat detail tentang my-example-widget sumber daya fiksi tetapi tidak memiliki izin widgets:GetWidget fiksi.

    User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:GetWidget on resource: my-example-widget

    Dalam hal ini, Mateo harus meminta administratornya untuk memperbarui kebijakannya untuk mengizinkan mengakses ke sumber daya my-example-widget menggunakan tindakan widgets:GetWidget.

  • Apakah Anda mencoba mengakses layanan yang mendukung kebijakan berbasis sumber daya, seperti Amazon S3, Amazon, atau Amazon? SNS SQS Jika ya, verifikasikan bahwa kebijakan tersebut menetapkan Anda sebagai penanggung jawab dan memberi Anda akses. Jika Anda mengajukan permintaan ke layanan di dalam akun Anda, kebijakan berbasis identitas atau kebijakan berbasis sumber daya dapat memberikan izin kepada Anda. Jika Anda membuat permintaan layanan di akun yang berbeda, maka kebijakan berbasis identitas dan kebijakan berbasis sumber daya Anda harus memberi Anda izin. Untuk melihat layanan yang mendukung kebijakan berbasis sumber daya, lihat AWS layanan yang bekerja dengan IAM.

  • Jika kebijakan Anda menyertakan kondisi dengan pasangan nilai kunci, tinjau dengan cermat. Contohnya termasuk kunci kondisi aws:RequestTag/tag-key global, kunci kondisi AWS KMS kms:EncryptionContext:encryption_context_key, dan kunci ResourceTag/tag-key kondisi yang didukung oleh beberapa layanan. Pastikan bahwa nama kunci tidak cocok dengan beberapa hasil. Karena nama kunci kondisi tidak peka huruf besar/kecil, kondisi yang memeriksa kunci bernama foo cocok dengan foo, Foo, atau FOO. Jika permintaan Anda menyertakan beberapa pasangan kunci-nilai dengan nama kunci yang hanya berbeda menurut kasus, akses Anda mungkin akan ditolak secara tak terduga. Untuk informasi selengkapnya, lihat IAMJSONelemen kebijakan: Condition.

  • Jika Anda memiliki batas izin, verifikasikan bahwa kebijakan yang digunakan untuk batas izin memungkinkan permintaan Anda. Jika kebijakan berbasis identitas Anda mengizinkan permintaan, tetapi batas izin Anda tidak, maka permintaan ditolak. Batas izin mengontrol izin maksimum yang dapat dimiliki IAM prinsipal (pengguna atau peran). Kebijakan berbasis sumber daya tidak terbatas oleh batasan izin. Batas izin bukanlah hal yang umum. Untuk informasi selengkapnya tentang cara AWS mengevaluasi kebijakan, lihatLogika evaluasi kebijakan.

  • Jika Anda menandatangani permintaan secara manual (tanpa menggunakan AWS SDKs), verifikasi bahwa Anda telah menandatangani permintaan dengan benar.

Saya mendapatkan “akses ditolak” ketika saya membuat permintaan dengan kredensial keamanan sementara

  • Pertama, pastikan bahwa akses Anda tidak ditolak karena alasan yang tidak terkait dengan kredensial sementara Anda. Untuk informasi selengkapnya, lihat Saya mendapatkan “akses ditolak” ketika saya mengajukan permintaan ke AWS layanan.

  • Verifikasi bahwa layanan menerima kredensial keamanan sementara, lihat AWS layanan yang bekerja dengan IAM.

  • Verifikasi bahwa permintaan Anda ditandatangani dengan benar dan bahwa permintaan tersebut memiliki bentuk yang baik. Untuk detailnya, lihat dokumentasi toolkit atau Menggunakan kredensial sementara dengan sumber daya AWS . Anda.

  • Verifikasikan bahwa kredensial keamanan sementara Anda belum kedaluwarsa. Untuk informasi selengkapnya, lihat Kredensial keamanan sementara di IAM.

  • Verifikasi bahwa IAM pengguna atau peran memiliki izin yang benar. Izin untuk kredenal keamanan sementara berasal dari IAM pengguna atau peran. Akibatnya, izin dibatasi untuk mereka yang diberikan peran yang kredensial sementaranya telah Anda gunakan. Untuk informasi selengkapnya tentang bagaimana izin untuk kredensial keamanan sementara ditentukan, lihat Mengontrol izin untuk kredensial keamanan sementara.

  • Jika Anda mengambil peran, 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.

  • Jika Anda adalah pengguna gabungan, sesi Anda mungkin akan dibatasi oleh kebijakan sesi. Anda menjadi pengguna federasi dengan masuk AWS sebagai IAM pengguna dan kemudian meminta token federasi. Untuk informasi selengkapnya tentang pengguna gabungan, lihat GetFederationToken—federasi melalui pialang identitas khusus. Jika Anda atau broker identitas Anda menyampaikan kebijakan sesi sambil meminta token federasi, sesi Anda akan dibatasi oleh kebijakan tersebut. Izin sesi yang dihasilkan adalah persimpangan kebijakan berbasis identitas IAM pengguna Anda dan kebijakan sesi. Untuk informasi selengkapnya tentang kebijakan sesi, lihat Kebijakan sesi.

  • Jika Anda mengakses sumber daya yang memiliki kebijakan berbasis sumber daya dengan menggunakan peran, verifikasi bahwa kebijakan tersebut memberikan izin untuk peran tersebut. Misalnya, kebijakan berikut memungkinkan MyRole dari akun 111122223333 untuk mengakses MyBucket.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "S3BucketPolicy", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]}, "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::MyBucket/*"] }] }

Akses ditolak contoh pesan kesalahan

Sebagian besar pesan kesalahan akses ditolak muncul dalam formatUser user is not authorized to perform action on resource because context. Dalam contoh ini, user adalah Amazon Resource Name (ARN) yang tidak menerima akses, action adalah tindakan layanan yang ditolak kebijakan, dan resource adalah ARN sumber daya di mana kebijakan bertindak. Bagian context field mewakili konteks tambahan tentang jenis kebijakan yang menjelaskan mengapa kebijakan menolak akses.

Ketika kebijakan secara eksplisit menolak akses karena kebijakan berisi Deny pernyataan, maka AWS sertakan frasa with an explicit deny in a type policy dalam pesan kesalahan akses ditolak. Ketika kebijakan secara implisit menolak akses, maka AWS sertakan frasa because no type policy allows the action action dalam pesan kesalahan akses ditolak.

catatan

Beberapa AWS layanan tidak mendukung akses ini ditolak format pesan kesalahan. Isi pesan kesalahan akses ditolak dapat bervariasi tergantung pada layanan yang membuat permintaan otorisasi.

Contoh berikut menunjukkan format untuk berbagai jenis pesan kesalahan akses ditolak.

Akses ditolak karena Kebijakan Kontrol Layanan — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam Kebijakan Kontrol Layanan Anda (SCPs). Untuk contoh berikut, tindakannya adalahcodecommit:ListRepositories.

  2. Perbarui Anda SCP dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Memperbarui SCP di Panduan AWS Organizations Pengguna.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no service control policy allows the codecommit:ListRespositories action

Akses ditolak karena Kebijakan Kontrol Layanan — penolakan eksplisit

  1. Periksa Deny pernyataan untuk tindakan dalam Kebijakan Kontrol Layanan Anda (SCPs). Untuk contoh berikut, tindakannya adalahcodecommit:ListRepositories.

  2. Perbarui Anda SCP dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Memperbarui SCP di Panduan AWS Organizations Pengguna.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories with an explicit deny in a service control policy

Akses ditolak karena kebijakan VPC titik akhir — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan titik akhir Virtual Private Cloud (VPC) Anda. Untuk contoh berikut, tindakannya adalahcodecommit:ListRepositories.

  2. Perbarui kebijakan VPC titik akhir Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Memperbarui kebijakan VPC titik akhir di AWS PrivateLink Panduan.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no VPC endpoint policy allows the codecommit:ListRepositories action

Akses ditolak karena kebijakan VPC titik akhir — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan titik akhir Virtual Private Cloud (VPC) Anda. Untuk contoh berikut, tindakannya adalahcodedeploy:ListDeployments.

  2. Perbarui kebijakan VPC titik akhir Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Memperbarui kebijakan VPC titik akhir di AWS PrivateLink Panduan.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a VPC endpoint policy

Akses ditolak karena batas izin — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan di batas izin Anda. Untuk contoh berikut, tindakannya adalahcodedeploy:ListDeployments.

  2. Perbarui batas izin Anda dengan menambahkan Allow pernyataan ke kebijakan Anda. IAM Untuk informasi selengkapnya, silakan lihat Batas izin untuk entitas IAM dan Menyunting Kebijakan IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* because no permissions boundary allows the codedeploy:ListDeployments action

Akses ditolak karena batas izin — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan di batas izin Anda. Untuk contoh berikut, tindakannya adalahsagemaker:ListModels.

  2. Perbarui batas izin Anda dengan menghapus Deny pernyataan dari kebijakan Anda. IAM Untuk informasi selengkapnya, silakan lihat Batas izin untuk entitas IAM dan Menyunting Kebijakan IAM.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sagemaker:ListModels with an explicit deny in a permissions boundary

Akses ditolak karena kebijakan sesi — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan sesi Anda. Untuk contoh berikut, tindakannya adalahcodecommit:ListRepositories.

  2. Perbarui kebijakan sesi Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan sesi danMenyunting Kebijakan IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no session policy allows the codecommit:ListRepositories action

Akses ditolak karena kebijakan sesi — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan sesi Anda. Untuk contoh berikut, tindakannya adalahcodedeploy:ListDeployments.

  2. Perbarui kebijakan sesi Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Kebijakan sesi danMenyunting Kebijakan IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a sessions policy

Akses ditolak karena kebijakan berbasis sumber daya — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan berbasis sumber daya Anda. Untuk contoh berikut, tindakannya adalahsecretsmanager:GetSecretValue.

  2. Perbarui kebijakan Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya dan. Menyunting Kebijakan IAM

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue because no resource-based policy allows the secretsmanager:GetSecretValue action

Akses ditolak karena kebijakan berbasis sumber daya — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan berbasis sumber daya Anda. Untuk contoh berikut, tindakannya adalahsecretsmanager:GetSecretValue.

  2. Perbarui kebijakan Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya dan. Menyunting Kebijakan IAM

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:* with an explicit deny in a resource-based policy

Akses ditolak karena kebijakan kepercayaan peran — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan kepercayaan peran Anda. Untuk contoh berikut, tindakannya adalahsts:AssumeRole.

  2. Perbarui kebijakan Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya dan. Menyunting Kebijakan IAM

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: sts:AssumeRole because no role trust policy allows the sts:AssumeRole action

Akses ditolak karena kebijakan kepercayaan peran — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan kepercayaan peran Anda. Untuk contoh berikut, tindakannya adalahsts:AssumeRole.

  2. Perbarui kebijakan Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya dan. Menyunting Kebijakan IAM

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sts:AssumeRole with an explicit deny in the role trust policy

Akses ditolak karena kebijakan berbasis identitas — penolakan implisit

  1. Periksa Allow pernyataan yang hilang untuk tindakan dalam kebijakan berbasis identitas yang dilampirkan pada identitas. Untuk contoh berikut, tindakan codecommit:ListRepositories dilampirkan pada peranHR.

  2. Perbarui kebijakan Anda dengan menambahkan Allow pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas dan. Menyunting Kebijakan IAM

User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories because no identity-based policy allows the codecommit:ListRepositories action

Akses ditolak karena kebijakan berbasis identitas — penolakan eksplisit

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam kebijakan berbasis identitas yang dilampirkan pada identitas. Untuk contoh berikut, tindakan codedeploy:ListDeployments dilampirkan pada peranHR.

  2. Perbarui kebijakan Anda dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Kebijakan berbasis identitas dan. Menyunting Kebijakan IAM

User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in an identity-based policy

Akses ditolak ketika VPC permintaan gagal karena kebijakan lain

  1. Periksa Deny pernyataan eksplisit untuk tindakan dalam Kebijakan Kontrol Layanan Anda (SCPs). Untuk contoh berikut, tindakannya adalahSNS:Publish.

  2. Perbarui Anda SCP dengan menghapus Deny pernyataan. Untuk informasi selengkapnya, lihat Memperbarui SCP di Panduan AWS IAM Identity Center Pengguna.

User: arn:aws:sts::111122223333:assumed-role/role-name/role-session-name is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-1:444455556666:role-name-2 with an explicit deny in a VPC endpoint policy transitively through a service control policy