我正在尝试为我的组织设置 AWS IAM Identity Center(AWS Single Sign-On 的后续版本),并且我的团队在可行的情况下强烈倾向于基础设施即代码 (IaC)。
在探索解决方案时,我能够使用管理控制台 UI 设置具有多个用户、组和权限集的实例。然而,现在我要设置更长期的东西,我找不到任何方法通过 CloudFormation 或 AWS CLI 创建实例。
在查找文档时,我找到了 AWS SSO 的 CloudFormation 参考,以及 sso-admin
子命令的 AWS CLI 参考。都没有提到任何创建实例的操作。 AWS SSO API 参考也没有,这让我认为编程访问可能是不可能的。
“sso”和“identitystore”API 命名空间有点小。但他们正在努力:https://aws.amazon.com/about-aws/whats-new/2023/11/aws-iam-identity-center-apis-automate-access-applications/
但是如果您不想等待,您可以进行自己的 API 调用。只需在浏览 AWS Identity Center 控制台时查看流量(“开发人员”选项卡),您将需要:
https://sso.us-east-1.amazonaws.com/control/
X-Amz-Target
标题(这是要采取的操作),例如SWBService.CreateApplicationInstance
接下来,您使用上述信息和您的凭据创建一个有效负载,然后您必须对其进行签名。 https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html
我编写了创建 SSO 应用程序并根据需要执行所需的 Lambda python 函数。我使用
botocore.auth.SigV4Auth
来签署我的有效负载。
几点建议:
090b1c27-f7d4-759c-8753-427215140aa5
,我只是随机生成了十六进制字符串,它似乎接受它。否则,只需重复使用您在浏览器的“开发人员”选项卡中看到的任何有效负载即可。