認証の準備
標準、認証コード、キーペア、クライアント資格情報、およびプログラムによるアクセストークンといった認証タイプを設定して、Snowflakeにアクセスすることができます。より安全にSnowflakeに接続するためには、認証コード、キーペア、クライアント資格情報、またはプログラムによるアクセストークン認証の使用を検討してください。
接続プロパティを設定する前に、使用する認証のタイプに基づいて認証の詳細を用意しておく必要があります。
標準
標準認証を使用してSnowflakeに接続するには、Snowflakeのユーザー名、パスワード、アカウント名、およびウェアハウス名が必要です。
Snowflakeアカウント名、ウェアハウス、ロールの詳細などの必要な詳細をSnowflakeアカウントから取得してみましょう。
次の画像は、Snowflakeアカウントの名前がどこに表示されるかを示しています。
次の画像は、Snowflakeアカウントのウェアハウスの名前とロールの詳細を確認できる場所を示しています。
承認コード
OAuth 2.0認証コードを使用してSnowflakeに接続するには、Snowflakeアカウント名、ウェアハウス名、認証URL、アクセストークンURL、クライアントID、クライアントシークレット、およびアクセストークンが必要です。
認証の詳細を取得するには、SnowflakeでOAuthアクセスを有効にするセキュリティ統合を作成します。これは、アプリケーションがSnowflakeに接続するための安全なゲートウェイとして機能します。また、セキュリティ統合に次のInformaticaリダイレクトURLを登録します。
https://<組織のInformaticaクラウドホスティング設備>/ma/proxy/oauthcallback
アクセストークンが期限切れになると、顧客のファイアウォール外にあるInformaticaリダイレクトURLは、エンドポイントへの接続と新しいアクセストークンの取得を試みます。
Snowflakeに接続するためにOAuth 2.0認証コードを使用する場合は、SnowflakeのOAuthプロバイダ、またはOktaやMicrosoft Entra IDなどのOAuthプロトコルを使用してSnowflakeにアクセスする外部のOAuth認証サーバーのいずれかを使用できます。
セキュリティ統合を作成し、認証の詳細を取得する方法の詳細については、Snowflakeのマニュアルの「
Create security integration」を参照してください。
注: 詳細モードで設定されたマッピングでは、認証コード認証で設定された接続を使用することはできません。
Snowflake用のセキュリティ統合の作成
SnowflakeでOAuth 2.0認証コード認証を使用するには、管理者がSnowflake内でセキュリティ統合を作成する必要があります。
SnowflakeでSnowflakeをOAuthプロバイダとして使用するセキュリティ統合を作成すると、SnowflakeはOAuth認証サーバーおよびOAuthリソースサーバーとして機能します。この設定により、Snowflakeが発行したアクセストークンを使用して、Snowflakeとの安全なOAuthベースの認証が可能になります。
注: Informaticaのマニュアルに含まれるサードパーティ情報は、事前通知なしに変更されることがあります。最新の情報はサードパーティのマニュアルを確認してください。
- 1Snowflakeにログインします。
- 2[ワークシート]タブから、ユーザー名とウェアハウス名をコピーします。
注: 接続を作成する際に必要となるため、これらの情報を手元に控えておいてください。
- 3操作するデータベースとスキーマを選択します。
- 4アクセスするリソース名を選択します。
- 5Snowflakeコンソールで、[ACCOUNTADMIN]ロールを選択し、セキュリティ統合コマンドを実行します。
- 6プロンプトが表示されるので、次の詳細を入力します。
- - セキュリティ統合の名前
- - OAuthアプリケーションを登録した際に指定したOAuthリダイレクトURI
- - Snowflakeの事前承認済みユーザーロール(SYSADMINやPUBLICなど)は、認証後に明示的に同意する必要がありません。
例:
Create security integration oauth_int_ac
type = oauth
enabled = true
oauth_client = custom
oauth_client_type = 'CONFIDENTIAL'
oauth_redirect_uri = 'https://<Informatica cloud hosting facility for your organization>/ma/proxy/oauthcallback'
oauth_issue_refresh_token = true
pre_authorized_roles_list = ('SYSADMIN','PUBLIC')
- 7変更を適用するためにセキュリティ統合コマンドを再実行します。
Snowflakeコンソールでセキュリティ統合が作成されます。
次のビデオでは、OAuth 2.0認証コードを使用してSnowflakeアカウントから必要な情報を取得する方法を確認できます。
Okta用のセキュリティ統合の作成
OktaでOAuth 2.0認証コード認証を使用するには、組織の管理者が特定の前提条件タスクを実行する必要があります。
SnowflakeでOkta用のセキュリティ統合を作成すると、SnowflakeはOAuthリソースサーバーとして機能し、Oktaは外部OAuth認証サーバーとして機能します。この設定により、Oktaから発行されたアクセストークンを使用して、Snowflakeへの安全なOAuthベースの認証が可能になります。
注: Informaticaのマニュアルに含まれるサードパーティ情報は、事前通知なしに変更されることがあります。最新の情報はサードパーティのマニュアルを確認してください。
- 1Oktaアカウントを作成します。
注: Snowflakeアカウント名とOktaアカウント名が同じであることを確認してください。
- 2AdminコンソールからOktaでアプリケーションを登録します。
Oktaへのアプリケーションの登録に関する詳細については、Oktaのマニュアルの「
Set up your application」を参照してください。
- 3Oktaで認証サーバーを作成します。
Okta認証サーバーの作成に関する詳細については、Snowflakeのマニュアルの「
Create an OAuth authorization server」を参照してください。
- 4Oktaの認証情報を取得します。
注: SnowflakeでOkta用のセキュリティ統合を作成する際に必要となるため、これらの詳細情報を手元に控えておいてください。
- 5Snowflakeで管理者としてログインします。
- 6SnowflakeでOkta用のセキュリティ統合を作成するには、有効なパラメータ値で次のコマンドを実行します。
create security integration external_oauth_okta_2
type = external_oauth
enabled = true
external_oauth_type = okta
external_oauth_issuer = '<Okta_Issuer>'
external_oauth_jws_keys_url = '<Okta_JWS_Key_Endpoint>'
external_oauth_audience_list = ('<Snowflake_audience>')
external_oauth_token_user_mapping_claim = 'sub'
external_oauth_snowflake_user_mapping_attribute = 'login_name';
SnowflakeでOkta用のセキュリティ統合を作成するための詳細な手順については、Snowflakeのマニュアルの「
Configure Okta for External OAuth」を参照してください。
Microsoft Entra ID用のセキュリティ統合の作成
Microsoft Entra IDでOAuth 2.0認証コード認証を使用するには、組織の管理者が特定の前提条件タスクを実行する必要があります。
SnowflakeでMicrosoft Entra IDのセキュリティ統合を作成すると、SnowflakeはOAuthリソースサーバーとして機能し、Microsoft Entra IDは外部OAuth認証サーバーとして機能します。この設定により、Microsoft Entra IDから発行されたアクセストークンを使用して、Snowflakeへの安全なOAuthベースの認証が可能になります。
注: Informaticaのマニュアルに含まれるサードパーティ情報は、事前通知なしに変更されることがあります。最新の情報はサードパーティのマニュアルを確認してください。
- 1Microsoft Entra IDでSnowflakeをOAuthリソースとして設定します。
注: OAuth認証中にアプリケーションが要求する必要のある権限を定義するスコープを追加します。
- 2Microsoft Entra IDでOAuthクライアントを作成し、API権限を[委任権限]に設定します。
- 3Microsoft Entra ID認証の詳細を取得します。
注: SnowflakeでMicrosoft Entra ID用のセキュリティ統合を作成する際に必要となるため、これらの詳細情報を手元に控えておいてください。
- 4Snowflakeで管理者としてログインします。
- 5Microsoft Entra ID用のセキュリティ統合を作成するには、有効なパラメータ値で次のコマンドを実行します。
create security integration external_oauth_azure_2
type = external_oauth
enabled = true
external_oauth_type = azure
external_oauth_issuer = '<Microsoft Entra ID_Issuer>'
external_oauth_jws_keys_url = '<Microsoft Entra ID_JWS_Key_Endpoint>'
external_oauth_audience_list = ('<Snowflake application ID URI>')
external_oauth_token_user_mapping_claim = 'upn'
external_oauth_snowflake_user_mapping_attribute = 'login_name';
SnowflakeでMicrosoft Entra ID用のセキュリティ統合を作成する詳細な手順については、Snowflakeのマニュアルの「
Configure Microsoft Entra ID for External OAuth」を参照してください。
キーペア
キーペア認証を使用してSnowflakeに接続するには、Snowflakeアカウントのユーザー名とともに、プライベートキーファイルとプライベートキーファイルのパスワードが必要です。
OpenSSLを使用してパブリックキーとプライベートキーのペアを生成します。キーペア認証方法には2048ビットのRSAキーペアが必要です。Snowflakeにアクセスするには、接続プロパティでプライベートキーファイルへのパスおよびパスワードを指定します。
パブリックキーとプライベートキーの生成
キーペア認証用のパブリックキーとプライベートキーを生成するには、Snowflakeでセキュリティ管理以上のロールが必要です。
- 1Open SSLコマンドラインから、プライベートキーを生成します。
- - 復号化されたプライベートキーを生成するには、次のコマンドを実行し、表示されたプロンプトに従ってパスフレーズを入力します。
$ openssl genrsa 2048 | openssl pkcs8 -topk8 -<cryptographic algorithm> -inform PEM -out rsa_key.p8 -nocrypt
- - 暗号化されているプライベートキーを生成するには、次のコマンドを実行し、表示されたプロンプトに従ってパスフレーズを入力します。
$ openssl genrsa 2048 | openssl pkcs8 -topk8 -<cryptographic algorithm> -inform PEM -out rsa_key.p8
注: Snowflakeのマニュアルを参照して、コマンドで推奨される暗号化アルゴリズムを使用してプライベートキーを生成します。
パスフレーズは、Snowflakeへの接続中に、プライベートキーファイルを暗号化するために使用されます。
- 2パブリックキーを生成します。次のコマンドを実行し、ファイルにあるrsa_key.p8などの暗号化されたプライベートキーを指定します:
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
- 3Secure Agentがアクセスできるディレクトリにパブリックおよびプライベートキーファイルをコピーします。
例: C:\Program Files\Informatica Cloud Secure Agent\apps\Data_Integration_Server\data\snowflake\rsa_key.p8
Snowflake接続を設定するときにパスの詳細が必要になります。
- 4Snowflakeで、ALTER USERコマンドを使用してパブリックキーをSnowflakeユーザーに割り当てます。
alter user <user> set rsa_public_key='<content of the public key
after removing the header and footer lines>';
- 例えば、alter user jsmith set rsa_public_key='MIIXBIjABCdef...';
Snowflake用のキーペア認証の設定の詳細については、Snowflakeのマニュアルを参照してください。
詳細クラスタでのプライベートキーの設定
OpenSSLを使用してパブリックキーとプライベートキーのペアを生成した後に、詳細モードのマッピングで接続が機能するように特定のタスクを追加で実行する必要があります。
詳細クラスタで設定した接続を使用してマッピングを実行する前に、マッピングタスクでクラスタアプリケーションのプロパティを設定します。
次のリストに、マッピングタスクの詳細セッションプロパティで設定する必要があるプロパティを示します。
- Spark.NeedUserCredentialFileForAdapter=true
- Spark.UserCredentialDirOnDISに指定した場所のプライベートキーの内容を、Secure AgentマシンからSparkドライバおよびエグゼキュータにコピーします。資格情報ファイルを含むフォルダには、1MBの制限はありません。クラスタアプリケーションにコピーするシークレットキーコンテンツの資格情報ファイルは、1MBを超えないようにする必要があります。値をtrueに設定する必要があります。デフォルトはfalseです。
- このフラグを設定していない場合、またはこのフラグをfalseに設定した場合、プライベートキーファイルはクラスタアプリケーションにコピーされず、マッピングは失敗します。
- Spark.UserCredentialDirOnDIS=<プライベートキーファイルディレクトリ>
- プライベートキーコンテンツをクラスタアプリケーションにコピーするために指定したディレクトリで、プライベートキーを含むデフォルトのSecure Agentディレクトリをオーバーライドします。デフォルトのディレクトリは/infa/user/credentialsです。ディレクトリにプライベートキーのファイル名が含まれていないことを確認します。
- このフラグを設定しない場合は、デフォルトの場所が使用されます。デフォルトの場所を使用するには、/infa/user/credentialsディレクトリをSecure Agentマシンに作成し、そこにプライベートキーファイルをコピーします。
- マッピングタスクの詳細セッションプロパティで指定した場所をオーバーライドするフラグを設定する場合、Spark.UserCredentialDirOnDISに指定したオーバーライドの場所にプライベートキーファイルが含まれていることを確認します。オーバーライドの場所とプライベートキーファイルに書き込み権限があることを確認します。
次の画像に、マッピングタスクで設定された詳細カスタムプロパティを示します。
クライアント資格情報。
OAuth 2.0クライアント資格情報を使用してSnowflakeに接続するには、Snowflakeアカウント名、ウェアハウス名、アクセストークンURL、クライアントID、クライアントシークレット、スコープ、およびアクセストークンが必要です。
クライアント資格情報付与タイプを使用してOAuthエンドポイントを設定し、次にセキュリティ統合を作成して認証の詳細を取得します。
クライアント資格情報認証を使用してSnowflakeに接続する前に、組織の管理者は前提条件のタスクを実行する必要があります。
- 1Snowflakeで使用するOAuthと互換性のあるクライアントアプリケーションを作成します。
- 2クライアント資格情報付与タイプを使用して認証サーバーを設定します。
- 3Snowflakeで外部OAuth用のセキュリティ統合を作成します。
Snowflakeに接続するためにOAuth 2.0クライアント資格情報を使用する場合は、OktaやMicrosoft Entra IDなどのOAuthプロトコルを使用してSnowflakeにアクセスする外部のOAuth認証サーバーを使用する必要があります。
外部OAuth認証サーバー用のセキュリティ統合の作成方法や認証情報の取得方法の詳細については、Snowflakeのマニュアルの「
Create security integration for external OAuth」を参照してください。
注: 詳細モードで設定されたマッピングでは、クライアント資格情報認証で設定された接続を使用することはできません。
Okta用のセキュリティ統合の作成
OktaでOAuth 2.0クライアント資格情報を使用するには、組織管理者が特定の前提条件タスクを実行する必要があります。
SnowflakeでOkta用のセキュリティ統合を作成すると、SnowflakeはOAuthリソースサーバーとして機能し、Oktaは外部OAuth認証サーバーとして機能します。この設定により、Oktaから発行されたアクセストークンを使用して、Snowflakeへの安全なOAuthベースの認証が可能になります。
注: Informaticaのマニュアルに含まれるサードパーティ情報は、事前通知なしに変更されることがあります。最新の情報はサードパーティのマニュアルを確認してください。
- 1Oktaアカウントを作成します。
注: Snowflakeアカウント名とOktaアカウント名が同じであることを確認してください。
- 2AdminコンソールからOktaでアプリケーションを登録します。
Oktaへのアプリケーションの登録に関する詳細については、Oktaのマニュアルの「
Set up your application」を参照してください。
- 3Oktaで認証サーバーを作成します。
Okta認証サーバーの作成に関する詳細については、Snowflakeのマニュアルの「
Create an OAuth authorization server」を参照してください。
- 4Oktaの認証情報を取得します。
注: SnowflakeでOkta用のセキュリティ統合を作成する際に必要となるため、これらの詳細情報を手元に控えておいてください。
- 5Snowflakeで管理者としてログインします。
- 6SnowflakeでOkta用のセキュリティ統合を作成するには、有効なパラメータ値で次のコマンドを実行します。
create security integration external_oauth_okta_2
type = external_oauth
enabled = true
external_oauth_type = okta
external_oauth_issuer = '<Okta_Issuer>'
external_oauth_jws_keys_url = '<Okta_JWS_key_Endpoint>'
external_oauth_audience_list = ('<Snowflake_audience>')
external_oauth_token_user_mapping_claim = 'sub'
external_oauth_snowflake_user_mapping_attribute = 'login_name';
SnowflakeでOkta用のセキュリティ統合を作成するための詳細な手順については、Snowflakeのマニュアルの「
Configure Okta for External OAuth」を参照してください。
Microsoft Entra ID用のセキュリティ統合の作成
Microsoft Entra IDでOAuth 2.0クライアント資格情報認証を使用するには、特定の前提条件タスクを実行する必要があります。
SnowflakeでMicrosoft Entra IDのセキュリティ統合を作成すると、SnowflakeはOAuthリソースサーバーとして機能し、Microsoft Entra IDは外部OAuth認証サーバーとして機能します。この設定により、Microsoft Entra IDから発行されたアクセストークンを使用して、Snowflakeへの安全なOAuthベースの認証が可能になります。
注: Informaticaのマニュアルに含まれるサードパーティ情報は、事前通知なしに変更されることがあります。最新の情報はサードパーティのマニュアルを確認してください。
- 1Microsoft Entra IDでSnowflakeをOAuthリソースとして設定します。
注: OAuth認証に必要なスコープやその他のアプリケーション設定を管理するために、マニフェストを編集します。
- 2Microsoft Entra IDでOAuthクライアントを作成し、API権限を[アプリケーション権限]に設定します。
- 3Microsoft Entra ID認証の詳細を取得します。
注: SnowflakeでMicrosoft Entra ID用のセキュリティ統合を作成する際に必要となるため、これらの詳細情報を手元に控えておいてください。
- 4Snowflakeで管理者としてログインします。
- 5Microsoft Entra ID用のセキュリティ統合を作成するには、有効なパラメータ値で次のコマンドを実行します。
create security integration external_oauth_azure_2
type = external_oauth
enabled = true
external_oauth_type = azure
external_oauth_issuer = '<Microsoft Entra ID_Issuer>'
external_oauth_jws_keys_url = '<Microsoft Entra ID_JWS_Key_Endpoint>'
external_oauth_audience_list = ('<Snowflake application ID URI>')
external_oauth_token_user_mapping_claim = 'sub'
external_oauth_snowflake_user_mapping_attribute = 'login_name';
SnowflakeでMicrosoft Entra ID用のセキュリティ統合を作成する詳細な手順については、Snowflakeのマニュアルの「
Configure Microsoft Entra ID for External OAuth」を参照してください。
プログラムによるアクセストークン
プログラムによるアクセストークン認証を使用してSnowflakeに接続するには、Snowflakeのユーザー名、プログラムによるアクセストークン、アカウント名、およびウェアハウス名が必要です。
環境にデプロイされたSecure Agent、サーバーレスランタイム環境、またはエラスティックランタイム環境を使用する場合は、そのIPアドレスの範囲からPATを使用してSnowflakeに接続できるようにする必要があります。
SnowflakeでIPアドレスの範囲を許可するには、次のタスクを実行します。
- 1許可するIPアドレスに対するネットワークルールを作成します。
ネットワークルールの作成の詳細については、Snowflakeドキュメントの「
Working with network rules」を参照してください。
- 2作成したネットワークルールのネットワークポリシーを作成します。
ネットワークポリシーの作成の詳細については、Snowflakeドキュメントの「
Working with network policies」を参照してください。
PATを生成する詳細な手順については、Snowflakeドキュメントの「
Generating a programmatic access token」を参照してください。