LoginSignup
1
0

Snowflakeの外部ステージでストレージ統合の使用を必須にさせる方法

Last updated at Posted at 2023-03-28

<やりたいこと>

AWSのS3バケットを外部ステージとして設定することで、S3バケットからSnowflakeのテーブルにCOPYコマンドでデータロードできます。
外部ステージを使ってデータロードする際、以下①~②の方法で、S3バケットへのアクセス権をSnowflakeに付与できます。

①ストレージ統合を参照
image.png

②アクセスキー + シークレットアクセスキーの指定
image.png

セキュリティの強化を考えると、①の"ストレージ統合を参照"の方が推奨されます。

ストレージ統合には、以下のセキュリティ上のメリットがあります。
・IAMロールでS3にアクセスできるため、アクセスキーやシークレットアクセスキーの認証情報の漏洩の心配がない
・SnowflakeからアクセスできるS3バケットとそのフォルダを制限できる

②の"アクセスキー + シークレットアクセスキーの指定"では、認証情報の漏洩のリスクがあります。

Snowflakeの管理者からすると、とくに本番環境では、①の"ストレージ統合を参照"での運用を希望すると思います。

Snowflakeの以下のアカウントパラメータを使用することで、アクセス権を付与する方法を①の"ストレージ統合を参照"のみに制限できます。

・REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION
⇒TRUEにすると、S3バケットにアクセスする外部ステージを作成するときに、ストレージ統合を指定しないとエラーになります。

・REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION
⇒TRUEにすると、S3バケットからデータロードするには、ストレージ統合を参照する外部ステージを使用しなければなりません。アクセスキーを使うと、エラーになります。

Snowflakeパラメータを設定するDDLは、以下になります。

alter account set REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION = TRUE;

alter account set REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION = TRUE;

<検証>

Snowflakeパラメータの効果を確認するため以下の検証を行います。
①ストレージ統合を参照しない外部ステージを作成できるかどうか(「REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION」の効力を確認)

②外部ステージ経由でのデータロードの際にアクセスキー + シークレットアクセスキーを指定できるか
(「REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION」の効力を確認)

①ストレージ統合を参照しない外部ステージを作成できるかどうか

①-1「REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION」にTRUEにする

image.png

①-2ストレージ統合を参照しない外部ステージを作成できないことを確認

image.png

②外部ステージ経由でのデータロードの際にアクセスキー + シークレットアクセスキーを指定できるか

②-1「REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION」にTRUEにする

image.png

②-2ストレージ統合を参照しない外部ステージ経由でのCOPYがエラーになることを確認

以下のCOPYコマンドでは、外部ステージ「my_stg_orc_dev」はストレージ統合を参照しないため、アクセスキーとシークレットアクセスキーを指定して認証します。
image.png

おわりに

開発標準等で運用ルールを決めることはもちろん重要ですが、Snowflakeのパラメータを使うことで許可する操作を決めることができます。私もパラメータについては、使い慣れていないため、運用を統一する上で有効なパラメータが他にないか勉強してみようと思います。

ご案内

株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0