是否可以以编程方式创建 AWS IAM Identity Center(又名 AWS SSO)实例?

问题描述 投票:0回答:1

我正在尝试为我的组织设置 AWS IAM Identity Center(AWS Single Sign-On 的后续版本),并且我的团队在可行的情况下强烈倾向于基础设施即代码 (IaC)。

在探索解决方案时,我能够使用管理控制台 UI 设置具有多个用户、组和权限集的实例。然而,现在我要设置更长期的东西,我找不到任何方法通过 CloudFormation 或 AWS CLI 创建实例。

在查找文档时,我找到了 AWS SSO 的 CloudFormation 参考,以及 sso-admin

 子命令
AWS CLI 参考。都没有提到任何创建实例的操作。 AWS SSO API 参考也没有,这让我认为编程访问可能是不可能的。

  • 是否可以通过代码而不是管理控制台来创建实例?
  • 如果可以的话,我错过了什么?
amazon-web-services single-sign-on identity-management
1个回答
0
投票

“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 控制台时查看流量(“开发人员”选项卡),您将需要:

  1. 端点:
    https://sso.us-east-1.amazonaws.com/control/
  2. X-Amz-Target
    标题(这是要采取的操作),例如
    SWBService.CreateApplicationInstance
  3. 有效负载,例如模板 ID 和随机名称

接下来,您使用上述信息和您的凭据创建一个有效负载,然后您必须对其进行签名。 https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html

我编写了创建 SSO 应用程序并根据需要执行所需的 Lambda python 函数。我使用

botocore.auth.SigV4Auth
来签署我的有效负载。

几点建议:

  1. AWS 不建议您执行上述步骤
  2. 创建新应用程序时,您必须传递一个随机名称,如下所示:
    090b1c27-f7d4-759c-8753-427215140aa5
    ,我只是随机生成了十六进制字符串,它似乎接受它。否则,只需重复使用您在浏览器的“开发人员”选项卡中看到的任何有效负载即可。
© www.soinside.com 2019 - 2024. All rights reserved.