

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

# Amazon Quick Sight での Snowflake の使用
<a name="connecting-to-snowflake"></a>

Snowflake は、データウェアハウスやコラボレーションからデータサイエンスや生成 AI まで、データソリューションを提供する AI データクラウドプラットフォームです。Snowflake は、生成 AI、Machine Learning、データおよび分析、小売における AWS ISV コンピテンシーを含む複数の AWS 認定を持つ[AWS パートナー](https://partners.amazonaws.com/partners/001E000000d8qQcIAI/Snowflake)です。

Amazon Quick Sight には、Snowflake ログイン認証情報と OAuth クライアント認証情報の 2 つの方法で Snowflake に接続できます。次のセクションでは、両方の接続方法について学習します。

**Topics**
+ [ログイン認証情報を使用した Snowflake への Quick Sight データソース接続の作成](#create-connection-to-snowflake)
+ [OAuth クライアント認証情報を使用した Snowflake への Quick Sight データソース接続の作成](#create-connection-to-snowflake-oauth-credentials)

## ログイン認証情報を使用した Snowflake への Quick Sight データソース接続の作成
<a name="create-connection-to-snowflake"></a>

 このセクションでは、Snowflake ログイン認証情報を使用して Quick Sight と Snowflake 間の接続を作成する方法について説明します。Quick Sight と Snowflake 間のすべてのトラフィックは、SSL によって有効になります。

**Quick Sight と Snowflake 間の接続を作成するには**

1. [クイックコンソール](https://quicksight.aws.amazon.com/)を開きます。

1. 左側のナビゲーションペインで、**データ**を選択し、**作成**を選択し、**新しいデータセット**を選択します。

1. **[Snowflake]** データソースカードを選択します。

1. 表示されるポップアップに、次の情報を入力します。

   1. **[データソース名]** に、Snowflake のデータソース接続のための分かりやすい名前を入力します。Snowflake への接続から多数のデータセットを作成できるようにするため、名前はシンプルにしておくことをお勧めします。

   1. **[接続タイプ]** で、使用しているネットワークのタイプを選択します。データがパブリックに共有されている場合は **[パブリックネットワーク]** を選択します。データが VPC 内に存在する場合は **[VPC]** を選択します。Quick Sight で VPC 接続を設定するには、「」を参照してください[Amazon Quick での VPC 接続の管理](vpc-creating-a-connection-in-quicksight.md)。

   1. **[データベースサーバー]** には、Snowflake 接続の詳細で指定されているホスト名を入力します。

1. **[データベース名とウェアハウス]** に、接続するそれぞれの Snowflake データベースとウェアハウスを入力します。

1. **[ユーザー名]** と **[パスワード]** に、Snowflake の接続認証情報を入力します。

Quick Sight アカウントと Snowflake アカウントの間にデータソース接続が正常に作成されたら、Snowflake データを含む [データセットの作成](creating-data-sets.md) を開始できます。

## OAuth クライアント認証情報を使用した Snowflake への Quick Sight データソース接続の作成
<a name="create-connection-to-snowflake-oauth-credentials"></a>

OAuth クライアント認証情報を使用して、Quick Sight [ APIs を介して Quick Sight](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html) アカウントを Snowflake に接続できます。 *OAuth* は、高度なセキュリティ要件を持つアプリケーションによく使用される標準の認可プロトコルです。OAuth クライアント認証情報を使用して Snowflake に接続すると、Quick Sight APIs と Quick Sight UI を使用して Snowflake データを含むデータセットを作成できます。Snowflake での OAuth の設定の詳細については、「[Snowflake OAuth の概要](https://docs.snowflake.com/en/user-guide/oauth-snowflake-overview)」を参照してください。

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

OAuth.2.0 のクライアント認証情報フローには、認可サーバーでクライアントアプリケーションを認証するために使用できるクライアント認証メカニズムがいくつかあります。Quick Sight は、Snowflake OAuthに基づくクライアント認証情報を次の 2 つのメカニズムでサポートします。
+ **トークン (クライアントシークレットベースの OAuth)**: シークレットベースのクライアント認証メカニズムは、クライアント認証情報とともに使用され、認可サーバーで認証するためにフローを付与します。この認証スキームでは、OAuth クライアントアプリケーションの `client_id` と `client_secret` を Secrets Manager に保存する必要があります。
+ **X509 (クライアントプライベートキー JWT ベースの OAuth)**: X509 証明書キーベースのソリューションは、クライアントシークレットの代わりに認証に使用されるクライアント証明書を使用して OAuth メカニズムに追加のセキュリティレイヤーを提供します。この方法は主に、この方法を使用して 2 つのサービス間の強い信頼を持つ認可サーバーで認証するプライベートクライアントによって使用されます。

Quick Sight は、次の ID プロバイダーとOAuthの接続を検証しました。
+ OKTA
+ PingFederate

### Secrets Manager での OAuth 認証情報の保存
<a name="create-connection-to-snowflake-oauth-store-credentials"></a>

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

Secrets Manager に保存する必要がある認証情報は、使用する OAuth メカニズムによって決まります。X509-based OAuth シークレットには、次のキーと値のペアが必要です。
+ `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 クライアントシークレット

### Quick Sight APIs を使用した Snowflake OAuth接続の作成
<a name="create-connection-to-snowflake-oauth-example"></a>

Snowflake OAuth認証情報を含むシークレットを Secrets Manager で作成し、Quick アカウントを Secrets Manager に接続したら、Quick Sight APIs と SDK を使用して Quick Sight と Snowflake 間のデータソース接続を確立できます。次の例では、トークン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](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSource.html)」を参照してください。

Quick Sight と Snowflake 間の接続が確立され、Quick Sight APIsまたは SDK を使用してデータソースが作成されると、新しいデータソースが Quick Sight に表示されます。Quick Sight の作成者は、このデータソースを使用して Snowflake データを含むデータセットを作成できます。テーブルは、`CreateDataSource` API コールで渡される `DatabaseAccessControlRole`パラメータで使用されるロールに基づいて表示されます。データソース接続の作成時にこのパラメータが定義されていない場合は、デフォルトの Snowflake ロールが使用されます。

Quick Sight アカウントと Snowflake アカウントの間にデータソース接続が正常に作成されたら、Snowflake データを含む [データセットの作成](creating-data-sets.md) を開始できます。