本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Snowflake 搭配 Amazon Quick
Snowflake 是一个 AI 数据云平台,提供从数据仓库和协作到数据科学和生成式人工智能的数据解决方案。Snowflake 是一家拥有多项 Amazon 认证的Amazon
合作伙伴
Amazon Quick Sight 提供了两种连接 Snowflake 的方式:使用你的 Snowflake 登录凭证或使用客户证书。 OAuth 使用以下部分来了解这两种连接方法。
使用登录凭据创建与 Snowflake 的 Quick Sight 数据源连接
使用本节学习如何使用你的 Snowflake 登录凭据在 Quick Sight 和 Snowflake 之间建立连接。Quick Sight 和 Snowflake 之间的所有流量均通过 SSL 启用。
在 Quick Sight 和 Snowflake 之间创建连接
-
打开 Quick Suite 控制台
。 -
在左侧导航窗格中,选择数据,然后选择创建,然后选择新建数据集。
-
选择 Snowflake 数据来源卡片。
-
在出现的弹出窗口中,输入以下信息:
-
对于数据来源名称,为您的 Snowflake 数据来源连接输入描述性名称。您可以通过与 Snowflake 的连接创建许多数据集,因此最好使用简洁的名称。
-
对于连接类型,选择正在使用的网络类型。如果您的数据是公开共享的,请选择公共网络。如果数据位于 VPC 内,请选择 VPC。要在 Quick Sight 中配置 VPC 连接,请参阅在 Amazon Quick Suite 中管理 VPC 连接。
-
对于数据库服务器,输入在 Snowflake 连接详细信息中指定的主机名。
-
-
在数据库名称和仓库中,输入要连接的相应 Snowflake 数据库和仓库。
-
对于用户名和密码,输入您的 Snowflake 凭证。
在 Quick Sight 账户和 Snowflake 账户之间成功创建数据源连接后,就可以开始创建数据集创建包含 Snowflake 数据的数据源连接了。
使用客户端凭OAuth据创建与 Snowflake 的 Quick Sight 数据源连接
你可以使用OAuth客户凭据通过 Quick Sight 将你的 Quick Sight 账户与 Snowflake 关联起来。 APIs OAuth是一种标准授权协议,通常用于具有高级安全要求的应用程序。当你使用 OAuth 客户端凭据连接到 Snowflake 时,你可以使用 Quick Sight APIs 和 Quick Sight 用户界面创建包含 Snowflake 数据的数据集。有关在 Snowflake 中配置 OAuth 的更多信息,请参阅 Snowflake OAuth overview
Quick Sight 支持client credentialsOAuth授权类型。 OAuth客户端凭证用于获取用于 machine-to-machine通信的访问令牌。此方法适用于客户端需要访问服务器上托管的资源而无需用户参与的情况。
在 OAuth 2.0 的客户端凭证流中,有几种客户端身份验证机制可用于向授权服务器对客户端应用程序进行身份验证。Quick Sight 支持基于 OAuth Snowflake 的客户端凭证,用于以下两种机制:
-
令牌(基于客户端密钥的 OAuth):基于密钥的客户端身份验证机制与客户端凭证一起使用来授予流,以便向授权服务器进行身份验证。此身份验证方案要求将 OAuth 客户端应用的
client_id和client_secret存储在 Secrets Manager 中。 -
X509(基于客户端私有密钥 JWT 的 OAuth):基于 X509 证书密钥的解决方案为 OAuth 机制提供了额外的安全层,使用客户端证书(而非客户端密钥)进行身份验证。此方法主要由私有客户端使用,他们使用此方法向授权服务器进行身份验证,并且两个服务之间具有很强的信任度。
Quick Sight 已验证与以下身份提供商的OAuth连接:
-
OKTA
-
PingFederate
在 Secrets Manager 中存储 OAuth 凭证
OAuth 客户端凭证仅用于 machine-to-machine用例,不是为交互式而设计的。要在 Quick Sight 和 Snowflake 之间创建数据源连接,请在 Secrets Manager 中创建一个包含你的客户端应用程序凭据的新密钥。OAuth使用新密钥创建的秘密 ARN 可用于在 Quick Sight 中创建包含 Snowflake 数据的数据集。有关在 Quick Sight 中使用 Secrets Manager 密钥的更多信息,请参阅在 Quick Suite 中使用 Amazon Secrets Manager 密钥而不是数据库凭证。
您需要在 Secrets Manager 中存储的凭证由您使用的 OAuth 机制决定。基于 X509 OAuth 的密钥需要以下 key/value 配对:
-
username:连接到 Snowflake 时要使用的 Snowflake 账户用户名 -
client_id:OAuth 客户端 ID -
client_private_key:OAuth 客户端私有密钥 -
client_public_key:OAuth 客户端证书公钥及其加密算法(例如{"alg": "RS256", "kid", "cert_kid"})
基于令牌OAuth的密钥需要以下 key/value 配对:
-
username:连接到 Snowflake 时要使用的 Snowflake 账户用户名 -
client_id:OAuth 客户端 ID -
client_secret:OAuth 客户端密钥
使用 Quick Sight 创建 Snowflake OAuth 连接 APIs
在 Secrets Manager 中创建包含你的 Snowflake OAuth 凭据的密钥并将你的 Quick Suite 账户关联到 Secrets Manager 后,你可以使用 Quick Sight 和 SDK 在 Quick Sight 和 Snowflake 之间建立数据源连接。 APIs 以下示例使用令牌OAuth客户端凭据创建 Snowflake 数据源连接。
{ "AwsAccountId": "AWSACCOUNTID", "DataSourceId": "UNIQUEDATASOURCEID", "Name": "NAME", "Type": "SNOWFLAKE", "DataSourceParameters": { "SnowflakeParameters": { "Host": "HOSTNAME", "Database": "DATABASENAME", "Warehouse": "WAREHOUSENAME", "AuthenticationType": "TOKEN", "DatabaseAccessControlRole": "snowflake-db-access-role-name", "OAuthParameters": { "TokenProviderUrl": "oauth-access-token-endpoint", "OAuthScope": "oauth-scope", "IdentityProviderResourceUri" : "resource-uri", "IdentityProviderVpcConnectionProperties" : { "VpcConnectionArn": "IdP-VPC-connection-ARN" } } }, "VpcConnectionProperties": { "VpcConnectionArn": "VPC-connection-ARN-for-Snowflake" } "Credentials": { "SecretArn": "oauth-client-secret-ARN" } }
有关 CreateDatasource API 操作的更多信息,请参阅CreateDataSource。
在 Quick Sight 和 Snowflake 之间建立连接并使用 Quick Sight APIs 或 SDK 创建数据源后,新的数据源将显示在 Quick Sight 中。Quick Sight 作者可以使用此数据源来创建包含 Snowflake 数据的数据集。表的显示基于在 CreateDataSource API 调用中传递的 DatabaseAccessControlRole 参数中使用的角色。如果在创建数据来源连接时未定义此参数,则使用默认 Snowflake 角色。
在 Quick Sight 账户和 Snowflake 账户之间成功创建数据源连接后,就可以开始创建数据集创建包含 Snowflake 数据的数据源连接了。