API閘道資源策略範例 - Amazon API 网关

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API閘道資源策略範例

本頁顯示API閘道資源策略的一些典型使用案例範例。

下列範例策略使用簡化的語法來指定API資源。這種簡化的語法是您可以參考API資源的縮寫方式,而不是指定完整的 Amazon 資源名稱 (ARN)。API當您儲存策略時,閘道會將縮寫語法轉換為ARN完整語法。例如,您可以在資源政策中指定資源 execute-api:/stage-name/GET/pets。API閘道會在您儲存資源策略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存取權。具體而言,授與所account-id-2識別之 AWS 帳號的開發人員和系統管理員角色,可對帳 AWS 號中的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" } } } ] }