目 录CONTENT

文章目录

Amazon QuickSight现支持使用密钥对(Key Pair)认证连接Snowflake数据源

Administrator
2026-02-20 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/amazon-quick-suite-now-supports-key-pair-authentication-to-snowflake-data-source/

原文作者:Vignessh Baskaran, Nithyashree Alwarsamy, Andries Engelbrecht, and Chinnakanu Sai Janakiram


现代企业在连接商业智能平台与云数据仓库时,同时要保持自动化,面临着重大的挑战。基于密码的身份验证引入了安全漏洞、操作摩擦和合规性差距——这在Snowflake即将弃用用户名密码的情况下尤为关键。

Amazon QuickSight(Amazon Quick Suite的一项功能)现在支持使用密钥对身份验证来集成Snowflake,它采用非对称加密技术,使用RSA密钥对取代传统的密码。这一增强功能解决了Snowflake转向弃用基于密码的身份验证这一关键需求,需要更安全的身份验证方法。通过这项新功能,Amazon QuickSight用户可以使用RSA密钥对与Snowflake数据源建立安全、无密码的连接,提供满足企业安全标准的无缝且安全的集成体验。

在本文中,我们将指导您完成通过安全的密钥对身份验证在Amazon QuickSight和Snowflake之间建立数据源连接的步骤。

先决条件

在配置Amazon QuickSight和Snowflake之间的密钥对身份验证之前,请确保您具备以下条件:

  • 一个活跃的Amazon QuickSight 账户以及适当的权限——您需要管理员权限来创建和管理数据源、配置身份验证设置以及向用户授予权限。Amazon QuickSight 企业版许可证或作者角色通常提供足够的访问权限。
  • 一个具有ACCOUNTADMIN、SECURITYADMIN或USERADMIN角色的Snowflake 账户——这些提升的权限对于使用ALTER USER命令分配公钥以及授予仓库和数据库权限至关重要。如果您没有这些角色的访问权限,请联系您的Snowflake管理员寻求帮助。
  • 安装了OpenSSL(用于密钥生成)——此加密工具包以PKCS#8格式生成RSA密钥对。大多数Linux和macOS系统都预装了OpenSSL。Windows用户可以使用Windows Subsystem Linux (WSL) 或单独下载OpenSSL。
  • (可选) AWS Secrets Manager 访问权限(用于基于API的设置)——对于程序化配置是必需的,您需要IAM 权限来创建和管理密钥,以及Amazon QuickSight API访问权限以实现自动化部署和基础设施即代码(IaC)实现。

解决方案演练

我们将指导您完成以下关键步骤,以在Amazon QuickSight和Snowflake之间建立安全的密钥对身份验证:

  1. 生成RSA密钥对——使用OpenSSL并遵循适当的加密标准来创建公钥和私钥
  2. 配置Snowflake用户——将公钥分配给您的Snowflake用户帐户并验证设置
  3. 建立数据源连接性——通过Amazon QuickSight UI进行交互式设置,或使用AWS命令行界面(AWS CLI)进行程序化部署来创建连接

让我们详细探讨每个步骤,并使用密钥对身份验证来保护您的Amazon QuickSight-Snowflake连接!

生成RSA密钥对:

  1. AWS 管理控制台中导航到AWS CloudShell,并执行以下命令生成RSA私钥。系统会提示您输入加密口令。请选择一个强口令并安全存储——稍后生成公钥时需要用到它。
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8

  1. 运行以下命令创建公钥对。系统会提示您输入上一步中使用的口令。
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

  1. 提取私钥内容(包括头部和尾部):
cat rsa_key.p8

这会以以下格式显示您的私钥:

-----BEGIN PRIVATE KEY-----[key content]-----END PRIVATE KEY-----

注意:复制包括-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----行的整个输出。在创建Snowflake数据源连接时,您将使用这个完整的私钥(带头部和尾部)。

  1. Snowflake要求公钥采用特定格式,即不带头部或换行符。运行以下命令提取并正确格式化密钥。
grep -v KEY rsa_key.pub | tr -d '
' | awk '{print $1}' > pub.Key
cat pub.Key

这将显示您的格式化后的公钥字符串。复制此输出——您将在下一步中用它来配置您的Snowflake用户帐户。

将公钥分配给Snowflake用户:

  1. 登录Snowflake并执行以下SQL命令将公钥分配给您的用户:
ALTER USER <username> SET RSA_PUBLIC_KEY='<public_key_content>';
  1. 验证密钥分配:查找RSA_PUBLIC_KEY属性以确认公钥已设置。
DESCRIBE USER <username>;

在Amazon QuickSight UI中建立您的Snowflake连接:

  1. 在AWS管理控制台中导航到Amazon QuickSight,选择数据集。然后选择数据源选项卡,然后选择创建数据源

  1. 创建数据源窗格中,在搜索数据集中输入“snowflake”,选择Snowflake,然后选择下一步

  1. 在新的Snowflake数据源窗格中,输入数据源名称,然后将连接类型输入为“公共网络”或“私有VPC连接”。如果需要VPC连接,请参阅在QuickSight中配置VPC连接
  2. 然后,输入数据库服务器主机名、数据库名称和仓库名称。
  3. 身份验证类型选择为KeyPair,然后输入Snowflake用户的用户名。
  4. 私钥字段中,粘贴cat rsa_key.p8的完整输出(包括BEGIN和END头部)。如果您在密钥生成期间配置了口令,请在可选的“口令”字段中提供它。
  5. 输入完所有字段后,选择验证连接按钮。

  1. 连接验证后,选择创建数据源按钮。
  2. 然后在“数据源”列表中,找到您创建的Snowflake数据源。
  3. 操作菜单中,选择创建数据集选项。

