如何使用SAML session tags实现SSO的ABAC权限管理
Use SAML session tags for ABAC
如果您的公司使用基于SAML的身份提供商(IdP)来管理企业的用户身份,那么可以使用SAML属性在AWS进行精细的访问控制。属性包括成本中心标识,用户email地址,部门分类,项目分配。当你将这些属性用session tags传递时,你可以基于这些session tags控制访问Amazon的权限。
前提条件
要使用SAML的session tags你必须已经拥有以下内容:
有基于SAML的IdP,在这个IdP你可以创建测试用户,带有指定的属性;
作为管理员登录的权限;
有在AWS创建user,role,group,policy等的经验;
拥有配置基于SAML的IdP到IAM的经验;
Step 1: 创建一个用于SAML 2.0 federation的role
给role起名为access-session-tags
,附加access-same-project-team
的策略(可以参见如何根据标签定义访问Amazon资源的权限),编辑role trust policy使用以下的trust policy。
上面的策略中,AllowSamlIdentityAssumeRole
允许开发(eng)和测试(qas)团队在从ExampleCorpProvider
单点登录到AWS时,代入角色。ExampleCorpProvider
传递的属性中,cost-center
和access- project
的标签可以是任意值。但是access-team
的值必须是“eng”或者“qas”表明身份是开发团队或者测试团队的。
Step 2: 配置SAML IdP
配置你的SAML IdP传递cost-center
, access-project
和 access-team
属性作为session tags。因此,需要包含以下内容到你的SAML assertion:
Step 3: 允许控制台访问
允许SSO SAML用户可以从控制台访问。
Step 4: 测试效果
从IdP创建的用户(带有session tags与secrets的tag是一样的),是否可以查看secrets。以及测试是否可以更新和删除secrets。
最后更新于