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
/*" ] } ] }