Kontrol akses untuk menjalankan API - Amazon API Gateway

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

Kontrol akses untuk menjalankan API

Di bagian ini Anda akan mempelajari cara menulis pernyataan kebijakan IAM untuk mengontrol siapa yang dapat memanggil API yang diterapkan di API Gateway. Di sini, Anda juga akan menemukan referensi pernyataan kebijakan, termasuk format Action dan Resource bidang yang terkait dengan layanan eksekusi API. Anda juga harus mempelajari bagian IAM diBagaimana kebijakan sumber daya API Gateway memengaruhi alur kerja otorisasi.

Untuk API pribadi, Anda harus menggunakan kombinasi kebijakan sumber daya API Gateway dan kebijakan titik akhir VPC. Untuk informasi selengkapnya, lihat topik berikut.

Kontrol siapa yang dapat memanggil metode API Gateway API dengan kebijakan IAM

Untuk mengontrol siapa yang dapat atau tidak dapat memanggil API yang diterapkan dengan izin IAM, buat dokumen kebijakan IAM dengan izin yang diperlukan. Template untuk dokumen kebijakan semacam itu ditampilkan sebagai berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Permission", "Action": [ "execute-api:Execution-operation" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path" ] } ] }

Di sini, Permission akan diganti oleh Allow atau Deny tergantung pada apakah Anda ingin memberikan atau mencabut izin yang disertakan. Execution-operationakan digantikan oleh operasi yang didukung oleh layanan eksekusi API. METHOD_HTTP_VERBsingkatan dari kata kerja HTTP yang didukung oleh sumber daya yang ditentukan. Resource-pathadalah placeholder untuk jalur URL dari Resource instance API yang diterapkan yang mendukung hal tersebut. METHOD_HTTP_VERB Untuk informasi selengkapnya, lihat Referensi pernyataan kebijakan IAM untuk menjalankan API di API Gateway.

catatan

Agar kebijakan IAM efektif, Anda harus mengaktifkan autentikasi IAM pada metode API dengan menyetel properti AWS_IAM metode. authorizationType Gagal melakukannya akan membuat metode API ini dapat diakses publik.

Misalnya, untuk memberikan izin kepada pengguna untuk melihat daftar hewan peliharaan yang diekspos oleh API tertentu, tetapi untuk menolak izin pengguna untuk menambahkan hewan peliharaan ke daftar, Anda dapat menyertakan pernyataan berikut dalam kebijakan IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/POST/pets" ] } ] }

Untuk memberikan izin kepada pengguna untuk melihat hewan peliharaan tertentu yang diekspos oleh API yang dikonfigurasi sebagaiGET /pets/{petId}, Anda dapat menyertakan pernyataan berikut dalam kebijakan IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets/a1b2" ] } ] }

Referensi pernyataan kebijakan IAM untuk menjalankan API di API Gateway

Informasi berikut menjelaskan format Action and Resource dari pernyataan kebijakan IAM tentang izin akses untuk menjalankan API.

Format tindakan izin untuk menjalankan API di API Gateway

ActionEkspresi pelaksana API memiliki format umum berikut:

execute-api:action

di mana action adalah tindakan pelaksana API yang tersedia:

  • *, yang mewakili semua tindakan berikut.

  • Invoke, digunakan untuk memanggil API atas permintaan klien.

  • InvalidateCache, digunakan untuk membatalkan cache API atas permintaan klien.

Format sumber daya izin untuk menjalankan API di API Gateway

ResourceEkspresi pelaksana API memiliki format umum berikut:

arn:aws:execute-api:region:account-id:api-id/stage-name/HTTP-VERB/resource-path-specifier

di mana:

  • wilayah adalah AWS wilayah (seperti us-east-1 atau * untuk semua AWS wilayah) yang sesuai dengan API yang diterapkan untuk metode tersebut.

  • account-id adalah 12 digit Id AWS akun dari pemilik REST API.

  • api-id adalah pengidentifikasi API Gateway yang telah ditetapkan ke API untuk metode ini.

  • nama panggung adalah nama panggung yang terkait dengan metode ini.

  • HTTP-VERB adalah kata kerja HTTP untuk metode ini. Ini bisa menjadi salah satu dari yang berikut: GET, POST, PUT, DELETE, PATCH.

  • resource-path-specifieradalah jalan menuju metode yang diinginkan.

catatan

Jika Anda menentukan wildcard (*), Resource ekspresi akan menerapkan wildcard ke ekspresi lainnya.

Beberapa contoh ekspresi sumber daya meliputi:

  • arn:aws:execute-api:*:*:*untuk jalur sumber daya apa pun di tahap apa pun, untuk API apa pun di AWS wilayah mana pun.

  • arn:aws:execute-api:us-east-1:*:*untuk jalur sumber daya apa pun di tahap apa pun, untuk API apa pun di AWS wilayahus-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/*untuk jalur sumber daya apa pun di tahap apa pun, untuk API dengan pengidentifikasi api-id di wilayah us-east-1 AWS .

  • arn:aws:execute-api:us-east-1:*:api-id/test/*untuk jalur sumber daya pada tahaptest, untuk API dengan pengidentifikasi api-id di wilayah us-east-1 AWS .

Untuk mempelajari selengkapnya, lihat Referensi API Gateway Amazon Resource Name (ARN).