【Snowflake】【トラブル】エラー「Failure using stage area. ... AccessDenied」時の対応

■ はじめに

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