本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
API閘道資源策略範例
本頁顯示API閘道資源策略的一些典型使用案例範例。
下列範例策略使用簡化的語法來指定API資源。這種簡化的語法是您可以參考API資源的縮寫方式,而不是指定完整的 Amazon 資源名稱 (ARN)。API當您儲存策略時,閘道會將縮寫語法轉換為ARN完整語法。例如,您可以在資源政策中指定資源 execute-api:/
。API閘道會在您儲存資源策略stage-name
/GET
/pets
arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets
時將資源轉換為。API閘道會使用目前的區域、您的 AWS 帳號 ID 以及與資源策略相關聯RESTAPI的 ID ARN 來建立完整版本。您可以使用execute-api:/*
來表示目前的所有階段、方法和路徑API。如需存取原則語言的詳細資訊,請參閱 Amazon API 閘道的存取政策語言概觀。
主題
範例:允許其他 AWS 帳號中的角色使用 API
下列範例資源策略會透過簽章版本 4 (SIGv4) 通訊協定,授予一個 AWS 帳號中兩個 AWS 角色的API存取權。具體而言,授與所
識別之 AWS 帳號的開發人員和系統管理員角色,可對帳 AWS 號中的account-id-2
pets
資源 (API) 執行GET
動作的動作。execute-api:Invoke
{ "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,用於execute-api
重寫原始來源 IP 位址的VPC端點。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
" } } } ] }