APIs在API閘道中使用私有VPC端點政策 - Amazon API Gateway

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

APIs在API閘道中使用私有VPC端點政策

為了提高私有安全性API,您可以創建VPC端點策略。VPC端點策略是您附加到VPC端點的IAM資源策略。如需詳細資訊,請參閱控制VPC端點對服務的存取。

您可能想要建立VPC端點策略來執行下列工作。

  • 只允許特定組織或資源存取您的VPC端點並呼叫API.

  • 使用單一原則並避免工作階段型或角色型原則來控制傳送至您的. API

  • 在從內部部署移轉至時,收緊應用程式的安全性範圍 AWS。

VPC端點策略考量

以下是VPC端點策略的考量事項。

  • 調用者的身分是根據 Authorization 標頭值進行評估。根據您的 authorizationType 而定,這可能會導致 403 IncompleteSignatureException403 InvalidSignatureException 錯誤。下表顯示每個 authorizationTypeAuthorization 標頭值。

    authorizationType

    Authorization頭評估?

    允許Authorization標頭值

    NONE,具有預設的完整存取政策 未通過
    NONE,具有自訂存取政策 必須是有效的 SigV4
    IAM 必須是有效的 SigV4
    CUSTOMCOGNITO_USER_POOLS 未通過
  • 如果原則限制對特定IAM主參與者的存取,例如arn:aws:iam::account-id:role/developer,您必須將您authorizationTypeAPI的方法設定為AWS_IAMNONE。如需如何設定方法的更authorizationType多指示,請參閱API Gateway RESTAPIs中 的方法

  • VPC端點策略可與API閘道資源策略一起使用。API閘道資源策略指定哪些主體可以存取API。端點策略指定誰可以存取VPC,哪些人APIs可以從VPC端點呼叫。您的私人API需要資源策略,但您不需要創建自定義VPC端點策略。

VPC端點策略範例

您可以為 Amazon API 閘道建立 Amazon 虛擬私有雲端端點的政策,在其中指定下列項目。

  • 可執行動作的主體。

  • 可執行的動作。

  • 可對其執行動作的資源。

要將策略附加到VPC端點,您需要使用VPC控制台。如需詳細資訊,請參閱控制VPC端點對服務的存取。

範例 1:VPC端點策略授與兩個存取權 APIs

下列範例政策只會APIs透過策略所附加的VPC端點授與存取兩個特定的權限。

{ "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:VPC端點策略授與GET方法的存取權

下列範例原則會授與使GET用者API透過策略所附加的VPC端點存取特定方法。

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }

範例 3:VPC端點策略授與特定使用者存取特定使用者 API

下列範例策略會授與特定使用者透API過策略所附加到的VPC端點存取特定使用者。

在此情況下,由於原則會限制對特定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/*" ] } ] }