AWS Glueのカタログ統合を設定する¶
重要
AWS Glue と統合するには、 AWS Glue Iceberg REST エンドポイントのカタログ統合を構成することをお勧めします。このエンドポイントは、カタログベンド認証情報など、Iceberg テーブルの追加機能をサポートしています。
手順については、 AWS Glue Iceberg REST のカタログ統合の構成 をご参照ください。
AWS Glueのカタログ統合を作成し、Snowflakeに AWS Glueデータカタログへの制限付きアクセス権を付与します。
注釈
このセクションの手順を完了するには、 IAM ポリシーとロールを作成および管理するためにAmazon Web Services(AWS)での権限が必要です。AWS 管理者でない場合は、 AWS 管理者にこれらのタスクを実行するように依頼します。
標準のSnowflakeデータベースのIcebergテーブルを AWSGlueカタログ統合からAWSGlue Iceberg RESTカタログへ移行するには、:doc:`/sql-reference/functions/system_set_catalog_integration`をご参照ください。
ステップ1:AWS Glueデータカタログのアクセス許可を構成する¶
ベストプラクティスとして、SnowflakeがAWS Glueデータカタログにアクセスするための新しいIAMポリシーを作成します。その後、ポリシーを IAM ロールに添付し、ロールのために AWS が生成するセキュリティ認証情報を使用して、カタログ内のファイルにアクセスできます。手順については、 AWS IDおよびアクセス管理ユーザーガイドの IAM ポリシーの作成 と ロール権限ポリシーの変更 をご参照ください。
少なくとも、Snowflakeはテーブルに関する情報にアクセスするために、AWS Glueデータカタログに対して次の権限が必要とします。
glue:GetTableglue:GetTables
次のポリシー例(JSON 形式)は、指定したデータベース内のすべてのテーブルにアクセスするために必要な権限を提供します。
注釈
このポリシーの
Resource要素を変更して、許可されるリソース(カタログ、データベース、テーブルなど)をさらに制限することができます。詳細については、 AWS Glueで定義されたリソースタイプ をご参照ください。AWS Glueに暗号化を使用する場合、ポリシーを変更して AWS キー管理サービス(AWS KMS)権限を追加する必要があります。詳細については、 AWS Glueでの暗号化の設定 をご参照ください。
ステップ2:Snowflakeでカタログ統合を作成する¶
CREATE CATALOG INTEGRATION (AWS Glue) コマンドを使用して、AWS Glueデータカタログのカタログ統合を作成します。
次の例はAWS Glueデータカタログソースを使用するカタログ統合を作成します。この例では、オプションの GLUE_REGION パラメーターの値を指定しています。
ステップ3:Snowflakeアカウントの AWS IAM ユーザーと外部 ID を取得する¶
カタログ統合を作成したときにSnowflakeアカウントに作成された AWS IAM ユーザーと外部 ID に関する情報を取得するには、 DESCRIBE CATALOG INTEGRATION コマンドを実行します。この情報を次のセクションで AWS に提供して、信頼関係を確立します。
次のコマンド例は、前のステップで作成したカタログ統合について説明します。
次の値を記録します。
値
説明
GLUE_AWS_IAM_USER_ARNSnowflakeアカウント用に作成された AWS IAM ユーザー。例えば、
arn:aws:iam::123456789001:user/abc1-b-self1234。Snowflakeは、Snowflakeアカウント全体用に単一の IAM ユーザーをプロビジョニングします。アカウント内のすべてのGlueカタログ統合は、その IAM ユーザーを使用します。
GLUE_AWS_EXTERNAL_ID信頼関係を確立するために必要な外部 ID 。
これらの値は次のセクションで提供します。
ステップ5:AWS Glueデータカタログにアクセスするために IAM ユーザー権限を付与する¶
カタログ統合の作成時に ARN で指定したの 同じ IAM ロールの信頼ポリシーを更新します(GLUE_AWS_ROLE_ARN)。信頼ポリシーに ステップ3:Snowflakeアカウントの AWS IAM ユーザーと外部 ID を取得する で記録した値を追加します。
手順については、 信頼ポリシーの変更 をご参照ください。
次の例の信頼ポリシーは、 GLUE_AWS_IAM_USER_ARN と GLUE_AWS_EXTERNAL_ID の値をどこで指定するのかを示しています。
条件:
glue_iam_user_arnは記録したGLUE_IAM_USER_ARNの値です。
glue_aws_external_idは記録したGLUE_AWS_EXTERNAL_IDの値です。
注釈
セキュリティ上の理由から、新しいカタログ統合を作成する場合(または CREATE OR REPLACE CATALOG INTEGRATION 構文を使用して既存のカタログ統合を再作成する場合)、新しいカタログ統合には異なる外部 ID があり、新しい外部 ID で信頼ポリシーを変更しない限り、信頼関係を解決できません。
権限が正しく設定されていることを確認するには、このカタログ統合を使用して Icebergテーブルを作成 します。このカタログ統合を参照するIcebergテーブルを作成するまで、Snowflakeは権限が正しく設定されているかどうかを確認しません。
次のステップ¶
AWS Glue のカタログ統合を構成したら、Iceberg テーブルを作成できます。
テーブルを更新し、AWS Glueの変更との同期を保つには、 ALTER ICEBERG TABLE ... REFRESH ステートメントを使用します。詳細については、 テーブルのメタデータを更新する をご参照ください。