在 Amazon Redshift 中使用 Immuta 实施访问控制和审计
关键要点 在这篇文章中,我们探讨了如何在 Amazon Redshift 数据仓库中利用 Immuta实现有效的访问控制和审计功能。本文将详细介绍如何设置集成过程,并确保数据的安全管理。
本文由 Matt Vogt 和其他作者共同撰写。
组织正在寻找能让他们减少数据管理时间并将精力放在核心业务活动上的产品。数据安全是管理数据仓库的关键功能之一。通过与
的集成,用户和数据安全操作可以通过直观的用户界面进行管理。本文描述了如何设置集成、访问控制、治理以及用户和数据策略。
是一个完全管理的、支持 PB规模、并行处理的数据仓库,使得通过标准 SQL 及现有的商业智能 (BI) 工具快速经济地分析所有数据成为可能。目前,数万名客户在 AmazonRedshift 上运行关键的业务负载。Amazon Redshift 本身支持粗粒度和细粒度的访问控制,包括
、、、 和
。
解决方案概述
在本文中,我们将讨论如何利用 Immuta 定义合适的访问级别来保护 Redshift中的数据。以下是一些示例数据集和用户角色,这些数据集、用户组和访问策略仅用于说明,已简化以示实现思路。
数据集:
- 患者:包含患者的个人信息,如姓名、地址、出生日期、电话号码、性别和医生 ID
- 病史:包含患者的医疗状况历史
- 免疫接种:包含患者的免疫记录
- 就诊记录:包含患者的医疗访问及相关费用
用户组:
- 医生:用户为医生的群组
- 护士:用户为护士的群组
- 管理员:管理用户的群组
以下是需要实施的四项权限策略:
- 医生应能访问所有四个数据集,但每位医生只能查看自己患者的数据,而不能看到所有患者的数据。
- 护士只能访问患者和免疫接种的数据,并且可以看到所有患者的数据。
- 管理员只能访问患者和就诊记录的数据,并且可以看到所有患者的数据。
- 所有用户的社会保障号码和护照信息应被屏蔽。
前提条件
在开始实施解决方案之前,请完成以下步骤:
- ,以加载示例数据并创建用户。
- 。 本文实施中需使用以下用户名称:
david
、chris
、jon
、ema
、jane
- 在 Immuta 中创建用户,具体操作请参见 。您还可以将身份管理器与 Immuta 集成,以共享用户名。在本文示例中,将使用本地用户。
- David Mill、Dr Chris、Dr Jon King、Ema Joseph、Jane D。
删除)
- 本文使用 ,但您也可以使用软件即服务 (SaaS) 部署或自我管理部署。
- 下载 ,并将其上传到您的 Amazon Simple Storage Service (Amazon S3)。该数据为合成数据,不包含真实数据。
- 下载 ,并将 COPY 命令中的 Amazon S3 文件路径替换为您帐户中已上传文件的路径。
实施
以下图示描述了后续部分的高层步骤,这些步骤将用于构建解决方案。
删除)
1. 映射用户
- 在 Immuta 门户中,导航到 人员 并选择 用户 。选择要映射到 Amazon Redshift 用户名的用户名。
- 选择 Amazon Redshift 用户名的 编辑 ,并输入相应的 Redshift 用户名。
删除)
- 对其他用户重复上述步骤。
2. 设置本地集成
要使用 Immuta,您必须配置 Immuta 本地集成,这需要特权访问权限以管理 Redshift 数据仓库中的策略。有关详细要求,请参见 Immuta
。
按以下步骤创建 Amazon Redshift 和 Immuta 之间的本地集成。
- 在 Immuta 中,选择导航窗格中的 应用设置 。
- 单击 集成 。
- 单击 添加本地集成 。
删除)
- 输入 Redshift 数据仓库的终端节点名称、端口号及 Immuta 将创建策略的数据库名称。
删除)
- 输入特权用户凭证以连接管理权限。这些凭据不会存储在 Immuta 平台上,仅用于一次性设置。
删除)
- 您应该会看到成功集成的状态为 已启用 。
3. 创建连接
接下来,您需要创建与 Redshift 数据仓库的连接,并选择要导入的特定数据来源。
- 在 Immuta 中,选择 数据来源 ,然后在导航窗格中选择 新数据来源 。
- 选择 Redshift 作为 数据平台 。
删除)
- 输入 Redshift 数据仓库的终端节点作为 服务器 ,并输入连接的凭据。确保 Redshift 安全组设置了入站规则以开放来自 。
删除)
- Immuta 将显示连接数据库上可用的架构。
- 选择架构/表部分下的 编辑 。
删除)
- 从显示的架构列表中选择 pschema 。
删除)
- 将其余选项的值保持为默认,并选择 创建 。这将导入数据集的元数据并运行默认的数据发现。2到5分钟后,您应该会看到表格已导入,状态为 健康 。
删除)
4. 标记数据字段
Immuta使用默认框架自动标记数据成员。您可能希望将自定义标签添加到数据字段以满足用例。在本节中,您将创建自定义标签并将其附加到数据字段。您还可以选择与外部数据目录
(例如
Alation 或 Colibra)。在此示例中,您将使用自定义标签。
创建标签
- 在 Immuta 中,选择导航窗格中的 治理 ,然后选择 标签 。
- 选择 添加标签 以打开 标签生成器 对话框。
删除)
- 输入 “Sensitive” 作为自定义标签,并选择 保存 。
删除)
- 重复步骤 1-3 创建以下标签:
- Doctor ID :标记医生 ID 字段。它将用于定义基于属性的访问政策(ABAC)。
- Doctor Datasets :标记医生可访问的数据源。
- Admin Datasets :标记管理员可访问的数据源。
- Nurse Datasets :标记护士可访问的数据源。
添加标签
现在,在 Pschema Patient 数据源中将 Sensitive 标签添加到 ssn 和 passport 字段。
- 在 Immuta 中,选择 数据 ,然后在导航窗格中选择 数据源 ,选择 Pschema Patient 作为数据源。
- 选择 数据字典 选项卡。
- 在列表中找到 ssn ,并选择 添加标签 。
删除)
- 搜索 Sensitive 标签并选择 添加 。
删除)
- 对 passport 字段重复相同的步骤。
- 您应该会看到标签已应用到字段。
删除)
- 使用相同的程序为 Pschema Patients 数据源中的 drid (医生 ID)字段添加 Doctor ID 标签。
删除)
现在,根据您正在构建的访问政策标记数据源。
- 选择 数据 ,然后 数据源 ,选择 Pschema Patients 作为数据源。
- 向下滚动至 标签 ,选择 添加标签 。
- 将 Doctor Datasets 、Nurse Datasets 和 Admin Datasets 标签添加到患者数据源(因为该数据源应被医生、护士和管理员组访问)。
数据源 | 标签 |
---|
Patients | Doctor Datasets、Nurse Datasets、Admin Datasets |
Conditions | Doctor Datasets |
Immunizations | Doctor Datasets、Nurse Datasets |
Encounters | Doctor Datasets、Admin Datasets |
您可以根据组织的数据分类规则创建更多标签并标记字段。 Immuta 数据源页面是管理人员与治理人员将花费大量时间的地方。
5. 创建用户组并添加用户
您必须在定义策略之前创建用户组。
- 在 Immuta 中,选择 人员 ,然后在导航窗格中选择 组 ,接着选择 新组 。
- 输入 doctor 作为组名称,并选择 保存 。
- 重复步骤 1 和 2 创建以下组:
nurse
admin
- 您应该看到创建了三个组。
删除)
接下来,您需要将用户添加到这些组中。
- 选择 人员 ,然后在导航窗格中选择 组 。
- 选择 doctor 。
- 选择 设置 ,在 成员 中选择 添加成员 。
- 在搜索框中搜索 Dr Jon King ,从结果中选择该用户,选择 关闭 以添加用户并退出屏幕。
- 您应该看到 Dr Jon King 已添加到 doctor 。
删除)
- 重复以上步骤以添加以下用户,如下所示的表格所示。
组 | 用户 |
---|
Doctor | Dr Jon King、Dr Chris |
Nurse | Jane D |
admin | David Mill、Ema Joseph |
6. 向用户添加属性
安全要求之一是医生只能看到自己的患者数据,不能看到其他医生的患者数据。为实现此要求,您必须为用户(医生)定义属性。
- 在导航窗格中选择 人员 并选择 用户 ,然后选择 Dr Chris 。
- 选择 设置 ,向下滚动至 属性 。
- 选择 添加属性 。将
drid
作为 属性 输入,将 d1001
作为 属性值 输入。 - 这将把
d1001
的属性值分配给 Dr Chris。在第 8 步 定义数据策略 中,您将定义一个策略以显示与匹配的 drid
属性值对应的数据。
删除)
- 对 Dr Jon King 重复步骤 1-4,输入
d1002
作为 属性值 。
7. 创建订阅策略
在本节中,您将根据权限策略为组提供数据源访问。
- 医生可以访问所有四个数据集:患者、病史、免疫接种和就诊记录。
- 护士只能访问患者和免疫接种数据。
- 管理员只能访问患者和就诊记录数据。
在第 4. 标记数据字段 中,您已向数据集添加标签,如下表所示。现在,您将使用这些标签来定义订阅策略。
数据源 | 标签 |
---|
Patients | Doctor Datasets、Nurse Datasets、Admin Datasets |
Conditions | Doctor Datasets |
Immunizations | Doctor Datasets、Nurse Datasets |
Encounters | Doctor Datasets、Admin Datasets |
- 在 Immuta 中,选择 策略 ,然后在导航窗
Leave a Reply