本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用OAuth用戶端憑證建立 Amazon QuickSight 資料來源連線至 Snowflake
您可以使用OAuth用戶端登入資料,透過 QuickSight APIs 將 QuickSight 帳戶與 Snowflake 連線。 OAuth 是標準授權通訊協定,通常用於具有進階安全需求的應用程式。當您使用 OAuth 用戶端登入資料連線至 Snowflake 時,您可以使用 QuickSight APIs 和 QuickSight UI 建立包含 Snowflake 資料的資料集。如需在 Snowflake OAuth中設定 的詳細資訊,請參閱 Snowflake OAuth 概觀
QuickSight 支援client credentials
OAuth授予類型。OAuth用戶端憑證用於取得machine-to-machine通訊的存取權杖。此方法適用於用戶端需要存取託管在伺服器上的資源,而不需要使用者參與的情況。
在用戶端登入資料流程 OAuth 2.0 中,有數種用戶端身分驗證機制可用來向授權伺服器驗證用戶端應用程式。QuickSight 支援以 Snowflake OAuth 為基礎的用戶端憑證,適用於下列兩種機制:
-
權杖 (以用戶端秘密為基礎的 OAuth):以秘密為基礎的用戶端身分驗證機制會與用戶端憑證搭配使用,以授予流程,以便向授權伺服器進行身分驗證。此身分驗證機制需要
client_secret
將OAuth用戶端應用程式的client_id
和 存放在 Secrets Manager 中。 -
X509 (用戶端私有金鑰 JWT 型 OAuth):X509 憑證金鑰型解決方案為 OAuth機制提供額外的安全層,其中包含用於驗證的用戶端憑證,而非用戶端秘密。此方法主要供使用此方法的私有用戶端使用,以對兩個 服務之間具有高度信任的授權伺服器進行身分驗證。
QuickSight 已驗證與下列 Identity 提供者的OAuth連線:
-
OKTA
-
PingFederate
在 Secrets Manager 中存放OAuth登入資料
OAuth 用戶端登入資料適用於machine-to-machine的使用案例,並非設計為互動式。若要在 QuickSight 和 Snowflake 之間建立資料來源連線,請在 Secrets Manager 中建立新的秘密,其中包含用戶端OAuth應用程式的登入資料。使用新秘密建立的秘密 ARN 可用來在 QuickSight 中建立包含 Snowflake 資料的資料集。如需在 QuickSight 中使用 Secrets Manager 金鑰的詳細資訊,請參閱 在 Amazon QuickSight 中使用 AWS Secrets Manager 秘密而非資料庫登入資料。
您在 Secrets Manager 中需要存放的登入資料取決於您使用的OAuth機制。XX509-basedOAuth秘密需要下列金鑰/值對:
-
username
:連線至 Snowflake 時要使用的 Snowflake 帳戶使用者名稱 -
client_id
:OAuth用戶端 ID -
client_private_key
:OAuth用戶端私有金鑰 -
client_public_key
:OAuth用戶端憑證公有金鑰及其加密演算法 (例如{"alg": "RS256", "kid", "cert_kid"}
)
字符型OAuth秘密需要下列金鑰/值對:
-
username
:連線至 Snowflake 時要使用的 Snowflake 帳戶使用者名稱 -
client_id
:OAuth用戶端 ID -
client_secret
:OAuth用戶端秘密
使用 QuickSight APIs建立 Snowflake OAuth連線
在 Secrets Manager 中建立秘密,其中包含您的 Snowflake OAuth登入資料,並將 QuickSight 帳戶連線至 Secrets Manager 之後,您可以使用 QuickSight APIs 和 SDK 在 QuickSight 和 Snowflake 之間建立資料來源連線。下列範例使用字符OAuth用戶端憑證建立 Sonwflake 資料來源連線。
{ "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。
建立 QuickSight 和 Snowflake 之間的連線,並使用 QuickSight APIs或 SDK 建立資料來源後,新的資料來源會顯示在 QuickSight 中。QuickSight 作者可以使用此資料來源來建立包含 Snowflake 資料的資料集。資料表會根據在 CreateDataSource
API 呼叫中傳遞的 DatabaseAccessControlRole
參數中使用的角色顯示。如果建立資料來源連線時未定義此參數,則會使用預設的 Snowflake 角色。
成功建立 QuickSight 和 Snowflake 帳戶之間的資料來源連線後,您可以開始建立包含 Snowflake 資料的 QuickSight 資料集。