0x00 目标
amazon 的 grafana 服务仅支持三方账号登录方式(SSO, SAML).
其中, SSO只支持amazon 自己的SSO方案, 特殊原因 无法使用.
本文通过 Keycloak 来实现SAML登录方案.
先说结论: 失败. 官方文档不支持Keycloak, 放弃.
参考: https://neuw.medium.com/aws-connect-saml-based-identity-provider-using-keycloak-9b3e6d0111e6
0x01 配置Keycloak
-
创建 relam
amg
- 创建 client
先下载 aws 的 saml meta文件 https://signin.aws.amazon.com/static/saml-metadata.xml 保存到本地.
wget https://signin.aws.amazon.com/static/saml-metadata.xml
选择下载的xml后, 如下图

点"save" 后, 更新两个字段
- Base URL
/realms/amg/protocol/saml/clients/amazon-aws - IDP initiated SSO URL Name fields
amazon-aws

把"Scope" 开关关闭

下载 keycloak metadata , 保存为 kc.xml

0x02 配置 IAM
添加一个身份提供商

添加角色

添加策略

添加名称 READ_ONLY_USER_ROLE

0x03 配置Keycloak Role
为上面的client 添加 Role信息:
把上一步中的 身份提供商 和 角色的 arn , 以逗号分隔, 输入 RoleName框.

添加 Mapper配置

-
添加 Session Role
Role attribute name: https://aws.amazon.com/SAML/Attributes/Role
session Role
-
添加 Session Name
SAML Attribute Name: https://aws.amazon.com/SAML/Attributes/RoleSessionName
name
-
添加 Session Duration
SAML Attribute Name: https://aws.amazon.com/SAML/Attributes/SessionDuration
duration
添加 Group
组名: READ_ONLY_AWS_USERS

绑定Group Role Mapping
选择可用aws role, 点击 Add Selected, 完成绑定

添加 User

把用户添加到Group

设置密码 demo

0x04 验证
https://{your_idp_domain}/realms/amg/protocol/saml/clients/amazon-aws

使用 demo/demo登录后,自动跳转

实现三方用户登录 amazon .
网友评论