認証の準備
Snowflakeにアクセスするための認証タイプ(標準、認証コード、キーペア、およびクライアント資格情報)を設定できます。Snowflakeにより安全に接続するために、認証コード、キーペア、またはクライアント資格情報認証の使用を検討してください。
接続プロパティを設定する前に、使用する認証のタイプに基づいて認証の詳細を用意しておく必要があります。
標準
標準認証を使用してSnowflakeに接続するには、Snowflakeアカウントのユーザー名とパスワードが必要です。
Snowflakeアカウント名、ウェアハウス、ロールの詳細などの必要な詳細をSnowflakeアカウントから取得してみましょう。
次の画像は、Snowflakeアカウントの名前がどこに表示されるかを示しています。
次の画像は、Snowflakeアカウントのウェアハウスの名前とロールの詳細を確認できる場所を示しています。
承認コード
OAuth 2.0認証コードを使用してSnowflakeに接続するには、SnowflakeクライアントID、認証URL、アクセストークンURL、およびアクセストークンが必要です。
認証の詳細を取得するには、Snowflakeで認証統合を作成し、InformaticaリダイレクトURLをセキュリティ統合に登録する必要があります。セキュリティ統合とは、OAuthをサポートするクライアントがユーザーを認証ページにリダイレクトし、Snowflakeにアクセスするためのアクセストークン、および必要に応じて更新トークンを生成できるようにする統合の一種です。
次のInformaticaリダイレクトURLをセキュリティ統合に登録します:
https://<組織のInformaticaクラウドホスティング設備>/ma/proxy/oauthcallback
アクセストークンが期限切れになると、顧客のファイアウォール外にあるInformaticaリダイレクトURLは、エンドポイントへの接続と新しいアクセストークンの取得を試みます。
セキュリティ統合を作成し、認証の詳細を取得する方法の詳細については、Snowflakeのマニュアルの「
Create security integration」を参照してください。
注: 詳細モードで設定されたマッピングでは、認証コード認証で設定された接続を使用することはできません。
キーペア
キーペア認証を使用して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を使用してパブリックキーとプライベートキーのペアを生成した後に、詳細モードのマッピングで接続が機能するように特定のタスクを追加で実行する必要があります。
advanced clusterで設定した接続を使用してマッピングを実行する前に、マッピングタスクでクラスタアプリケーションのプロパティを設定します。
次のリストに、マッピングタスクの詳細セッションプロパティで設定する必要があるプロパティを示します。
- 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クライアントID、アクセストークンURL、クライアントシークレット、スコープ、およびアクセストークンが必要です。
クライアント資格情報付与タイプを使用してOAuthエンドポイントを設定し、次にセキュリティ統合を作成して認証の詳細を取得します。
クライアント資格情報認証を使用してSnowflakeに接続する前に、組織の管理者は前提条件のタスクを実行する必要があります。
- 1Snowflakeで使用するOAuthと互換性のあるクライアントアプリケーションを作成します。
- 2クライアント資格情報付与タイプを使用して認証サーバーを設定します。
- 3SnowflakeでOAuthタイプのセキュリティ統合を作成します。
セキュリティ統合を作成し、認証の詳細を取得する方法の詳細については、Snowflakeのマニュアルの「
Create security integration for external OAuth」を参照してください。
注: 詳細モードで設定されたマッピングでは、クライアント資格情報認証で設定された接続を使用することはできません。