Menggunakan tag untuk mengontrol akses ke sumber daya API API Gateway REST API - APIGerbang Amazon

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

Menggunakan tag untuk mengontrol akses ke sumber daya API API Gateway REST API

Ketentuan dalam AWS Identity and Access Management kebijakan adalah bagian dari sintaks yang Anda gunakan untuk menentukan izin ke sumber daya API Gateway. Untuk detail tentang menentukan kebijakan IAM, lihat. Kontrol akses ke a REST API dengan IAM izin Di API Gateway, sumber daya dapat memiliki tag, dan beberapa tindakan dapat menyertakan tag. Saat membuat kebijakan IAM, Anda dapat menggunakan kunci kondisi tag untuk mengontrol:

  • Pengguna mana yang dapat melakukan tindakan pada sumber daya API Gateway, berdasarkan tag yang sudah dimiliki sumber daya.

  • Tanda apa yang dapat diteruskan dalam permintaan tindakan.

  • Apakah kunci tanda tertentu dapat digunakan dalam permintaan.

Menggunakan tag untuk kontrol akses berbasis atribut dapat memungkinkan kontrol yang lebih baik daripada kontrol tingkat API, serta kontrol yang lebih dinamis daripada kontrol akses berbasis sumber daya. Kebijakan IAM dapat dibuat yang mengizinkan atau melarang operasi berdasarkan tag yang disediakan dalam permintaan (tag permintaan), atau tag pada sumber daya yang sedang dioperasikan (tag sumber daya). Secara umum, tag sumber daya adalah untuk sumber daya yang sudah ada. Tag permintaan digunakan saat Anda membuat sumber daya baru.

Untuk sintaks dan semantik kunci syarat tanda yang lengkap, lihat Controlling Access Using Tags dalam Panduan Pengguna IAM.

Contoh berikut menunjukkan cara menentukan kondisi tag dalam kebijakan untuk pengguna API Gateway.

Batasi tindakan berdasarkan tag sumber daya

Contoh kebijakan berikut memberi pengguna izin untuk melakukan semua tindakan pada semua sumber daya, selama sumber daya tersebut tidak memiliki tag Environment dengan nilaiprod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "prod" } } } ] }

Izinkan tindakan berdasarkan tag sumber daya

Contoh kebijakan berikut memungkinkan pengguna untuk melakukan semua tindakan pada sumber daya API Gateway, selama sumber daya memiliki tag Environment dengan nilaiDevelopment. DenyPernyataan tersebut mencegah pengguna mengubah nilai Environment tag.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConditionallyAllow", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "Development" } } }, { "Sid": "AllowTagging", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ] }, { "Sid": "DenyChangingTag", "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "Environment" } } } ] }

Tolak operasi penandaan

Contoh kebijakan berikut memungkinkan pengguna untuk melakukan semua tindakan API Gateway, kecuali untuk mengubah tag.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "*" ], }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "arn:aws:apigateway:*::/tags*", } ] }

Izinkan operasi penandaan

Contoh kebijakan berikut memungkinkan pengguna untuk mendapatkan semua sumber daya API Gateway, dan mengubah tag untuk sumber daya tersebut. Untuk mendapatkan tag untuk sumber daya, pengguna harus memiliki GET izin untuk sumber daya tersebut. Untuk memperbarui tag untuk sumber daya, pengguna harus memiliki PATCH izin untuk sumber daya tersebut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PUT", "apigateway:POST", "apigateway:DELETE" ], "Resource": [ "arn:aws:apigateway:*::/tags/*", ] }, { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PATCH", ], "Resource": [ "arn:aws:apigateway:*::*", ] } ] }