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后, 如下图
client
点"save" 后, 更新两个字段
- Base URL
/realms/amg/protocol/saml/clients/amazon-aws - IDP initiated SSO URL Name fields
amazon-aws
把"Scope" 开关关闭
off
下载 keycloak metadata , 保存为 kc.xml
xml
0x02 配置 IAM
添加一个身份提供商
DP
添加角色
role
添加策略
readOnly
添加名称 READ_ONLY_USER_ROLE
TAG
0x03 配置Keycloak Role
为上面的client 添加 Role信息:
把上一步中的 身份提供商 和 角色的 arn , 以逗号分隔, 输入 RoleName框.
role
添加 Mapper配置
new mapper
-
添加 Session Role
session Role
Role attribute name: https://aws.amazon.com/SAML/Attributes/Role
-
添加 Session Name
name
SAML Attribute Name: https://aws.amazon.com/SAML/Attributes/RoleSessionName
-
添加 Session Duration
duration
SAML Attribute Name: https://aws.amazon.com/SAML/Attributes/SessionDuration
添加 Group
组名: READ_ONLY_AWS_USERS
group
绑定Group Role Mapping
选择可用aws role, 点击 Add Selected, 完成绑定
mapping
添加 User
user
把用户添加到Group
join
设置密码 demo
pwd
0x04 验证
https://{your_idp_domain}/realms/amg/protocol/saml/clients/amazon-aws
login
使用 demo/demo登录后,自动跳转
aws
实现三方用户登录 amazon .
网友评论