使用 CloudFormation 或 SAM 部署身份提供者

Deploy Identity Provider with CloudFormation or SAM

我有一个 CodeStar 项目,我使用控制台为 OpenId Connect 创建了一个身份提供者和一个身份池。这有效,我可以验证我的所有资源。我会把这个手动过程变成更自动化的过程。需要的前两件事是

理想的解决方案是,在 code star 项目中向 template.yml 添加一些指令,这样每次修改模板时,身份提供者都会相应地修改。 我试图查看 SAM 文档,但似乎没有对创建身份提供者有用的东西。 我查看了 CloudFormation Designer,似乎没有满足此需求的东西。这怎么可能?

我如何自动化这些信息并将其置于源代码管理之下?

CloudFormation 不支持 OpenID 或 SAML IdP。但是,所有 AWS SKD 都可以。我建议查看 CloudFormation 的 lambda-backed custom resources

自定义资源 lambda 函数随后可以拥有您自己的 OpenID 提供程序创建实现。有关 Python or Java SKD 调用,请参阅 AWS 文档。

我发现 project 可以在 Lambda 函数中使用 python 进行设置。 我还没有尝试过(我在想办法的时候来到这里)

相关代码(设置boto IAM客户端后)

iam.create_saml_provider(SAMLMetadataDocument=doc,Name=name)

(当然)还有更多内容,但都在 github 项目中。

CloudFormation 现在支持 OpenID Connect 和 SAML 身份提供商:

AWS::IAM::SAMLProvider resource type is used for SAML provider and AWS::IAM::OIDCProvider 用于 OpenID Connect 提供商。