本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本頁面顯示 API Gateway 資源政策之一般使用案例的一些範例。
下列範例政策使用簡化的語法來指定 API 資源。這種簡化的語法是您可以參考 API 資源的縮寫方式,而不是指定完整的 Amazon Resource Name (ARN)。當您儲存政策時,API Gateway 會將縮寫的語法轉換為完整的 ARN。例如,您可以在資源政策中指定資源 execute-api:/
。當您儲存資源政策時,API Gateway 會將資源轉換為 stage-name
/GET
/pets
arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets
。API Gateway 會使用目前的區域、 AWS 您的帳戶 ID 和與資源政策相關聯的 REST API ID 來建置完整的 ARN。您可以使用 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 流量
以下範例資源政策會拒絕 (封鎖) 從兩個指定的來源 IP 位址區塊傳入 API 流量。
{ "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
" ] } } } ] }
範例:使用私有 API 時,根據來源 IP 位址或範圍拒絕 API 流量
以下範例資源政策會拒絕 (封鎖) 從兩個指定的來源 IP 位址區塊傳入 API 流量。使用私有 API 時,execute-api
的 VPC 端點會重新寫入原始來源 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 流量
以下範例資源政策僅允許來自指定的 Virtual Private Cloud (VPC) 或 VPC 端點的流量傳入私有 API。
此範例資源政策會指定來源 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
" } } } ] }