Bagaimana kebijakan sumber daya API Gateway memengaruhi alur kerja otorisasi - APIGerbang Amazon

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

Bagaimana kebijakan sumber daya API Gateway memengaruhi alur kerja otorisasi

Ketika API Gateway mengevaluasi kebijakan sumber daya yang dilampirkan pada AndaAPI, hasilnya dipengaruhi oleh jenis otentikasi yang telah Anda tetapkan untukAPI, seperti yang diilustrasikan dalam diagram alur di bagian berikut.

APIKebijakan sumber daya gateway saja

Dalam alur kerja ini, kebijakan sumber daya API Gateway dilampirkan keAPI, tetapi tidak ada jenis otentikasi yang ditentukan untuk. API Evaluasi kebijakan melibatkan pencarian izin eksplisit berdasarkan kriteria masuk penelepon. Penolakan implisit atau penolakan eksplisit menghasilkan penolakan penelepon.

Alur otorisasi kebijakan sumber daya saja.

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 selain API kebijakan sumber daya. Kebijakan sumber daya dievaluasi dalam dua fase. Sebelum memanggil otorisasi Lambda, API Gateway terlebih dahulu mengevaluasi kebijakan dan memeriksa penolakan eksplisit apa pun. 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 VPC titik akhir yang ID VPC titik akhir. vpce-1a2b3c4d Selama evaluasi “pra-auth”, hanya panggilan yang datang dari VPC titik akhir yang ditunjukkan dalam contoh yang diizinkan untuk bergerak maju dan mengevaluasi otorisasi Lambda. Semua panggilan yang tersisa diblokir.

Alur otorisasi untuk kebijakan sumber daya dan otorisasi Lambda.
{ "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" } } } ] }

IAMotentikasi dan kebijakan sumber daya

Dalam alur kerja ini, Anda mengonfigurasi IAM autentikasi untuk API selain kebijakan sumber daya. Setelah Anda mengautentikasi pengguna dengan IAM layanan, akan API mengevaluasi kebijakan yang dilampirkan pada pengguna dan kebijakan sumber daya. Hasilnya bervariasi berdasarkan apakah penelepon berada di tempat yang sama Akun AWS atau terpisah Akun AWS, dari API pemiliknya.

Jika pemanggil dan API pemilik berasal dari akun terpisah, IAM kebijakan dan kebijakan sumber daya secara eksplisit mengizinkan pemanggil untuk melanjutkan. Untuk informasi lebih lanjut, lihat Tabel B.

Namun, jika pemanggil dan API pemiliknya sama Akun AWS, maka kebijakan IAM pengguna atau kebijakan sumber daya harus secara eksplisit mengizinkan pemanggil untuk melanjutkan. Untuk informasi lebih lanjut, lihat Tabel A.

Alur otorisasi untuk kebijakan sumber daya dan IAM otentikasi.

Berikut ini adalah contoh kebijakan sumber daya lintas akun. Dengan asumsi IAM kebijakan berisi efek allow, kebijakan sumber daya ini hanya mengizinkan panggilan dari VPC VPC ID-nyavpc-2f09a348. 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" : { "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. APIGateway pertama kali mencoba untuk mengautentikasi penelepon melalui Amazon Cognito. Ini biasanya dilakukan melalui JWTtoken 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.

Alur otorisasi untuk kebijakan sumber daya dan otorisasi Amazon Cognito.

Berikut ini adalah contoh kebijakan sumber daya yang mengizinkan panggilan hanya dari sumber tertentuIPs, 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 IAM kebijakan atau otorisasi Lambda dan kebijakan sumber daya API Gateway, yang keduanya sama. Akun AWS

IAMkebijakan (atau otorisasi Lambda)

APIKebijakan sumber daya 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 IAM kebijakan 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 IAM kebijakan atau otorisasi kumpulan pengguna Amazon Cognito secara eksplisit memberikan akses.

IAMkebijakan (atau otorisasi kumpulan pengguna Amazon Cognito)

APIKebijakan sumber daya 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