本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 API Gateway 中使用私有 API 的 VPC 端點政策
若要改善私有 API 的安全性,您可以建立 VPC 端點原則。VPC 端點政策為 IAM 資源政策,您可將其連接至 VPC 端點。如需詳細資訊,請參閱使用 VPC 端點控制服務的存取。
您可能想要建立 VPC 端點原則來執行下列動作:
僅允許特定組織或資源存取您的 VPC 端點並叫用您的 API。
使用單一原則,並避免使用工作階段型或角色型政策來控制 API 的流量。
在從內部部署移轉至時,收緊應用程式的安全性範圍 AWS。
VPC 端點政策考量事項
-
調用者的身分是根據
Authorization
標頭值進行評估。根據您的authorizationType
而定,這可能會導致403 IncompleteSignatureException
或403 InvalidSignatureException
錯誤。下表顯示每個authorizationType
的Authorization
標頭值。 如果政策限制了對特定 IAM 主體的存取權限,例如
arn:aws:iam::account-id:role/developer
,您必須將 API 方法authorizationType
的方法設定為AWS_IAM
或NONE
。如需如何設定方法的更authorizationType
多指示,請參閱API Gateway 中其餘 API 的方法。-
VPC 端點政策可與 API Gateway 資源政策搭配使用。API Gateway 資源策略指定哪些主體可以存取 API。端點策略指定誰可以存取 VPC,以及可從 VPC 端點呼叫哪些 API。您的私有 API 需要資源政策,但您不需要建立自訂 VPC 端點原則。
VPC 端點政策範例
您可以為 Amazon API Gateway 建立 Amazon Virtual Private Cloud 端點的政策,您可以在其中指定:
-
可執行動作的委託人。
-
可執行的動作。
-
可對其執行動作的資源。
您需要使用 VPC 主控台,才能將政策連接至 VPC 端點。如需詳細資訊,請參閱使用 VPC 端點控制服務的存取。
範例 1:授予兩個 API 存取權限的 VPC 端點政策
以下範例政策會透過連接政策的 VPC 端點,僅授予使用者存取兩個特定 API 的權限。
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/*", "arn:aws:execute-api:us-east-1
:123412341234
:aaaaa11111
/*" ] } ] }
範例 2:授予 GET 方法存取權限的 VPC 端點政策
以下範例政策會透過連接政策的 VPC 端點,授予使用者存取特定 API GET
方法的權限。
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/stageName
/GET/*" ] } ] }
範例 3:授予某個使用者特定 API 存取權限的 VPC 端點政策
以下範例政策會透過連接政策的 VPC 端點,授予某個使用者存取特定 API 的權限。
在此情況下,由於政策會限制特定 IAM 主體的存取權,因此您必須將AWS_IAM
方法authorizationType
的設定為或。NONE
{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/
MyUser
" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1
:123412341234
:a1b2c3d4e5
/*" ] } ] }