自动为身份提供者创建 Amazon Redshift 角色
借助此特征,您可以根据身份提供者(IdP)的组成员资格在 Redshift 中自动创建角色。自动创建角色支持具有本机 IdP 集成的 Azure Active Directory。
自动创建角色有几个好处。自动创建角色时,Redshift 会在您的 IdP 中创建具有组成员资格的角色,因此您可以避免繁琐的手动角色创建和维护。还可以选择筛选映射到 Redshift 角色的组。
工作方式
当您以 IdP 用户身份登录 Redshift 时,会发生以下一系列事件:
-
Redshift 从 IdP 那里检索您的组成员资格。
-
Redshift 使用角色格式
idp_namespace:rolename
自动创建映射到这些组的角色。 -
Redshift 授予您使用映射角色的权限。
每次用户登录时,都会自动创建目录中不存在但该用户所属的每个组。您可以选择设置包括和排除筛选条件,从而控制哪些 IdP 组已创建 Redshift 角色。
配置自动创建角色
使用 CREATE IDENTITY PROVIDER
和 ALTER IDENTITY PROVIDER
命令启用和配置自动角色创建。
-- Create a new IdP with auto role creation enabled CREATE IDENTITY PROVIDER <idp_name> TYPE azure NAMESPACE '<namespace>' APPLICATION_ARN 'app_arn' IAM_ROLE 'role_arn' AUTO_CREATE_ROLES TRUE; -- Enable on existing IdP ALTER IDENTITY PROVIDER <idp_name> AUTO_CREATE_ROLES TRUE; -- Disable ALTER IDENTITY PROVIDER <idp_name> AUTO_CREATE_ROLES FALSE;
筛选组
您可以选择使用 INCLUDE
和 EXCLUDE
模式筛选映射到 Redshift 角色的 IdP 组。当模式冲突时,EXCLUDE
优先于 INCLUDE
。
-- Only create roles for groups with 'dev' CREATE IDENTITY PROVIDER <idp_name> TYPE azure ... AUTO_CREATE_ROLES TRUE INCLUDE GROUPS LIKE '%dev%'; -- Exclude 'test' groups ALTER IDENTITY PROVIDER <idp_name> AUTO_CREATE_ROLES TRUE EXCLUDE GROUPS LIKE '%test%';
示例
以下示例说明了如何启用自动创建角色而不进行筛选。
CREATE IDENTITY PROVIDER prod_idc TYPE azure ... AUTO_CREATE_ROLES TRUE;
以下示例包括开发组,不包括测试组。
ALTER IDENTITY PROVIDER prod_idc AUTO_CREATE_ROLES TRUE INCLUDE GROUPS LIKE '%dev%' EXCLUDE GROUPS LIKE '%test%';
最佳实践
为角色启用自动创建功能时,请考虑遵循以下最佳实践:
-
使用
INCLUDE
和EXCLUDE
筛选条件来控制哪些组获得角色。 -
定期审核角色并清理未使用的角色。
-
利用 Redshift 角色层次结构来简化权限管理。