OAuth クライアント認証情報を使用した Snowflake への Amazon QuickSight データソース接続の作成 - Amazon QuickSight

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OAuth クライアント認証情報を使用した Snowflake への Amazon QuickSight データソース接続の作成

OAuth クライアント認証情報を使用して、QuickSight APIs を介して QuickSight アカウントを QuickSightに接続できます。 OAuth は、高度なセキュリティ要件を持つアプリケーションによく使用される標準の認可プロトコルです。OAuth クライアント認証情報を使用して Snowflake に接続すると、QuickSight API および QuickSight QuickSight UI で Snowflake データを含むデータセットを作成できます。 APIs Snowflake OAuthでの の設定の詳細については、Snowflake OAuth「概要」を参照してください。

QuickSight は、 client credentialsOAuth許可タイプをサポートしています。 OAuthクライアント認証情報は、machine-to-machine通信のアクセストークンを取得するために使用されます。この方法は、ユーザーが関与せずにサーバーでホストされているリソースにクライアントがアクセスする必要があるシナリオに適しています。

2OAuth.0 のクライアント認証情報フローには、認可サーバーでクライアントアプリケーションを認証するために使用できるクライアント認証メカニズムがいくつかあります。QuickSight は、Snowflake OAuthに基づくクライアント認証情報を次の 2 つのメカニズムでサポートします。

  • トークン (クライアントシークレットベースの OAuth): シークレットベースのクライアント認証メカニズムは、クライアント認証情報とともに使用され、認可サーバーで認証するためにフローを付与します。この認証スキームでは、OAuthクライアントアプリケーションの client_idclient_secret を Secrets Manager に保存する必要があります。

  • X509 (クライアントプライベートキー JWT ベースの OAuth): X509 証明書キーベースのソリューションは、クライアントシークレットの代わりに認証に使用されるクライアント証明書を使用してOAuth、メカニズムに追加のセキュリティレイヤーを提供します。この方法は主に、この方法を使用して 2 つのサービス間の強力な信頼関係で認可サーバーで認証するプライベートクライアントによって使用されます。

QuickSight は、次の ID プロバイダーとOAuthの接続を検証しています。

  • OKTA

  • PingFederate

Secrets Manager でのOAuth認証情報の保存

OAuth クライアント認証情報はmachine-to-machineのユースケースを対象としており、インタラクティブに設計されていません。QuickSight と Snowflake の間にデータソース接続を作成するには、OAuthクライアントアプリケーションの認証情報を含む新しいシークレットを Secrets Manager で作成します。新しいシークレットで作成されたシークレット ARN を使用して、QuickSight に Snowflake データを含むデータセットを作成できます。QuickSight で Secrets Manager キーを使用する方法の詳細については、「」を参照してくださいAmazon QuickSight でデータベース認証情報の代わりに AWS Secrets Manager シークレットを使用する

Secrets Manager に保存する必要がある認証情報は、使用するOAuthメカニズムによって決まります。X509-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接続の作成

Snowflake OAuth認証情報を含むシークレットを Secrets Manager で作成し、QuickSight アカウントを Secrets Manager に接続した後、QuickSight APIs と SDK を使用して QuickSight と Snowflake QuickSight 間のデータソース接続を確立できます。次の例では、トークン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 データを含むデータセットを作成できます。テーブルは、CreateDataSourceAPI コールで渡される DatabaseAccessControlRoleパラメータで使用されるロールに基づいて表示されます。データソース接続の作成時にこのパラメータが定義されていない場合は、デフォルトの Snowflake ロールが使用されます。

QuickSight アカウントと Snowflake アカウントの間にデータソース接続が正常に作成されたら、Snowflake データを含む QuickSight データセットの作成を開始できます。