■ はじめに
Snowflake で エラー「Failure using stage area. ... AccessDenied」が 発生したので、メモ。
目次
【1】トラブル概要 【2】エラー内容 【3】原因 【4】解決案
【1】トラブル概要
以下の「エラーになったSQL文」を実行したところ、 以下の「【2】エラー内容」が表示された
エラーになったSQL文
USE DATABASE test_db; USE SCHEMA test_schema; CREATE TEMPORARY STAGE IF NOT EXISTS test_stage URL = 's3://your-s3-bucket-name/demo_warehouse/demo_database/test_person/' FILE_FORMAT = (TYPE = JSON) ; -- ここでエラー SELECT $1:user_id, $1:user_name FROM @test_stage;
【2】エラー内容
Failure using stage area. Cause : [Access Denied (Status Code: 403; Error Code: AccessDenied)]
【3】原因
S3への権限がないため「403: AccessDenied」が発生しているため => 今回の場合、ステージ作成時に 「STORAGE_INTEGRATION」を指定し忘れてたため
【4】解決案
* 「STORAGE_INTEGRATION」を指定し再実行
修正したSQL文(抜粋)
CREATE TEMPORARY STAGE IF NOT EXISTS test_stage URL = 's3://your-s3-bucket-name/demo_warehouse/demo_database/test_person/' STORAGE_INTEGRATION = xxxxx -- ★ここを追加★ FILE_FORMAT = (TYPE = JSON) ;
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 基本編 / ステージ ~
https://dk521123.hatenablog.com/entry/2022/09/01/220643
Snowflake ~ ストレージ統合 ~
https://dk521123.hatenablog.com/entry/2022/06/29/221037
エラー「Error assuming AWS_ROLE」時の対応
https://dk521123.hatenablog.com/entry/2022/11/25/175912