使用Amazon QuickSight API建立您的Snowflake连接:

使用AWS CLI,通过执行以下命令创建Amazon QuickSight数据源连接到Snowflake:

aws quicksight create-data-source \ --aws-account-id 123456789 \ --data-source-id awsclikeypairtest \ --name "awsclikeypairtest" \ --type SNOWFLAKE \ --data-source-parameters '{ "SnowflakeParameters": { "Host": "hostname.snowflakecomputing.com", "Database": "DB_NAME", "Warehouse": "WH_NAME", "AuthenticationType": "KEYPAIR" } }' \ --credentials '{ "KeyPairCredentials": { "KeyPairUsername": "SNOWFLAKE_USERNAME", "PrivateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\nPRIVATE_KEY\n-----END ENCRYPTED PRIVATE KEY-----", "PrivateKeyPassphrase": "******" } }' \ --permissions '[ { "Principal": "arn:aws:quicksight:us-east-1: 123456789:user/default/Admin/username, "Actions": [ "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:DeleteDataSource", "quicksight:UpdateDataSourcePermissions" ] } ]' \ --region us-east-1

使用以下命令检查创建状态:

aws quicksight describe-data-source --region us-east-1 --aws-account-id 123456789 --data-source-id awsclikeypairtest

初始情况下,从describe-data-source命令返回的状态将是CREATION_IN_PROGRESS。如果新数据源准备就绪,该状态将更改为CREATION_SUCCESSFUL

或者,当通过CreateDataSource以编程方式创建数据源时,您可以将用户名、密钥和口令存储在AWS Secrets Manager中,并使用Secret ARN引用它们。

成功创建数据源后,您可以导航到QuickSight控制台。在创建数据集页面上,您可以在数据源列表中看到新创建的数据源连接awsclikeypairtest。然后您可以继续创建数据集。

清理

为避免产生额外费用,请遵循以下步骤清理您的资源:

  1. 在AWS Secrets Manager控制台中删除密钥
  2. 在Amazon QuickSight中删除数据源连接

结论

密钥对身份验证代表了Amazon QuickSight和Snowflake之间安全数据连接的变革性进步。通过消除基于密码的漏洞并采用加密身份验证,组织可以在保持无缝自动化工作流程的同时,实现卓越的安全态势。此实现解决了关键的企业需求,例如通过非对称加密增强安全性、简化服务帐户管理,以及在Snowflake从传统密码方法过渡时遵守不断发展的身份验证标准。

无论是通过直观的Amazon QuickSight UI部署,还是使用AWS CLI进行基础设施即代码(IaC)实现,密钥对身份验证都提供了灵活性,而不会牺牲安全性。与AWS Secrets Manager的集成有助于保护私钥,而简单的设置过程使得在开发、暂存和生产环境中能够快速部署。

随着数据安全性的不断发展,采用密钥对身份验证可将贵组织置于最佳实践的前沿。商业智能团队现在可以专注于从Snowflake数据中提取可操作的见解,而不是管理身份验证复杂性,最终加速洞察获取时间并提高运营效率。

如需进一步阅读,请参阅Snowflake密钥对身份验证


关于作者

Vignessh Baskaran

Vignessh Baskaran 是 Amazon QuickSight 结构化数据领域的高级技术产品经理,致力于推动商业智能和生成式 AI 项目。他在开发大规模数据和分析解决方案方面拥有 9 年以上的经验。在此之前,他曾在 AWS 担任高级分析主管,使用 QuickSight 构建了在全球 AWS 全球专家销售团队中采用的综合性 BI 解决方案。工作之余,他喜欢观看板球、打壁式壁球以及探索西雅图的不同美食。

Chinnakanu Sai Janakiram

Chinnakanu Sai Janakiram 是 Amazon QuickSight 的软件开发工程师,致力于使用 AWS 技术进行云基础设施自动化和功能开发。他在跨 AWS、CI/CD 管道、CloudFormation、React 和 Spring Boot 构建可扩展系统方面拥有 2 年以上的经验。在此之前,他为 AWS 上的数据和分析解决方案做出了贡献,提高了跨区域的部署可靠性和可扩展性。工作之余,他喜欢关注一级方程式赛车(Formula 1)并了解新兴技术。

Nithyashree Alwarsamy

Nithyashree Alwarsamy 是亚马逊云计算服务(AWS)的合作伙伴解决方案架构师,专注于数据和分析解决方案,特别是流媒体和事件驱动架构。Nithyashree 凭借在现代数据架构方面的深厚专业知识,通过将 Snowflake 的云原生数据平台与广泛的 AWS 服务相结合,帮助组织充分发挥其数据的潜力。

Andries Engelbrecht

Andries Engelbrecht 是 Snowflake 的首席合作伙伴解决方案工程师,与 AWS 合作。他支持产品和服务集成,以及与 AWS 的联合解决方案开发。Andries 在数据和分析领域拥有超过 25 年的经验。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区