IAM 권한 부여를 통해 WebSocket API에 대한 액세스 제어 - Amazon API Gateway

IAM 권한 부여를 통해 WebSocket API에 대한 액세스 제어

WebSocket API에서 IAM 권한 부여는 REST API와 유사하지만 다음과 같은 예외가 있습니다.

  • execute-api 작업은기존 작업(ManageConnections, Invoke) 이외에 InvalidateCache를 지원합니다. ManageConnections는 @connections API에 대한 액세스를 제어합니다.

  • WebSocket 라우팅은 다른 ARN 형식을 사용합니다.

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • @connections API는 REST API와 동일한 ARN 형식을 사용합니다.

    arn:aws:execute-api:region:account-id:api-id/stage-name/POST/@connections
중요

IAM 권한 부여를 사용하는 경우 Signature Version 4(SigV4)로 서명해야 합니다.

예를 들어 클라이언트에 다음 정책을 설정할 수 있습니다. 이 예제는 모든 사람이 Invoke 스테이지에서 비밀 라우팅을 제외한 모든 라우팅에 대한 메시지(prod)를 보내도록 허용하고, 모든 사람이 모든 스테이지에 대해 연결된 클라이언트(ManageConnections)로 메시지를 보내는 것을 금지합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/prod/*" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/prod/secret" ] }, { "Effect": "Deny", "Action": [ "execute-api:ManageConnections" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*" ] } ] }