翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Glue接続を作成する (管理者向け)
SQL 拡張機能でデータソースを使用するには、管理者は各データソースAWS Glueの接続を設定できます。これらの接続には、データソースへのアクセスと操作を許可する設定の詳細が保存されます。接続が作成され、適切なアクセス許可が付与されると、接続は同じ実行ロールを共有する Amazon SageMaker Studio のスペース のすべてのユーザーに表示されます。
このような接続を作成するには:
-
まず、各データソースの接続プロパティを定義する 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 について」を参照してください。の設定に使用される IAM ユーザーまたはロールのアクセスキーとトークンに、接続の作成AWS Glueに必要なアクセス許可AWS CLIがあることを確認します。ない場合は、
glue:CreateConnectionアクションを許可するインラインポリシーを追加します。 -
の使用方法を理解しますAWS Secrets Manager。データストアの接続認証情報やその他の機密情報は、Secrets Manager を使用して提供することをお勧めします。Secrets Manager を使用して認証情報を保存する方法の詳細については、AWS「Secrets Manager での接続認証情報の保存」を参照してください。
接続定義 JSON ファイルを作成する
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 接続を設定する。
-
Amazon Athena AWS Glueの接続を作成するには、「」のサンプル定義ファイルを参照してくださいAthena 向けの AWS Glue 接続を設定する。
-
Snowflake AWS Glueの接続を作成するには、 のサンプル定義ファイルを参照してくださいSnowflake 向けの AWS Glue 接続を設定する。
このセクションでは、Amazon Redshift に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Amazon Redshift のアクセス認証情報を Secrets Manager のシークレットとして保存することをお勧めします。または、 AWS Identity and Access Management(IAM) アクセス許可ポリシーによって付与されたアクセス許可に基づいて一時的なデータベース認証情報を生成して、ユーザーが Amazon Redshift データベースに対して持つアクセスを管理することもできます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成」を参照してください。
Amazon Redshift のアクセス認証情報のシークレットを作成する
Amazon Redshift 情報を AWSSecrets Manager に保存するには
-
AWSコンソールから Secrets Manager に移動します。
-
新しいシークレットを保存 を選択します。
-
[シークレットのタイプ] で、[Amazon Redshift の認証情報] を選択します。
-
Amazon Redshift クラスターの起動時に設定した管理者のユーザー名とパスワードを入力します。
-
シークレットに関連付けられている Amazon Redshift クラスターを選択します。
-
シークレットに名前を付けます。
-
残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。
-
シークレットを作成して、その ARN を取得します。
Amazon Redshift AWS Glueの接続を設定する
SQL 拡張機能は、カスタム接続を使用してデータソースに接続しますAWS Glue。データソースに接続するためのAWS Glue接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue接続を作成する (管理者向け)。次の例は、Amazon Redshift に接続するためのAWS Glue接続定義の例です。
新しい接続を作成する前に、以下の推奨事項に注意します。
-
PythonPropertiesキー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。 -
接続定義ファイルで、接続の名前と説明を入力し、
aws_secret_arnのシークレットの ARN を以前に作成したシークレットの ARN に置き換えます。 -
上記の接続定義で名前で宣言されたデータベースがクラスターデータベースと一致していることを確認します。これを検証するには、Amazon Redshift コンソール
のクラスターの詳細ページに移動し、[プロパティ] セクションの [データベース設定] のデータベース名を検証します。 -
その他のパラメータについては、「Amazon 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 接続を作成するを作成します。
このセクションでは、Athena に固有の JSON 定義ファイルの接続プロパティについて詳しく説明します。
Athena 向けの AWS Glue 接続を設定する
SQL 拡張機能は、カスタム接続を使用してデータソースに接続しますAWS Glue。データソースに接続するためのAWS Glue接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue接続を作成する (管理者向け)。次の例は、Athena に接続するためのAWS Glue接続定義の例です。
新しい接続を作成する前に、以下の推奨事項に注意します。
-
ConnectionPropertiesキー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。 -
接続定義ファイルで、接続の名前と説明を入力し、
catalog_nameをカタログ名に、s3_staging_dirを Amazon S3 バケット内の出力ディレクトリの Amazon S3 URI (Uniform Resource Identifier) に、region_nameを Amazon S3 バケットのリージョンに置き換えます。 -
その他のパラメータについては、「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 接続を作成するを作成します。
このセクションでは、Snowflake に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Snowflake のアクセス認証情報を Secrets Manager のシークレットとして保存することをお勧めします。
Snowflake のアクセス認証情報のシークレットを作成する
Amazon Redshift の情報を Secrets Manager に保存するには
-
AWSコンソールから、 に移動しますAWS Secrets Manager。
-
新しいシークレットを保存 を選択します。
-
[シークレットのタイプ] で、[その他のシークレットのタイプ] を選択します。
-
キー値ペアで、[プレーンテキスト] を選択して、以下の JSON コンテンツをコピーします。
user、password、accountは、実際の値に置き換えます。{ "user":"snowflake_user", "password":"snowflake_password", "account":"account_id" } -
シークレットに名前を付けます。
-
残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。
-
シークレットを作成して、その ARN を取得します。
Snowflake AWS Glueの接続を設定する
SQL 拡張機能は、カスタム接続を使用してデータソースに接続しますAWS Glue。データソースに接続するためのAWS Glue接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue接続を作成する (管理者向け)。次の例は、Snowflake に接続するためのAWS Glue接続定義の例です。
新しい接続を作成する前に、以下の推奨事項に注意します。
-
ConnectionPropertiesキー内のプロパティは、文字列化されたキー値ペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。 -
接続定義ファイルで、接続の名前と説明を入力してから、
aws_secret_arnのシークレットの ARN を以前に作成したシークレットの ARN に、accountはアカウント ID に置き換えます。 -
その他のパラメータについては、「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 接続を作成するを作成します。
AWS Glue 接続を作成する
を介してAWS Glue接続を作成するにはAWS CLI、接続定義ファイルを使用してこのAWS CLIコマンドを実行します。region プレースホルダーをAWSリージョン名に置き換え、定義ファイルへのローカルパスを指定します。
注記
設定定義ファイルへのパスの前には file:// を付ける必要があります。
aws --regionregionglue create-connection --cli-input-json file://path_to_file/sagemaker-sql-connection.json
次のコマンドを実行してAWS Glue接続が作成されたことを確認し、接続名を確認します。
aws --regionregionglue get-connections
または、次のように既存のAWS Glue接続を更新することもできます。
-
必要に応じてAWS Glue接続定義ファイルを変更します。
-
以下のコマンドを実行して、接続を更新します。
aws --regionregionglue update-connection --nameglue_connection_name--cli-input-json file://path_to_file/sagemaker-sql-connection.json