本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
API 閘道資源政策範例
此頁面顯示 API Gateway 資源政策的典型使用案例範例。
下列範例政策使用簡化語法來指定API資源。此簡化語法是一種簡略方式,您可以參考API資源,而不是指定完整的 Amazon Resource Name (ARN)。API 當您儲存政策ARN時,Gateway 會將縮寫語法轉換為完整語法。例如,您可以在資源政策中指定資源 execute-api:/
。API 當您儲存資源政策stage-name
/GET
/pets
arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets
時,Gateway 會將資源轉換為 。API Gateway ARN 會使用目前區域、 AWS 您的帳戶 ID 和與資源政策相關聯的 ID REST API 來建置完整的 。您可以使用 execute-api:/*
來表示目前 中的所有階段、方法和路徑API。如需存取原則語言的詳細資訊,請參閱 Amazon API Gateway 的存取政策語言概觀。
主題
範例:允許另一個 AWS 帳戶中的角色使用 API
下列範例資源政策透過 Signature 第 4 版 (SigV4) 通訊協定,將單一 AWS 帳戶中的API存取權授予不同 AWS 帳戶中的兩個角色。具體而言, 所識別 AWS 帳戶的開發人員和管理員角色
會授予 account-id-2
execute-api:Invoke
動作,以便在您 AWS 帳戶中pets
的資源 (API) 上執行GET
動作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
account-id-2
:role/developer", "arn:aws:iam::account-id-2
:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/stage
/GET/pets" ] } ] }
範例:根據來源 IP 地址或範圍拒絕API流量
下列範例資源政策會拒絕 (封鎖) API 從兩個指定的來源 IP 地址區塊傳入的流量。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "IpAddress": { "aws:SourceIp": ["
192.0.2.0/24
", "198.51.100.0/24
" ] } } } ] }
範例:使用私有時,根據來源 IP 地址或範圍拒絕API流量 API
下列範例資源政策拒絕 (封鎖) API 從兩個指定的來源 IP 地址區塊傳入私有的流量。使用私有 時APIs, 的VPC端點execute-api
會重新寫入原始來源 IP 地址。aws:VpcSourceIp
條件會根據原始請求者 IP 位址篩選請求。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "IpAddress": { "aws:VpcSourceIp": ["
192.0.2.0/24
", "198.51.100.0/24
"] } } } ] }
範例:允許基於來源VPC或VPC端點的私有API流量
下列範例資源政策API僅允許從指定的虛擬私有雲端 (VPC) 或VPC端點傳入私有流量。
此範例資源政策會指定來源 VPC:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpc": "
vpc-1a2b3c4d
" } } } ] }
此範例資源政策指定來源VPC端點:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "
vpce-1a2b3c4d
" } } } ] }