本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用OAuth客户凭证创建与 Starburst 的亚马逊 QuickSight 数据源连接
您可以使用OAuth客户凭据通过将您的 QuickSight 账户与 Starburst 关联起来。QuickSight APIs OAuth是一种标准授权协议,通常用于具有高级安全要求的应用程序。当您使用OAuth客户端凭据连接到 Starburst 时,可以在用户界面中使用 QuickSight APIs 和创建包含 Starburst 数据的数据集。 QuickSight 有关OAuth在 Starburst 中进行配置的更多信息,请参阅 OAuth2.0 身份验证
QuickSight 支持client credentials
OAuth授权类型。 OAuth客户端凭证用于获取用于 machine-to-machine通信的访问令牌。此方法适用于客户端需要在没有用户参与的情况下访问服务器上托管的资源的场景。
在 OAuth 2.0 的客户端凭证流程中,有几种客户端身份验证机制可用于通过授权服务器对客户端应用程序进行身份验证。 QuickSight 支持基于 Starburst OAuth 的客户端凭证,用于以下两种机制:
-
令牌(基于客户端密钥OAuth):基于密钥的客户端身份验证机制与客户端凭据一起使用,以授予流量,以便通过授权服务器进行身份验证。此身份验证方案要求将OAuth客户端应用程序
client_secret
的client_id
和存储在 Secrets Manager 中。 -
X509(基于 JWT 的客户端私钥OAuth):基于 X509 证书密钥的解决方案为该OAuth机制提供了额外的安全层,其客户端证书用于身份验证而不是客户端密钥。此方法主要由私有客户端使用,他们使用此方法向授权服务器进行身份验证,并且两个服务之间具有很强的信任度。
QuickSight 已验证与以下身份提供商的OAuth连接:
-
OKTA
-
PingFederate
在 Secrets Manager 中存储OAuth凭证
OAuth客户端凭证仅用于 machine-to-machine用例,不是为交互式而设计的。要在 QuickSight 和 Starburst 之间创建数据源连接,请在 Secrets Manager 中创建一个包含您的客户端应用程序凭据的新密钥。OAuth使用新密钥创建的机密 ARN 可用于创建包含 Starburst 数据的数据集。 QuickSight有关在中使用 Secrets Manager 密钥的更多信息 QuickSight,请参阅在 Amazon 中使用 AWS Secrets Manager 密钥代替数据库凭证 QuickSight。
你需要存储在 Secrets Manager 中的凭证由你使用的OAuth机制决定。基于 X509 OAuth 的密钥需要以下 key/value 配对:
-
username
: 连接到 Starburst 时要使用的 Starburst 账户用户名 -
client_id
: OAuth 客户端 ID -
client_private_key
: OAuth 客户端私钥 -
client_public_key
: OAuth 客户端证书公钥及其加密算法(例如,{"alg": "RS256", "kid", "cert_kid"}
)
基于令牌OAuth的密钥需要以下 key/value 配对:
-
username
: 连接到 Starburst 时要使用的 Starburst 账户用户名 -
client_id
: OAuth 客户端 ID -
client_secret
: OAuth 客户端密钥
创建与 Starburst 的OAuth连接 QuickSight APIs
在 Secrets Manager 中创建包含你的 Starburst OAuth 凭据的密钥并将你的 QuickSight 账户关联到 Secrets Manager 之后,你可以使用和 SDK 在 QuickSight 和 Starburst 之间建立数据源连接。 QuickSight APIs 以下示例使用令牌OAuth客户端凭据创建 Starburst 数据源连接。
{ "AwsAccountId": "
AWSACCOUNTID
", "DataSourceId": "DATASOURCEID
", "Name": "NAME
", "Type": "STARBURST", "DataSourceParameters": { "StarburstParameters": { "Host": "STARBURST_HOST_NAME
", "Port": "STARBURST_PORT
", "Catalog": "STARBURST_CATALOG
", "ProductType": "STARBURST_PRODUCT_TYPE
", "AuthenticationType": "TOKEN", "DatabaseAccessControlRole": "starburst-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-Starburst
" }, "Credentials": { "SecretArn": "oauth-client-secret-ARN
" } }
有关 CreateDatasource API 操作的更多信息,请参阅CreateDataSource。
在 QuickSight 和 Starburst 之间建立连接并使用 QuickSight APIs 或 SDK 创建数据源后,新的数据源就会显示在中 QuickSight。 QuickSight 作者可以使用此数据源来创建包含 Starburst 数据的数据集。表格是根据在 CreateDataSource
API 调用中传递的DatabaseAccessControlRole
参数中使用的角色显示的。如果在创建数据源连接时未定义此参数,则使用默认的 Starburst 角色。
在您 QuickSight 和 Starburst 帐户之间成功创建数据源连接后,就可以开始创建包含 Starburst QuickSight 数据的数据集了。