Snowflake認証の概要

次のセクションでは、ユーザーおよびアプリケーションがSnowflakeにアクセスするために使用できる認証方法について説明します。また、ユースケースに最適な認証方法を選択するのに役立つ重要な考慮事項も提供します。

Snowsight の認証の選択

Snowsight は、Snowflakeのユーザーインターフェースです。このセクションでは、ユーザーが Snowsight にサインインするために使用できる認証方法の概要を説明し、その後各メソッドを比較します。

注釈

Snowsight に対して認証する個人のSnowflakeユーザーオブジェクトを作成する場合、 TYPE = PERSON を指定します。ユーザーの型の詳細については、 ユーザーのタイプ をご参照ください。

シングルサインオン(SSO)

Snowsight の SSO を使用すると、ユーザーはSnowflakeで直接認証するのではなく、サードパーティのIDプロバイダー(IdP)で認証します。ユーザーが Snowsight にアクセスすると、サインインページにはSnowflakeが管理するパスワードの代わりに、 IdP で認証するオプションが含まれます。IdP はユーザーのIDを確認し、セキュリティアサーションマークアップ言語(SAML)アサーションをSnowflakeに送信します。Snowflakeと IdP には以前に確立された信頼関係があり、SnowflakeはユーザーのIDの証明としてアサーションを受け入れ、ユーザーが Snowsight にアクセスすることを許可します。

一部の組織は同じ IdP を使用して、組織のすべてのアプリケーションに SSO エクスペリエンスを提供しています。これらの組織は、Snowflakeを新しいサービスプロバイダー(SP)として追加するだけで、従業員が IdP を使用して Snowsight にアクセスできるようになります。

多要素認証(MFA)によるユーザー名とパスワード

パスワード認証により、ユーザーはパスワードポリシーによって適用される要件に適合する文字列を入力して Snowsight にアクセスできるようになります。この認証メソッドのセキュリティを強化するために、Snowflakeはすべてのパスワードユーザーに MFA を要求します。MFA では、ユーザーはパスワードを入力し、認証の2番目の要素を使用してIDを確認します。たとえば、ユーザーは認証の2番目の要素として、コンピューターに保存されているパスキーを使用する場合があります。

次のテーブルでは、ユーザーが Snowsight にサインインするために使用できる認証メソッドを比較したものです。

メソッド

メリット

チャレンジ

シングルサインオン .推奨オプション

組織が認証を集中管理できるようにします。ユーザーは、Snowflakeだけでなく、組織のすべてのアプリケーションに対して同じ IdP を使用して認証します。

既に IdP を使用してアプリケーションに SSO を提供している組織に最適です。

サードパーティIdP の構成が必要

MFA とパスワード

簡単な実装。

パスワードがSnowflakeによって管理される場合、組織はそのすべてのアプリケーションに対して認証設定を繰り返す必要があります。

アプリケーションの認証メソッドの概要

このトピックでは、アプリケーション は、 Snowsight ユーザーインターフェース経由ではなく、プログラムでSnowflakeデータにアクセスするものすべてを指します。この定義には、カスタムウェブアプリケーション、サードパーティマルチテナントアプリケーション、デスクトップアプリケーション、ローカルスクリプト、およびクラウド内のワークロードが含まれます。

使用可能な認証メソッドについて説明する場合、このトピックでは2つのタイプのアプリケーションを区別します。

  • 個人と対話し、その個人の代わりにSnowflakeに対して認証する インタラクティブアプリケーション。例: アナリストと対話するビジネスインテリジェンス(BI)ツール。

  • 他のユーザーと対話することなく、サービス専用の認証メソッドを持つ サービスツーサービスアプリケーション。例: CI/CD パイプライン。

ワークロードIDフェデレーション(WIF)

ワークロードIDフェデレーションは、シークレットレス認証の形式であり、クラウドワークロードですでに利用可能な一時的な認証情報を活用するため、安全性が高くなります。シークレットを管理したり、ローテーションしたりする必要がありません。

AWSEC2、Microsoft Azure VMs、Google Cloud VMs などのクラウドプロバイダーでワークロードが実行されている場合、ワークロードIDフェデレーションは、クラウドプロバイダーのネイティブIDメカニズムを使用して、ワークロードがSnowflakeに対して認証できるようにします。たとえば、 AWSEC2 で実行されているワークロードの場合、ワークロードに関連づけられている AWS IDおよびアクセス管理(IAM)ロールから証明書(つまりそのIDの証明)を取得できます。ワークロードのドライバーは、ネイティブIDメカニズムから証明書を取得し、それをSnowflakeに送信してワークロードを認証します。

