Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Saat API Gateway mengevaluasi kebijakan sumber daya yang dilampirkan ke API Anda, hasilnya dipengaruhi oleh jenis autentikasi yang telah Anda tetapkan untuk API, seperti yang diilustrasikan dalam diagram alur di bagian berikut.
Topik
Kebijakan sumber daya API Gateway saja
Dalam alur kerja ini, kebijakan sumber daya API Gateway dilampirkan ke API, tetapi tidak ada jenis otentikasi yang ditentukan untuk API. Evaluasi kebijakan melibatkan pencarian izin eksplisit berdasarkan kriteria masuk penelepon. Penolakan implisit atau penolakan eksplisit apa pun menghasilkan penolakan penelepon.

Berikut ini adalah contoh kebijakan sumber daya semacam itu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:
region
:account-id
:api-id
/", "Condition": { "IpAddress": { "aws:SourceIp": ["192.0.2.0/24
", "198.51.100.0/24
" ] } } } ] }
Lambda otorisasi dan kebijakan sumber daya
Dalam alur kerja ini, otorisasi Lambda dikonfigurasi untuk API selain kebijakan sumber daya. Kebijakan sumber daya dievaluasi dalam dua fase. Sebelum memanggil otorisasi Lambda, API Gateway terlebih dahulu mengevaluasi kebijakan dan memeriksa setiap penolakan eksplisit. Jika ditemukan, penelepon ditolak aksesnya segera. Jika tidak, otorisasi Lambda dipanggil, dan mengembalikan dokumen kebijakan, yang dievaluasi bersama dengan kebijakan sumber daya. Hasilnya ditentukan berdasarkan Tabel A.
Contoh kebijakan sumber daya berikut mengizinkan panggilan hanya dari titik akhir VPC yang ID titik akhir VPC-nya.
Selama evaluasi “pra-auth”, hanya panggilan yang berasal dari titik akhir VPC yang ditunjukkan dalam contoh yang diizinkan untuk bergerak maju dan mengevaluasi otorisasi Lambda. Semua panggilan yang tersisa diblokir.vpce-1a2b3c4d

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:
region
:account-id
:api-id
/" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d
" } } } ] }
Autentikasi IAM dan kebijakan sumber daya
Dalam alur kerja ini, Anda mengonfigurasi autentikasi IAM untuk API selain kebijakan sumber daya. Setelah Anda mengautentikasi pengguna dengan layanan IAM, API akan mengevaluasi kebijakan yang dilampirkan pada pengguna dan kebijakan sumber daya. Hasilnya bervariasi berdasarkan apakah pemanggil berada di tempat yang sama Akun AWS atau terpisah Akun AWS, dari pemilik API.
Jika pemanggil dan pemilik API berasal dari akun terpisah, kebijakan IAM dan kebijakan sumber daya secara eksplisit mengizinkan pemanggil untuk melanjutkan. Untuk informasi lebih lanjut, lihat Tabel B.
Namun, jika pemanggil dan pemilik API sama Akun AWS, maka kebijakan pengguna IAM atau kebijakan sumber daya harus secara eksplisit mengizinkan pemanggil untuk melanjutkan. Untuk informasi lebih lanjut, lihat Tabel A.

Berikut ini adalah contoh kebijakan sumber daya lintas akun. Dengan asumsi kebijakan IAM berisi efek allow, kebijakan sumber daya ini hanya mengizinkan panggilan dari VPC yang ID VPCnya.
Untuk informasi lebih lanjut, lihat Tabel B.vpc-2f09a348
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:
account-id
:api-id
/" ], "Condition" : { "StringEquals": { "aws:SourceVpc": "vpc-2f09a348
" } } } ] }
Autentikasi Amazon Cognito dan kebijakan sumber daya
Dalam alur kerja ini, kumpulan pengguna Amazon Cognito dikonfigurasi untuk API selain kebijakan sumber daya. API Gateway pertama kali mencoba untuk mengautentikasi pemanggil melalui Amazon Cognito. Ini biasanya dilakukan melalui token JWT yang disediakan oleh penelepon. Jika otentikasi berhasil, kebijakan sumber daya dievaluasi secara independen, dan izin eksplisit diperlukan. Penyangkalan atau “tidak mengizinkan atau menyangkal” menghasilkan penyangkalan. Berikut ini adalah contoh kebijakan sumber daya yang dapat digunakan bersama dengan kumpulan pengguna Amazon Cognito.

Berikut ini adalah contoh kebijakan sumber daya yang mengizinkan panggilan hanya dari sumber tertentu IPs, dengan asumsi bahwa token otentikasi Amazon Cognito berisi izin. Untuk informasi lebih lanjut, lihat Tabel B.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:
region
:account-id
:api-id
/", "Condition": { "IpAddress": { "aws:SourceIp": ["192.0.2.0/24
", "198.51.100.0/24
" ] } } } ] }
Tabel hasil evaluasi kebijakan
Tabel A mencantumkan perilaku yang dihasilkan saat akses ke API Gateway API dikendalikan oleh kebijakan IAM atau otorisasi Lambda dan kebijakan sumber daya API Gateway, keduanya sama. Akun AWS
Kebijakan IAM (atau otorisasi Lambda) |
Kebijakan sumber daya API Gateway |
Perilaku yang dihasilkan |
---|---|---|
Izinkan | Izinkan | Izinkan |
Izinkan | Tidak Memungkinkan atau Menyangkal | Izinkan |
Izinkan | Menyangkal | Penolakan jelas |
Tidak Memungkinkan atau Menyangkal | Izinkan | Izinkan |
Tidak Memungkinkan atau Menyangkal | Tidak Memungkinkan atau Menyangkal | Penyangkalan Implisit |
Tidak Memungkinkan atau Menyangkal | Menyangkal | Penolakan jelas |
Menyangkal | Izinkan | Penolakan jelas |
Menyangkal | Tidak Memungkinkan atau Menyangkal | Penolakan jelas |
Menyangkal | Menyangkal | Penolakan jelas |
Tabel B mencantumkan perilaku yang dihasilkan saat akses ke API Gateway API dikendalikan oleh kebijakan IAM atau otorisasi kumpulan pengguna Amazon Cognito dan kebijakan sumber daya API Gateway, yang berbeda. Akun AWS Jika salah satu diam (tidak mengizinkan atau menolak), akses lintas akun ditolak. Ini karena akses lintas akun mengharuskan kebijakan sumber daya dan kebijakan IAM atau otorisasi kumpulan pengguna Amazon Cognito secara eksplisit memberikan akses.
Kebijakan IAM (atau otorisasi kumpulan pengguna Amazon Cognito) |
Kebijakan sumber daya API Gateway |
Perilaku yang dihasilkan |
---|---|---|
Izinkan | Izinkan | Izinkan |
Izinkan | Tidak Memungkinkan atau Menyangkal | Penyangkalan Implisit |
Izinkan | Menyangkal | Penolakan jelas |
Tidak Memungkinkan atau Menyangkal | Izinkan | Penyangkalan Implisit |
Tidak Memungkinkan atau Menyangkal | Tidak Memungkinkan atau Menyangkal | Penyangkalan Implisit |
Tidak Memungkinkan atau Menyangkal | Menyangkal | Penolakan jelas |
Menyangkal | Izinkan | Penolakan jelas |
Menyangkal | Tidak Memungkinkan atau Menyangkal | Penolakan jelas |
Menyangkal | Menyangkal | Penolakan jelas |