使用 IAM 授权 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 IAM 授权

WebSocket API 中的 IAM 授权与 REST API 的授权类似,但有以下例外:

  • 除了现有操作(execute-apiManageConnections)之外,Invoke 操作也支持 InvalidateCacheManageConnections 控制对 @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 授权时,必须使用签名版本 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/*" ] } ] }