

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

# AWS Glue 接続を作成する (管理者向け)
<a name="sagemaker-sql-extension-datasources-glue-connection"></a>

SQL 拡張機能でデータソースを使用するには、管理者は各データソース AWS Glue の接続を設定できます。これらの接続には、データソースへのアクセスと操作を許可する設定の詳細が保存されます。接続が作成され、[適切なアクセス許可](sagemaker-sql-extension-datasources-connection-permissions.md)が付与されると、接続は同じ実行ロールを共有する [Amazon SageMaker Studio のスペース](studio-updated-spaces.md) のすべてのユーザーに表示されます。

このような接続を作成するには:
+ まず、各データソースの接続プロパティを定義する JSON ファイルを作成します。JSON ファイルには、データソース識別子、アクセス認証情報、および AWS Glue 接続を介してデータソースにアクセスするためのその他の関連する設定パラメータなどの詳細が含まれます。
+ 次に、 AWS Command Line Interface (AWS CLI) を使用して AWS Glue 接続を作成し、JSON ファイルをパラメータとして渡します。 AWS CLI コマンドは、JSON ファイルから接続の詳細を読み取り、適切な接続を確立します。
**注記**  
SQL 拡張機能は、 AWS CLI のみを使用した接続の作成をサポートしています。

 AWS Glue 接続を作成する前に、次の手順を完了してください。
