本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
General/Custom 授权要求
通用授权允许访问设备,允许您使用凭据控制多台设备,而无需个人用户凭证。与提供用户级授权的 OAuth 2.0 不同,通用授权使用存储在中的预共享密钥、令牌或其他授权机制。 AWS Secrets Manager
借助通用授权,您的 C2C 连接器可以支持 OAuth 2.0 之外的授权机制,包括 API 密钥、不记名令牌和第三方平台提供的自定义授权方案。这种方法对于在项目或组织级别而不是由个人最终用户管理设备的场景特别有用。
C2C 连接器如何使用密钥进行一般授权
AWS Secrets Manager 是一种秘密存储服务,用于保护 API 密钥和令牌等敏感凭证。使用密 AWS Key Management Service 钥对机密进行加密。有关更多信息,请参阅 AWS Secrets Manager 《用户指南》。
对于通用授权,您可以将授权凭据存储在 Secrets Manager 中,并授予您的 C2C 连接器访问这些密钥的权限。当托管集成调用你的连接器时,它会提供 Secrets Manager ARN 和版本 ID。您的连接器会检索密钥值,并使用它对第三方平台进行身份验证。
这种方法可确保托管集成永远不会直接处理您的长期证书。您的连接器可以完全控制凭据管理和令牌生成,从而使解决方案可扩展到您的第三方平台支持的任何授权机制。
重要
我们建议您不要在任何日志中记录敏感凭据或令牌。但是,如果它们存储在日志中,我们建议您使用 CloudWatch 日志数据保护策略来屏蔽日志中的令牌。有关更多信息,请参阅 Help protect sensitive log data with masking。
如何为通用授权创建密钥
要为通用授权创建密钥,请按照《 AWS Secrets Manager 用户指南》中创建 AWS Secrets Manager 密钥中的步骤进行操作。
您必须使用客户管理的密钥创建您的密 AWS KMS 钥,以便您的 C2C 连接器读取密钥值。有关更多信息,请参阅《 AWS Secrets Manager 用户指南》中的 AWS KMS 密钥权限。
使用 JSON 结构将您的授权凭证存储在密钥中。确切的格式取决于您的第三方平台的授权要求。常见示例包括:
-
API 密钥:
{"apiKey": "your-api-key-value"} -
不记名代币:
{"token": "your-bearer-token"} -
用户名和密码:
{"username": "your-username", "password": "your-password"} -
Machine-to-machine OAuth 凭证:
{"client_id": "your-client-id", "client_secret": "your-client-secret", "audience": "your-audience"}
您还必须配置下一节中描述的 IAM 策略,以授予您的 C2C 连接器检索密钥的访问权限。
授予 C2C 连接器检索密钥的访问权限
要允许托管集成从 Secrets Manager 检索密钥值,请在创建密钥时在密钥的资源策略中加入以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "c2c-connector-account-id" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:iotmanagedintegrations:region:account-id:account-association/account-association-id" } } } ] }
此政策授予托管集成代表您的 C2C 连接器检索密钥值的权限。条件密钥可确保只有来自您的特定账户关联的请求才能访问该密钥,从而帮助防止出现混乱的代理问题。