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.
Topik
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.
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.
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.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
" } } } ] }
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.
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-nya
. 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. 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.
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 |