+  AWS Command Line Interface () をインストールして設定しますAWS CLI。をインストールして設定する方法の詳細については AWS CLI、[AWS CLI 「バージョン 2 について](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」を参照してください。の設定に使用した IAM ユーザーまたはロールのアクセスキーとトークンに、接続の作成 AWS Glue に必要なアクセス許可 AWS CLI があることを確認します。ない場合は、`glue:CreateConnection` アクションを許可するインラインポリシーを追加します。
+ の使用方法を理解します AWS Secrets Manager。データストアの接続認証情報やその他の機密情報は、Secrets Manager を使用して提供することをお勧めします。Secrets Manager を使用して認証情報を保存する方法の詳細については、[AWS 「Secrets Manager での接続認証情報の保存](https://docs.aws.amazon.com/glue/latest/dg/connection-properties-secrets-manager.html)」を参照してください。

## 接続定義 JSON ファイルを作成する
<a name="sagemaker-sql-extension-glue-connection-config"></a>

 AWS Glue 接続定義ファイルを作成するには、JSON ファイルを作成して、 をインストールして設定したマシンの接続の詳細を定義します AWS CLI。この例でのファイル名は、`sagemaker-sql-connection.json` です。

接続定義ファイルは、以下の一般的な形式に従う必要があります。
+ **Name** は、接続の名前です。
+ **Description** は、接続の説明文です。
+ **ConnectionType** は接続のタイプです。[`REDSHIFT`]、[`ATHENA`]、または [`SNOWFLAKE`] を選択します。
+ **ConnectionProperties** は、 AWS シークレットの ARN やデータベースの名前など、接続プロパティのキーと値のペアのマップです。

```
{
    "ConnectionInput": {
        "Name": <GLUE_CONNECTION_NAME>,
        "Description": <GLUE_CONNECTION_DESCRIPTION>,
        "ConnectionType": "REDSHIFT | ATHENA | SNOWFLAKE",
        "ConnectionProperties": {
            "PythonProperties": "{\"aws_secret_arn\": <SECRET_ARN>, \"database\": <...>}"
        }
    }
}
```

**注記**  
`ConnectionProperties` キー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (`\`) 文字でエスケープします。
Secrets Manager で使用できるすべてのプロパティは、`PythonProperties` を介して直接提供することもできます。ただし、パスワードなどの機密フィールドを `PythonProperties` に含めることはお勧めしません。代わりに、Secrets Manager を使用する方法をお勧めします。

さまざまなデータストアに固有の接続定義ファイルは、以降のセクションで確認できます。

各データソースの接続定義ファイルには、SQL 拡張機能から該当するデータストアに接続するために必要な特定のプロパティと設定が含まれています。各ソースへの接続の定義の詳細については、該当するセクションを参照してください。
+ Amazon Redshift AWS Glue の接続を作成するには、「」のサンプル定義ファイルを参照してください[Amazon Redshift AWS Glue の接続を設定する](#sagemaker-sql-extension-redshift-glue-connection-config)。
+ Amazon Athena AWS Glue の接続を作成するには、「」のサンプル定義ファイルを参照してください[Athena AWS Glue の接続を設定する](#sagemaker-sql-extension-athena-glue-connection-config)。
+ Snowflake AWS Glue の接続を作成するには、「」のサンプル定義ファイルを参照してください[Snowflake AWS Glue の接続を設定する](#sagemaker-sql-extension-snowflake-glue-connection-config)。

### Amazon Redshift AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-redshift-glue-connection-config"></a>

このセクションでは、Amazon Redshift に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Amazon Redshift のアクセス認証情報を Secrets Manager のシークレットとして保存することをお勧めします。または、 AWS Identity and Access Management (IAM) アクセス許可ポリシーによって付与されたアクセス許可に基づいて一時的なデータベース認証情報を生成して、ユーザーが Amazon Redshift データベースに対して持つアクセスを管理することもできます。詳細については、「[IAM 認証を使用したデータベースユーザー認証情報の生成](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html)」を参照してください。

#### Amazon Redshift のアクセス認証情報のシークレットを作成する
<a name="sagemaker-sql-extension-redshift-secret"></a>

**Amazon Redshift 情報を AWS Secrets Manager に保存するには**

1.  AWS コンソールから Secrets Manager に移動します。

1. **新しいシークレットを保存** を選択します。

1. **[シークレットのタイプ]** で、**[Amazon Redshift の認証情報]** を選択します。

1. Amazon Redshift クラスターの起動時に設定した管理者のユーザー名とパスワードを入力します。

1. シークレットに関連付けられている Amazon Redshift クラスターを選択します。

1. シークレットに名前を付けます。

1. 残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。

1. シークレットを作成して、その ARN を取得します。

#### Amazon Redshift AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-redshift-glue-connection-creation"></a>

SQL 拡張機能は、カスタム接続を使用してデータソースに接続します AWS Glue 。データソースに接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してください[AWS Glue 接続を作成する (管理者向け)](#sagemaker-sql-extension-datasources-glue-connection)。次の例は、Amazon Redshift に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、以下の推奨事項に注意します。
+ `PythonProperties` キー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (`\`) 文字でエスケープします。
+ 接続定義ファイルで、接続の名前と説明を入力し、`aws_secret_arn` のシークレットの ARN を以前に作成したシークレットの ARN に置き換えます。
+ 上記の接続定義で名前で宣言されたデータベースがクラスターデータベースと一致していることを確認します。これを検証するには、[Amazon Redshift コンソール](https://console.aws.amazon.com/redshiftv2/)のクラスターの詳細ページに移動し、**[プロパティ]** セクションの **[データベース設定]** のデータベース名を検証します。
+ その他のパラメータについては、「[Amazon Redshift の接続パラメータ](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-redshift)」の Amazon Redshift でサポートされている接続プロパティのリストを参照してください。
**注記**  
デフォルトでは、接続プロパティの `auto_commit` が `true` に設定されていない限り、Python 用の SQL 拡張機能のコネクタはトランザクション内のすべてのクエリを実行します。
シークレットには、`database` 名などのすべての接続パラメータを追加できます。

```
{
  "ConnectionInput": {
      "Name": "{{Redshift connection name}}",
      "Description": "{{Redshift connection description}}",
      "ConnectionType": "REDSHIFT",
      "ConnectionProperties": {
          "PythonProperties":"{\"aws_secret_arn\": \"{{arn:aws:secretsmanager:region:account_id:secret:secret_name}}\", \"database\":\"{{database_name}}\", \"database_metadata_current_db_only\": false}"
      }
  }
}
```

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続[AWS Glue 接続を作成する](#sagemaker-sql-extension-datasources-glue-connection-creation)を作成します。

### Athena AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-athena-glue-connection-config"></a>

このセクションでは、Athena に固有の JSON 定義ファイルの接続プロパティについて詳しく説明します。

#### Athena AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-athena-glue-connection-creation"></a>

SQL 拡張機能は、カスタム接続を使用してデータソースに接続します AWS Glue 。データソースに接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してください[AWS Glue 接続を作成する (管理者向け)](#sagemaker-sql-extension-datasources-glue-connection)。次の例は、Athena に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、以下の推奨事項に注意します。
+ `ConnectionProperties` キー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (`\`) 文字でエスケープします。
+ 接続定義ファイルで、接続の名前と説明を入力し、`catalog_name` をカタログ名に、`s3_staging_dir` を Amazon S3 バケット内の出力ディレクトリの Amazon S3 URI (Uniform Resource Identifier) に、`region_name` を Amazon S3 バケットのリージョンに置き換えます。
+ その他のパラメータについては、「[Athena 接続パラメータ](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-athena)」の Athena でサポートされている接続プロパティのリストを参照してください。
**注記**  
シークレットには、`catalog_name` 名や `s3_staging_dir` などのすべての接続パラメータを追加できます。
`workgroup` を指定する場合は、`s3_staging_dir` を指定する必要はありません。

```
{
    "ConnectionInput": {
        "Name": "{{Athena connection name}}",
        "Description": "{{Athena connection description}}",
        "ConnectionType": "ATHENA",
        "ConnectionProperties": {
            "PythonProperties": "{\"catalog_name\": \"{{catalog_name}}\",\"s3_staging_dir\": \"{{s3://amzn-s3-demo-bucket_in_same_region/output_query_results_dir/}}\", \"region_name\": \"{{region\}}"}"
        }
    }
}
```

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続[AWS Glue 接続を作成する](#sagemaker-sql-extension-datasources-glue-connection-creation)を作成します。

### Snowflake AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-snowflake-glue-connection-config"></a>

このセクションでは、Snowflake に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Snowflake のアクセス認証情報を Secrets Manager のシークレットとして保存することをお勧めします。

#### Snowflake のアクセス認証情報のシークレットを作成する
<a name="sagemaker-sql-extension-snowflake-secret"></a>

**Amazon Redshift の情報を Secrets Manager に保存するには**

1.  AWS コンソールから、 に移動します AWS Secrets Manager。

1. **新しいシークレットを保存** を選択します。

1. **[シークレットのタイプ]** で、**[その他のシークレットのタイプ]** を選択します。

1. キー値ペアで、**[プレーンテキスト]** を選択して、以下の JSON コンテンツをコピーします。`user`、`password`、`account` は、実際の値に置き換えます。

   ```
   {
       "user":"{{snowflake_user}}",
       "password":"{{snowflake_password}}",
       "account":"{{account_id}}"
   }
   ```

1. シークレットに名前を付けます。

1. 残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。

1. シークレットを作成して、その ARN を取得します。

#### Snowflake AWS Glue の接続を設定する
<a name="sagemaker-sql-extension-snowflake-glue-connection-creation"></a>

SQL 拡張機能は、カスタム接続を使用してデータソースに接続します AWS Glue 。データソースに接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してください[AWS Glue 接続を作成する (管理者向け)](#sagemaker-sql-extension-datasources-glue-connection)。次の例は、Snowflake に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、以下の推奨事項に注意します。
+ `ConnectionProperties` キー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (`\`) 文字でエスケープします。
+ 接続定義ファイルで、接続の名前と説明を入力してから、`aws_secret_arn` のシークレットの ARN を以前に作成したシークレットの ARN に、`account` はアカウント ID に置き換えます。
+ その他のパラメータについては、「[Snowflake 接続パラメータ](sagemaker-sql-extension-connection-properties.md#sagemaker-sql-extension-connection-properties-snowflake)」の Snowflake でサポートされている接続プロパティのリストを参照してください。
**注記**  
シークレットには、`account` などのすべての接続パラメータを追加できます。

```
{
    "ConnectionInput": {
        "Name": "{{Snowflake connection name}}",
        "Description": "{{Snowflake connection description}}",
        "ConnectionType": "SNOWFLAKE",
        "ConnectionProperties": {
            "PythonProperties":  "{\"aws_secret_arn\": \"{{arn:aws:secretsmanager:region:account_id:secret:secret_name}}\", \"account\":\"{{account_id}}\"}"}"
        }
    }
}
```

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続[AWS Glue 接続を作成する](#sagemaker-sql-extension-datasources-glue-connection-creation)を作成します。

## AWS Glue 接続を作成する
<a name="sagemaker-sql-extension-datasources-glue-connection-creation"></a>

を介して AWS Glue 接続を作成するには AWS CLI、接続定義ファイルを使用してこの AWS CLI コマンドを実行します。`region` プレースホルダーを AWS リージョン名に置き換え、定義ファイルへのローカルパスを指定します。

**注記**  
設定定義ファイルへのパスの前には `file://` を付ける必要があります。

```
aws --region {{region}} glue create-connection --cli-input-json file://{{path_to_file/sagemaker-sql-connection.json}}
```

次のコマンドを実行して AWS Glue 接続が作成されたことを確認し、接続名を確認します。

```
aws --region {{region}} glue get-connections
```

または、次のように既存の AWS Glue 接続を更新することもできます。
+ 必要に応じて AWS Glue 接続定義ファイルを変更します。
+ 以下のコマンドを実行して、接続を更新します。

  ```
  aws --region {{region}} glue update-connection --name {{glue_connection_name}} --cli-input-json file://{{path_to_file/sagemaker-sql-connection.json}}
  ```