Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS脳でSnowflakeの権限管理をしたら沼にハマった話

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for あべ あべ
March 18, 2026

 AWS脳でSnowflakeの権限管理をしたら沼にハマった話

Avatar for あべ

あべ

March 18, 2026

More Decks by あべ

Other Decks in Technology

Transcript

  1. Copyright © 2026 BeeX Inc. All Rights Reserved. 2 ・名前

    安倍 航太(あべ こうた) ・所属 株式会社BeeX(2025年11月入社) ・業務 データ分析基盤導入支援 ・好きな技術 Snowflake、AWS ・SNS : @_coco_se 自己紹介 会社ブログアイコン SNSアイコン Data \人生初LT登壇!/
  2. Copyright © 2026 BeeX Inc. All Rights Reserved. 3 Q.

    What is Snowflake?? A. THE AI CLOUD!! Snowflakeって何なのさ?
  3. Copyright © 2026 BeeX Inc. All Rights Reserved. 4 AWSで例えるならば、これらのサービスの集合体!

    ※すべてが同じように使えるわけではない AWS好きの皆さんへ Amazon Redshift AWS Glue Amazon Data Firehose AWS Step Functions Amazon Managed Workflows for Apache Airflow (Amazon MWAA) Amazon Forecast Amazon SageMaker AI Amazon Textract Amazon Translate Amazon Bedrock Amazon Q Amazon Elastic Container Service (Amazon ECS) Amazon Aurora (PostgreSQL) AWS Security Hub Amazon Simple Storage Service (Amazon S3) (S3 Tables、S3 Vectors) Amazon Quick Suite ※Amazon Quick Amazon Kinesis AWS Lake Formation etc…
  4. Copyright © 2026 BeeX Inc. All Rights Reserved. 5 前置きはここまで

    今回ハマったこと ↓ Snowflakeの権限管理
  5. Copyright © 2026 BeeX Inc. All Rights Reserved. 6 Snowflakeの権限管理

    アクセス制御方式は色々あるけど使っていたのは ロールベースのアクセス制御(RBAC) 皆さんおなじみIAMロールと同じ感覚で大丈夫!!(今は…です) Permissions (IAMポリシー) IAM Role Amazon Simple Storage Service (Amazon S3) Amazon Cloudwatch Logs アクセス設定を ロールにアタッチ ロールを使えば アクセス設定に従って アクセス可能に 【AWSの場合】
  6. Copyright © 2026 BeeX Inc. All Rights Reserved. 7 権限に対する考え方の違い

    AWSは、APIの操作をIAMポリシーで許可してロールにアタッチ Snowflakeは、オブジェクトの操作権限をGRANT文でロールに アタッチ Snowflakeはすべてを「オブジェクト」としてとらえる。
  7. Copyright © 2026 BeeX Inc. All Rights Reserved. 9 Snowflakeの権限管理…簡単では?

    そう思ったそこのあなた。甘いです。 Snowflakeにおける権限付与の考え方は、 大きく分けて以下の二つです。 • 既に存在するオブジェクトに対する権限 • 将来的に作成するオブジェクトに対する権限 これが難しい!
  8. Copyright © 2026 BeeX Inc. All Rights Reserved. 10 将来的な権限設定

    例えば、以下のような設定をします。 ロールA:将来的にTEST_DB配下に作成されるテーブルには SELECT権限を付与する (データベースレベルの権限設定) ロールB:将来的にTEST_DBのTEST_SCHEMAに作成される テーブルにはSELECT権限を付与する (スキーマレベルの権限設定)
  9. Copyright © 2026 BeeX Inc. All Rights Reserved. 11 図示するとこうなるはずだよね?(想像)

    ロールAの権限範囲 TEST_DB TEST_SCHEMA TABLE1 TEST_SCHEMA2 TABLE2 TABLE3 ロールBの権限範囲 新規作成対象
  10. Copyright © 2026 BeeX Inc. All Rights Reserved. 12 実際はこうなる

    ロールAの権限範囲 TEST_DB TEST_SCHEMA TABLE1 TEST_SCHEMA2 TABLE2 TABLE3 ロールBの権限範囲 将来的な権限設定は、オブジェクトから見たときに より狭い範囲で定義された設定に従う!!
  11. Copyright © 2026 BeeX Inc. All Rights Reserved. 13 そういう場合はこうしてね

    ロールA:将来的にTEST_DB配下に作成されるテーブルには SELECT権限を付与する (データベースレベルの権限設定) + 将来的にTEST_DBのTEST_SCHEMAに作成される テーブルにはSELECT権限を付与する (スキーマレベルの権限設定) ロールB:将来的にTEST_DBのTEST_SCHEMAに作成される テーブルにはSELECT権限を付与する (スキーマレベルの権限設定)
  12. Copyright © 2026 BeeX Inc. All Rights Reserved. 14 まとめ

    •同じロールベースのアクセス制御でも 製品によって考え方が異なる •Snowflakeの将来的なアクセス権限の付与は オブジェクトから見たときにどれが近いのかが重要 •Snowflakeはめちゃめちゃ奥深くて面白い