ワークロードIDフェデレーションは、 GitHub アクションのようなサードパーティのワークロードやKubernetesで実行されているワークロードが OIDC フェデレーション と呼ばれるプロセスで、 OpenID 接続準拠のIDプロバイダー(IdP)を使用して認証することもできます。Snowflakeは、ワークロードのIDの証明として IdP によって生成された ID トークンを受け入れます。

最適:

  • サービス間のアプリケーション

認証サーバーとしてSnowflake を使用する OAuth (Snowflake OAuth)

Snowflake OAuth は OAuth 2.0認証フレームワーク のセキュリティを提供します。Snowflake OAuth を使用すると、Snowflakeは、Snowflakeユーザーを認証する認証サーバーであると同時に、クライアントからアクセストークンを受け入れてそのユーザーのデータにアクセスするリソースサーバーとしても機能します。Snowflake OAuth は、クライアントに認証コード付与タイプを使用させます。

Snowflakeは認証サーバーであるため、アプリケーションを操作するユーザーは、Snowflakeユーザーインターフェースを使用して認証します。シングルサインオン(SSO)またはパスワードでユーザーを認証するようにSnowflakeを構成できます。SSO とパスワード認証についての利点と課題については、 Snowsight の認証の選択 をご参照ください。

最適:

  • インタラクティブなアプリケーション

サードパーティの認証サーバーを使用した OAuth(外部 OAuth)

外部 OAuth も OAuth 2.0のセキュリティを提供しますが、認証サーバーとして機能するのはSnowflakeではなくサードパーティ IdP です。アプリケーションはサードパーティ IdP からアクセストークンを取得し、その後、トークンを使用してリソースとしてSnowflakeにアクセスします。

サービス間のアプリケーションは、クライアント認証情報付与タイプを使用して、独自のSnowflakeデータにアクセスできます。インタラクティブアプリケーションは、認証コード付与タイプを使用して、アプリケーションを使用している人のSnowflakeデータにアクセスできます。

最適:

  • インタラクティブなアプリケーション

  • サービス間のアプリケーション

キーペア認証

キーペア認証は、暗号化キーペア に依存します。プライベートキーとパブリックキーです。プライベートキーはアプリケーションが保持するシークレットであり、パブリックキーはSnowflakeユーザーオブジェクトに関連付けられます。認証中に、アプリケーションはプライベートキーを持っているという証明書を送信し、Snowflakeは、プライベートキーがSnowflakeユーザーに関連付けられたパブリックキーに対応していることを確認して応答します。この認証メソッドでは、パスワードを送信または保存する必要がなくなり、認証情報盗難のリスクが軽減されます。

最適:

  • サービス間のアプリケーション

標準のユースケースではありませんが、キーペア認証は対話型アプリケーションにも使用できます。

プログラムのアクセストークン(PATs)

PAT は、アプリケーションがパスワードなしで認証できる時間制限付きの認証情報です。PAT は、 MFA またはより安全な認証メソッドが機能しないシナリオで、単一要素パスワードの代替として使用できます。PAT は、一時的な認証情報であり、追加のセキュリティ対策を実装する必要があり、特定のアクセス制御ロールにスコープできるため、パスワードよりも強力です。

最適:

  • インタラクティブなアプリケーション

  • サービス間のアプリケーション

インタラクティブアプリケーションの認証の選択

インタラクティブアプリケーションとは、個人と対話し、その個人に代わってSnowflakeを認証するアプリケーションのことです。次のテーブルは、インタラクティブアプリケーションに使用できる認証メソッドに関連する利点と課題を示しています。これらの認証方法の概要については、 アプリケーションの認証メソッドの概要 をご参照ください。

注釈

インタラクティブアプリを使用している人向けにSnowflakeユーザーオブジェクトを作成する場合は、 TYPE = PERSON を指定します。ユーザーの型の詳細については、 ユーザーのタイプ をご参照ください。

メソッド

メリット

チャレンジ

Snowflake OAuth:newline:.強力なオプション

  • 外部 OAuth よりも実装が簡単

  • VS コードで実行されるスクリプトなどのローカルアプリケーションでは、管理者設定なしで OAuth のセキュリティを提供するSnowflake OAuth の組み込み実装を使用できます。詳細はこちら

  • ドライバーの制限を回避します。

  • ユーザーはシングルサインオン(SSO)でアクセスを承認できます。これにより、サードパーティ IdP の安全な認証メソッドを使用できます。

なし。

外部 OAuth:newline:.強力なオプション

  • IdP がサポートしている場合、アプリケーションを使用する人はシークレットレス形式の認証を使用できます。

  • アプリケーションの認証サーバーとしてすでにサードパーティ IdP を使用している組織に最適です。

