了解您的集成
完成载入流程后,您可以构建与 IAM 临时委派的集成。完整的集成通常涉及三个主要工作类别:
1. 用户体验和工作流程设计
在合作伙伴应用程序中构建前端体验,指导客户完成临时委派工作流程。合作伙伴应用程序应该:
提供清晰的载入或配置流程,客户可以在其中授予临时访问权限。明确标注此操作,例如“使用 IAM 临时委派进行部署”。
使用 CreateDelegationRequest API 返回的控制台链接将客户重定向到 AWS 管理控制台以查看和批准委派请求
提供适当的消息,说明正在请求哪些权限以及请求的原因。客户可以在委派请求详细信息页面上看到此消息。
客户在 AWS 中完成批准后,处理其返回您应用程序的流程。
临时授权请求的最佳实践
在为您的合作伙伴应用程序实施临时授权时,请遵循以下定义的最佳实践,进而帮助客户验证请求的真实性和准确性。
1。在请求消息中包含用户可识别的上下文
您应该在授权请求消息中包含用户特定的上下文。此信息可帮助用户识别其现有合作伙伴工作流程中的请求并区分合法请求。请求消息中的建议信息:
客户在您的服务中的账户标识符或用户名
工作区名称、订阅 ID 或组织标识符
正在访问的特定资源(集群名称、项目名称、环境)
为此次授权尝试生成的唯一事务或请求标识符
请求消息示例:
Request from Partner A workspace "production-analytics" Account: user@example.com Workspace ID: 1234ABCD Cluster: ml-training-cluster-01 Request ID: 1111-2222-3333-4444
2. 可选:在启动授权时包括 AWS 账户 ID
如果客户账户 ID 可用,请将其包含在授权请求中。此验证步骤在客户的意图和授权令牌之间创建了额外的绑定。
3. 设计用于安全验证的请求消息
整理您的请求消息,使客户能够在授予访问权限之前自信地验证合法性。用户体验要求:
在重定向到 AWS 之前,在应用程序界面中突出显示请求消息
使用清晰的描述性语言,直接与客户当前的操作相关
避免使用可能应用于任何授权请求的通用消息
包括足够的详细信息,让客户验证请求是否符合其预期工作流程
显示将获得授权访问权限的 AWS 账户 ID
明确说明您的应用程序将请求哪些权限
在将客户重定向到 AWS 同意屏幕之前,请在应用程序中加入确认通知:
⚠️ Redirecting to IAM Temporary Delegation You are about to grant [Your Service Name] temporary access to your AWS account. Before clicking "Allow" on the AWS consent screen: • Verify the request details match your current action • Confirm the AWS account ID matches your intended account • Ensure you initiated this request from [Your Service Name]
4. 会话绑定建议
当 AWS IAM 处理核心授权流时,请在您的应用程序中实施以下做法以增强会话完整性:
为每次授权尝试生成唯一的一次性请求标识符
将授权请求与客户的活动应用程序会话相关联
根据您的授权流程实施适当的请求到期时间
验证授权回调是否与原始请求上下文匹配
记录所有授权请求的启动和完成情况,以便进行安全监控
通过遵循这些最佳实践,您可以帮助创建更安全的临时授权体验。
2. API 集成
使用 IAM 临时委派 API 发送和管理委派请求。注册 AWS 账户后,您可访问以下 API:
IAM CreateDelegationRequest:为客户的 AWS 账户创建委派请求。此 API 会返回一个控制台链接,您可以将客户重定向到该链接以审查和批准请求。
AWS STS GetDelegatedAccessToken:在客户批准您的委派请求后检索临时 AWS 凭证。使用这些凭证在客户的账户中执行操作。
您的集成应处理委派请求的整个生命周期,包括创建请求、监控其状态以及在获得批准后检索临时凭证。
3. 资源配置与编排
获得临时凭证后,编排必要的工作流程以配置客户 AWS 账户中的资源。这可能包括:
直接调用 AWS 服务 API 创建和配置资源
使用 AWS CloudFormation 模板部署基础设施
创建用于持续访问的 IAM 角色(需要使用权限边界)
您的编排逻辑应具有幂等性,并且可以从容地处理故障,因为客户可能需要重试或修改其委派批准。