亚马逊雅典娜 是一种交互式查询服务,可以更轻松地直接在 亚马逊简单存储服务 (Amazon S3) 使用标准 SQL。 云运营团队可以使用 AWS身份和访问管理 (IAM) 联合集中管理对 Athena 的访问。 这允许管理团队控制用户从连接到本地 Active Directory 的集中管理的 Azure AD 访问 Athena 工作组,从而简化了管理。 此设置减少了云运营团队在管理 IAM 用户时的开销体验。 Athena 支持与 Active Directory Federation Service (ADFS)、PingFederate、Okta 和 Microsoft Azure Active Directory (Azure AD) 联合的联合。
这篇博文说明了如何使用连接到本地 AD 的 Azure AD 设置 AWS IAM 联合,并为不同的用户配置 Athena 工作组级别的访问权限。 我们将涵盖两种情况:
- Azure AD 托管用户和组,以及本地 AD。
- 同步到 Azure AD 的本地 Active Directory 管理用户和组。
我们不介绍如何借助 Azure AD 连接在本地 AD 和 Azure AD 之间设置同步。 有关如何将 Azure AD 与 AWS Managed AD 集成的更多信息,请参阅 在没有用户密码同步的情况下使用 AWS Managed Microsoft AD 启用 Office 365 以及如何将 Azure AD 与本地 AD 集成,请参阅 Microsoft 文章 Azure Active Directory Connect 的自定义安装.
解决方案概述
此解决方案可帮助您使用连接到本地 AD 的 Azure AD 配置 IAM 联合,并为用户配置 Athena 工作组级别的访问权限。 您可以通过本地 AD 组或 Azure AD 组控制对工作组的访问。 该解决方案包括四个部分:
- 将 Azure AD 设置为身份提供者 (IdP):
- 将 Azure AD 设置为 AWS 单账户应用程序的 SAML IdP。
- 使用委派权限配置 Azure AD 应用。
- 设置您的 IAM IdP 和角色:
- 设置信任 Azure AD 的 IdP。
- 设置具有读取角色权限的 IAM 用户。
- 为每个 Athena 工作组设置 IAM 角色和策略。
- 在 Azure AD 中设置用户访问权限:
- 设置自动 IAM 角色配置。
- 设置用户对 Athena 工作组角色的访问权限。
- 访问雅典娜:
下图说明了该解决方案的体系结构。
解决方案工作流程包括以下步骤:
- 开发人员工作站通过 SQL Workbench/j JDBC Athena 驱动程序连接到 Azure AD 以请求 SAML 令牌(两步 OAuth 过程)。
- Azure AD 通过 Azure AD 直通代理或 ADFS 将身份验证流量发送回本地。
- Azure AD 直通代理或 ADFS 连接到本地 DC 并对用户进行身份验证。
- 直通代理或 ADFS 向 Azure AD 发送成功令牌。
- Azure AD 构建一个包含分配的 IAM 角色的 SAML 令牌并将其发送到客户端。
- 客户端连接到 AWS安全令牌服务 (AWS STS) 并提供 SAML 令牌以承担 Athena 角色并生成临时凭证。
- AWS STS 向客户端发送临时凭证。
- 客户端使用临时凭证连接到 Athena。
先决条件
在配置解决方案之前,您必须满足以下要求:
- 在 Azure AD 端,完成以下操作:
- 设置 Azure AD Connect 服务器并与本地 AD 同步
- 在 Azure AD 和本地 AD 之间设置 Azure AD 直通或 Microsoft ADFS 联合
- 创建三个用户(
user1
,user2
,user3
) 和三组 (athena-admin-adgroup
,athena-datascience-adgroup
,athena-developer-adgroup
) 针对三个相应的 Athena 工作组
- 在 Athena 端,创建三个 Athena 工作组:
athena-admin-workgroup
,athena-datascience-workgroup
,athena-developer-workgroup
有关使用示例 Athena 工作组的更多信息,请参阅 用于分析 COVID-19 数据的公共数据湖.
设置 Azure AD
在本节中,我们将介绍 Microsoft Azure 订阅中 Athena 的 Azure AD 配置详细信息。 主要是注册一个app,配置federation,委托app权限,生成app secret。
将 Azure AD 设置为 AWS 单账户应用程序的 SAML IdP
要将 Azure AD 设置为您的 SAML IdP,请完成以下步骤:
- 登录 Azure 门户 使用 Azure AD 全局管理员凭据。
- Azure Active Directory.
- 企业应用程序.
- 新应用程序.
- 寻找
Amazon
在搜索栏中。 - AWS 单账户访问.
- 针对 名, 进入
Athena-App
. - 创建。
- 在 入门 部分,下 设置单点登录,选择 前往在线商城.
- 针对 选择单点登录方式,选择 安全反洗钱.
- 针对 基本 SAML 配置,选择 编辑。
- 针对 标识符(实体 ID),输入
https://signin.aws.amazon.com/saml#1
. - 保存.
- 下 SAML 签名证书,为 联邦元数据 XML,选择 下载.
在下一节中配置您的 IAM IdP 需要此文件。 将此文件保存在您的本地计算机上,以便稍后在 AWS 上配置 IAM 时使用。
使用委派权限配置 Azure AD 应用
要配置您的 Azure AD 应用,请完成以下步骤:
- Azure Active Directory.
- 应用注册 和 所有应用程序.
- 搜索并选择 雅典娜应用程序.
- 注意值 应用程序(客户端)ID 和 目录(租户)ID.
当您连接到 Athena 时,您需要在 JDBC 连接中使用这些值。
- 下 API权限,选择 添加权限.
- 微软图 和 委派权限.
- 针对 选择权限, 搜索
user.read
. - 针对 用户,选择 用户.读取.
- 添加权限.
- 授予管理员同意 和 USB MIDI(XNUMX通道).
- 认证 和 添加平台.
- 移动和桌面应用程序.
- 下 自定义重定向 URI,输入
http://localhost/athena
. - 配置.
- 证书和秘密 和 新客户机密.
- 输入描述。
- 针对 到期日期,选择 24个月.
- 复制客户端密码值以在配置 JDBC 连接时使用。
设置 IAM IdP 和角色
在本节中,我们将介绍 AWS 账户中的 IAM 配置。 主要我们将创建一个 IAM 用户、角色和策略。
设置信任 Azure AD 的 IdP
要设置您的 IdP 信任 Azure AD,请完成以下步骤:
- 在IAM控制台上,选择 身份提供者 在导航窗格中。
- 添加提供商.
- 针对 提供者类型,选择 安全反洗钱.
- 针对 提供者名称,输入
AzureADAthenaProvider
. - 针对 元数据文件, 上传从 Azure 门户下载的文件。
- 添加提供商.
设置具有读取角色权限的 IAM 用户
要设置您的 IAM 用户,请完成以下步骤:
- 在IAM控制台上,选择 用户 在导航窗格中。
- 添加用户.
- 针对 用户名,输入
ReadRoleUser
. - 针对 访问类型, 选择 程序访问.
- 下一页:权限.
- 针对 设定权限,选择 直接附加现有策略.
- 建立政策.
- 选择 JSON 并输入以下策略,以授予对 IAM 中的枚举角色的读取访问权限:
- 下一页:标签.
- 下一篇:复习.
- 针对 名字,输入
readrolepolicy
. - 建立政策.
- 点击 添加用户 选项卡,搜索并选择角色
readrole
. - 下一页:标签.
- 下一篇:复习.
- 创建用户.
- 下载包含访问密钥 ID 和秘密访问密钥的 .csv 文件。
我们在配置 Azure AD 自动预配时使用这些。
为每个 Athena 工作组设置 IAM 角色和策略
要为您的 Athena 工作组设置 IAM 角色和策略,请完成以下步骤:
- 在IAM控制台上,选择 角色 在导航窗格中。
- 创建角色.
- 针对 选择可信实体的类型,选择 SAML 2.0 联盟.
- 针对 SAML 提供商,选择 AzureADAthena提供商.
- 允许编程和 AWS 管理控制台访问.
- 下 Condition,选择 键.
- 选择 SAML:音频.
- 针对 Condition, 选择 字符串等于.
- 针对 值,输入
http://localhost/athena
. - 下一页:权限.
- 建立政策.
- JSON 并输入以下策略(提供您的工作组的 ARN):
该策略授予对 Athena 工作组的完全访问权限。 它基于 AWS 托管策略 AmazonAthenaFullAccess
和 工作组示例策略.
- 下一页:标签.
- 下一篇:复习.
- 针对 名字,输入
athenaworkgroup1policy
. - 建立政策.
- 点击 创建角色 标签,搜索
athenaworkgroup1policy
并选择策略。 - 下一页:标签.
- 下一篇:复习.
- 创建角色.
- 针对 名字,输入
athenaworkgroup1role
. - 创建角色.
在 Azure AD 中设置用户访问权限
在本节中,我们将设置自动配置并将用户分配给来自 Microsoft Azure 门户的应用程序。
设置自动 IAM 角色配置
要设置自动 IAM 角色配置,请完成以下步骤:
- 登录 Azure 门户 使用 Azure AD 全局管理员凭据。
- Azure Active Directory.
- 企业应用 并选择 雅典娜应用程序.
- 提供用户帐户.
- 在 供应 部分中,选择 前往在线商城.
- 针对 配置模式,选择 自动表.
- 扩大 管理员凭据 并填充 客户秘密 和 秘密令牌 使用访问密钥 ID 和秘密访问密钥
ReadRoleUser
。 - 测试连接 和 保存.
- 开始供应.
初始周期可能需要一些时间才能完成,之后 IAM 角色将填充到 Azure AD 中。
设置用户对 Athena 工作组角色的访问权限
要设置用户对工作组角色的访问权限,请完成以下步骤:
- 登录到 Azure 门户 使用 Azure AD 全局管理员凭据。
- Azure Active Directory.
- 企业应用 并选择 雅典娜应用程序.
- 分配用户和组 和 添加用户/组.
- 下 用户和组,选择您要为其分配 Athena 权限的组。 对于这篇文章,我们使用
athena-admin-adgroup
; 或者,您可以选择 user1。 - 选择.
- 针对 选择一个角色, 选择角色
athenaworkgroup1role
. - 选择.
- 分配.
访问雅典娜
在本节中,我们将演示如何从 AWS 控制台和开发人员工具 SQL Workbench/J 访问 Athena
使用基于 Web 的 Microsoft My Apps 门户访问 Athena
要使用 Microsoft My Apps 门户访问 Athena,请完成以下步骤:
- 登录到 Azure 门户 使用 Azure AD 全局管理员凭据。
- Azure Active Directory
- 企业应用 并选择 雅典娜应用程序.
- 查看房源.
- 复制以下值 用户访问网址.
- 打开 Web 浏览器并输入 URL。
该链接将您重定向到 Azure 登录页面。
- 使用本地用户凭据登录。
您已重定向到 AWS管理控制台.
使用 SQL Workbench/J 访问 Athena
在受到严格监管的组织中,不允许内部用户使用控制台访问 Athena。 在这种情况下,您可以使用 SQL Workbench/J,这是一种开源工具,可以使用 JDBC 驱动程序连接到 Athena。
- 下载最新的 雅典娜 JDBC 驱动程序 (根据您的 Java 版本选择合适的驱动程序)。
- 下载并安装 SQL 工作台/J.
- 打开 SQL Workbench/J。
- 点击 文件 菜单中选择 连接窗口.
- 管理司机.
- 针对 名字, 输入驱动程序的名称。
- 浏览到您下载并解压缩驱动程序的文件夹位置。
- OK.
现在我们配置了 Athena 驱动程序,是时候连接到 Athena 了。 您需要填写连接 URL、用户名和密码。
使用以下连接字符串通过没有 MFA 的用户帐户连接到 Athena(提供帖子前面收集的值):
要使用启用了 MFA 的用户帐户进行连接,请使用浏览器 Azure AD Credentials Provider。 您需要构造连接URL并填写用户名Username和password
使用以下连接字符串通过启用了 MFA 的用户帐户连接到 Athena(提供您之前收集的值):
建立连接后,您可以对 Athena 运行查询。
代理配置
如果您通过代理服务器连接到 Athena,请确保代理服务器允许端口 444。结果集流 API 使用端口 444 在 Athena 服务器上进行出站通信。 设置 ProxyHost
属性设置为代理服务器的 IP 地址或主机名。 设置 ProxyPort
属性设置为代理服务器用于侦听客户端连接的 TCP 端口号。 请参见以下代码:
总结
在本文中,我们使用连接到本地 AD 的 Azure AD 配置了 IAM 联合,并设置了对 Athena 工作组的精细访问。 我们还研究了如何使用 Microsoft My Apps Web 门户和 SQL Workbench/J 工具通过控制台访问 Athena。 我们还讨论了连接如何通过代理工作。 同样的联合基础设施也可以用于 ODBC 驱动程序配置。 您还可以使用本文中的说明设置基于 SAML 的 Azure IdP 以启用对 Athena Workgroups 的联合访问。
关于作者
尼拉伊·库玛(Niraj Kumar) 是 AWS 金融服务的首席技术客户经理,他帮助客户以安全可靠的方式在 AWS 上设计、构建、构建、操作和支持工作负载。 他在企业架构、云和虚拟化、安全、IAM、解决方案架构以及信息系统和技术领域拥有超过 20 年的丰富 IT 经验。 在空闲时间,他喜欢指导、教练、徒步旅行、和儿子一起看纪录片,每天阅读不同的东西。
- '
- &
- 100
- 11
- 420
- 7
- 9
- ACCESS
- 账号管理
- 操作
- 要积极。
- 活动目录
- Ad
- 管理员
- 所有类型
- 允许
- Amazon
- 分析
- API
- 应用
- 应用领域
- 应用
- 架构
- 刊文
- 认证
- AWS
- Azure
- 博客
- 浏览器
- 建立
- 例
- 云端技术
- 码
- 通信
- 地都
- 连接
- 连接方式
- 同意
- Covid-19
- 资历
- 跨平台
- 合作伙伴
- data
- 数据湖
- 天
- dc
- 设计
- 开发商
- 纪录片
- 司机
- 企业
- 体验
- 字段
- 金融
- 金融服务
- Free
- ,
- 全球
- 补助金
- 团队
- 创新中心
- How To
- HTTPS
- IAM
- 身分
- 信息
- 基础设施
- 互动
- IP
- IP地址
- IT
- 爪哇岛
- 键
- 最新
- Level
- 友情链接
- 本地
- 圖書分館的位置
- 看着
- 颠覆性技术
- 外交部
- 微软
- 联络号码
- 旅游导航
- 办公室365
- 组织
- 密码
- 插入
- 政策
- 政策
- 门户网站
- 校长
- 财产
- 代理
- 国家
- 阅读
- 重定向
- 岗位要求
- 资源
- 运行
- 搜索
- 保安
- 特色服务
- 集
- 简易
- 是
- SQL
- 个人陈述
- 存储
- 流
- 订阅
- 成功
- SUPPORT
- 支持
- 产品
- 文案
- 技术
- 临时
- 次
- 象征
- 交通
- 用户
- 折扣值
- 卷筒纸
- 网页浏览器
- 工作流程
- 合作
- 年