サードパーティ IdP を認証サーバーとしての構成するための専門知識が必要です。

プログラムアクセストークン(PAT)

  • 単一要素パスワードの簡単な置き換え。

  • Snowflakeが生成した認証情報のため、Snowflakeの外部で再利用することはできません。

  • 特定のアクセス制御ロールにスコープを設定し、侵害された場合に破損を制限することができます。

  • Snowflakeでは、存続期間の長いシークレットを使用するリスクを軽減するために、追加のセキュリティ対策を実装することを 必要とします

  • GitHub シークレットスキャナープログラム は、パブリックレポジトリ内の流出したSnowflake PATs を自動的に検出し、無効にし、Snowflake管理者に通知します。

  • キーペアとは異なり、クライアントとサーバーの両方で保護する必要があります。

  • キーペアとは異なり、シークレットはリクエストでSnowflakeに送信する必要があり、一般に公開されます。

  • 侵害された場合、所有権を持つすべてのユーザーがアプリケーションを偽装することができます。

  • 長期間の認証情報に関連するセキュリティリスクは、堅牢なストレージおよびローテーション戦略など、他のセキュリティ対策で軽減する必要があります。

  • ネットワークポリシーが必要であるため、マルチテナントのクラウドアプリケーションがある場合は、お客様に IP アドレスを提供し、それらのアドレス範囲を許可するネットワークポリシーを作成できるようにする必要があります。

  • PATs を受け付ける入力フィールドは256文字以上である必要があります。

キーペア

  • 柔軟な認証メソッド。

  • リクエストで公開されないパスワードなしの認証情報。

  • 通常、インタラクティブなアプリケーションには使用されません。

  • 長期間の認証情報に関連するセキュリティリスクは、ネットワークポリシーや堅牢なストレージおよびローテーション戦略などの他のセキュリティ対策で軽減する必要があります。プログラムのアクセストークンとは異なり、キーペアは追加の手段を 必要としない ため、認証の安全性が低下する可能性があります。

サービス間のアプリケーション認証の選択

サービス間のアプリケーションは個人とやり取りせず、サービス専用の認証メソッドを持ちます。次のテーブルは、サービス間のアプリケーションで使用できる認証メソッドに関連する利点と課題を示しています。これらの認証方法の概要については、 アプリケーションの認証メソッドの概要 をご参照ください。

注釈

サービス間のアプリケーション用にSnowflakeユーザーオブジェクトを作成する場合は、 TYPE = SERVICE を指定します。ユーザーの型の詳細については、 ユーザーのタイプ をご参照ください。

メソッド

メリット

チャレンジ

ワークロードIDフェデレーション .推奨オプション

  • シークレットレス認証。

  • 管理者は、クライアント IDs およびシークレットを継続的にセキュリティ保護してローテーションする必要がありません。

なし。

外部 OAuth:newline:.強力なオプション

  • IdP がそれをサポートしていると、アプリケーションはシークレットレス形式の認証を使用できます。

  • アプリケーションの認証サーバーとしてすでにサードパーティ IdP を使用している組織に最適です。

サードパーティ IdP を認証サーバーとしての構成するための専門知識が必要です。

キーペア

  • 柔軟な認証メソッド。

  • リクエストで公開されないパスワードなしの認証情報。

長期間の認証情報に関連するセキュリティリスクは、ネットワークポリシーや堅牢なストレージおよびローテーション戦略などの他のセキュリティ対策で軽減する必要があります。プログラムのアクセストークンとは異なり、キーペアは追加の手段を 必要としない ため、認証の安全性が低下する可能性があります。

プログラムアクセストークン(PAT)

  • 単一要素パスワードの簡単な置き換え。

  • Snowflakeが生成した認証情報のため、Snowflakeの外部で再利用することはできません。

  • 特定のアクセス制御ロールにスコープを設定し、侵害された場合に破損を制限することができます。

  • Snowflakeでは、存続期間の長いシークレットを使用するリスクを軽減するために、追加のセキュリティ対策を実装することを 必要とします

  • GitHub シークレットスキャナープログラム は、パブリックレポジトリ内の流出したSnowflake PATs を自動的に検出し、無効にし、Snowflake管理者に通知します。

  • キーペアとは異なり、クライアントとサーバーの両方で保護する必要があります。

  • キーペアとは異なり、シークレットはリクエストでSnowflakeに送信する必要があり、一般に公開されます。

  • 侵害された場合、所有権を持つすべてのユーザーがアプリケーションを偽装することができます。

  • 長期間の認証情報に関連するセキュリティリスクは、堅牢なストレージおよびローテーション戦略など、他のセキュリティ対策で軽減する必要があります。