SnowflakeワークロードIDフェデレーションでシークレットレスな認証へ

パスワード認証からの移行に苦労していませんか?この移行時に秘密の管理を不要にできるとしたらどうでしょうか。今できます!
お待たせしました!ワークロードIDフェデレーション(WIF)の一般提供が開始されました!これにより、Snowflakeとのやり取りのセキュリティ強化と認証の簡素化に向けた取り組みが大きく前進しました。WIFにより、認証情報を管理することなく、既存のインフラストラクチャIDを使用してアプリケーションやサービスをSnowflakeにシームレスに接続できるようになりました。
従来の認証の課題
業界のベストプラクティスに沿ってお客様を保護するというSnowflakeのミッションの一環として、可能な限りユーザーの単一認証方式としてパスワードを廃止することに取り組んでいます。Snowflakeを認証するサービスは、多くの場合、静的な認証(ユーザー名/パスワード)に依存してきました。こうした認証はシンプルですが、適切に保護されない場合は侵害されやすく、セキュアな管理のために多大な管理オーバーヘッドが発生します。
ワークロードIDフェデレーションは、サービスユーザーがこの変化を受け入れるための決定版です。複数の主要領域において、Service-to-Service接続の一般的な代替案を上回る、スムーズでセキュア、モダンな認証体験を提供します。
ワークロードIDフェデレーションとは?
WIFは、SERVICEタイプのユーザーにSnowflakeが推奨する優先認証方式です。つまり、自動化されたワークロード、アプリケーション、サードパーティツールを使用できます。WIFは、長期にわたる秘密保持に依存するのではなく、AWS、Azure、Google CloudなどのクラウドプロバイダーのIDを使用して短い期間の認証を動的に取得できるようにします。また、KubernetesやGitHub ActionsなどのOIDCプロバイダーが存在するプラットフォームもサポートしています。次に、SnowflakeはIDプロバイダーに対してこれらの認証を直接検証し、サービスの静的秘密を一度も確認または保存することなくアクセスを許可します。

ご満足いただける主なメリット
WIFを採用すると、長寿命のSnowflakeアクセス認証情報の保存、管理、ローテーションが不要になるため、アプリケーションは「シークレットレス」で運用できます。このアプローチは、以下のメリットをもたらします。
セキュリティの向上:お客様が管理する機密情報が漏洩することがないため、攻撃対象領域が劇的に減少します。WIFは、短期間の一時的なトークンを利用してセキュリティ態勢をさらに強化します。
複雑さの軽減:外部OAuthなどの従来のフェデレーション方式と比較して、WIFは初期設定を大幅に簡素化し、継続的なメンテナンスオーバーヘッドを削減します。つまり、統合が迅速化し、認証配管に費やす時間が短縮されます。
コスト効率:既存のクラウドプロバイダーIDを再利用することで、ID管理を一元化できます。Snowflake専用のサービスIDの管理に、追加のツールやライセンスは必要ありません。
標準化されたアプローチ:WIFは、トップクラスのクラウドプロバイダーによって広く採用されている、外部ワークロード向けの認証方式です。
WIFはどこで使用できますか?
WIFは、さまざまなService-to-Serviceの認証シナリオに最適に対応します。
クラウドホストのカスタムワークロード:サービスアカウントを介して、IAMロール、Azure VM、システムマネージドIDまたはユーザーマネージドIDを持つ関数、Google Compute Engineインスタンス、Cloud Runインスタンスを使用して、AWS EC2またはLambdaで実行されているアプリケーションを認証します。
CI/CDパイプラインGitHub ActionsワークフローをSnowflakeにセキュアに接続すると、認証情報をハードコーディングすることなく自動化してデータとやり取りできます。
コンテナ化されたアプリケーション:Kubernetesで実行されているワークロードがOIDCフェデレーションを使用してSnowflakeを認証できるようにします。
ETL/ELTジョブとデータパイプライン:堅牢でシークレットレスな認証により、データの取り込みと変換を自動化します。
私たちの目標は、上記のシナリオのほかにも、BIツールやETLツールなどの任意のサードパーティツールがOIDCフェデレーションを介してシークレットレス認証をサポートすることです。Snowflakeは多くのプロバイダーとコラボレーションしていますが、サードパーティプロバイダーにはSnowflakeのシークレットレスイニシアチブへの参加を依頼し、Snowflakeの任意のService-to-Service認証方式としてWIFを採用することをお勧めしています。
WIFの利用開始はシンプル
WIFの設定には、いくつかの簡単なステップが含まれます。通常は、クラウドプロバイダーの設定と、SnowflakeでのSERVICEユーザーの作成が必要です。
以下は、AWS EC2インスタンスの接続例です。
AWSの構成:AWSでEC2インスタンスにIAMロールをアタッチします。
Snowflakeユーザーの作成:Snowflake SERVICEユーザーを作成し、WORKLOAD_IDENTITYプロパティを使用してAWS IAMロールのARNに関連付けます。
CREATE USER <username>
WORKLOAD_IDENTITY = (
TYPE = AWS
ARN = '<amazon_resource_identifier>'
)
TYPE = SERVICE
DEFAULT_ROLE = PUBLIC;3.ドライバで接続:最新のSnowflakeドライバーを使用するようにアプリケーションを更新し、接続文字列にauthenticator='WORKLOAD_IDENTITY'とworkload_identity_provider='AWS'を指定します。ドライバーはプラットフォームネイティブの認証情報を自動検出します。
Pythonの場合:
import snowflake.connector
conn = snowflake.connector.connect(
account='<snowflake_account>',
authenticator='WORKLOAD_IDENTITY',
workload_identity_provider='AWS'
)
# Your Snowflake operations
conn.cursor().execute("SELECT 1;")
シークレットレス化してSnowflakeのセキュリティを強化する準備はできていますか?開始方法をいくつか紹介します。
AWS、Azure、GCP、OIDCフェデレーション(Kubernetes、GitHub Actionsなど)の詳細なセットアップガイドと例については、包括的なドキュメントを参照してください。
この強力な新機能を活用するために、最新のSnowflakeドライバーにアップグレードする。
お気に入りのサードパーティツールに、Salesforce Data Cloudに例示されるようなシークレットレスな統合を奨励する
フィードバックを共有して、AIデータクラウドの継続的な強化に役立てる
このブログでの作業については、以下のSnowflakeコントリビューターに感謝します: Dima Basavin、James Kasten、Peter Mansour、Eric Woroshow、Xiaomihu Zhao

