Snowpipe Streamingの設定

Snowpipe Streamingプロパティ

profile.json ファイルで API 接続設定を構成します。プロパティについては、このトピックで説明します。

Java の例 (GitHub)で示されているように、変数 PROFILE_PATH への入力としてファイルパスを指定することにより、 profile.json から設定を読み込むことができます。

必須のプロパティ

authorization_type

ユーザーの認証および承認メソッドを構成します。次のいずれかのメソッドを使用します。

  • JWT : JSON Webトークン(JWT)によるキーペア認証。このメソッドがデフォルトです。 authorization_type が構成されていない場合、デフォルトのメソッド JWT が使用されます。キーペア認証用に次の private_key を構成します。

    • private_key ユーザーを認証するための秘密キー。ヘッダーまたはフッターではなく、キーのみを含めます。キーが複数の行に分割されている場合、改行を削除します。

      暗号化されていないキーを提供するか、暗号化されたキーを提供して snowflake.private.key.passphrase パラメーターを提供し、Snowflakeがキーを復号化できるようにします。このパラメータは、 snowflake.private.key パラメーター値が暗号化されている場合 にのみ 使用します。

  • OAuth : Snowflake OAuth。このオプションは、Snowflake Ingest SDK バージョン2.0.3以降でのみ使用できます。 profile.json ファイル内のSnowflake OAuth に対して次のパラメーターを構成します。

    • oauth_client_id : OAuth 統合のクライアント ID。

    • oauth_client_secret : OAuth 統合のクライアントシークレット。

    • oauth_refresh_token : OAuth 統合の有効なリフレッシュトークン。

url

Snowflakeアカウントにアクセスするための URL。この URL には、使用する アカウント識別子 が含まれている必要があります。プロトコル(https://)とポート番号はオプションです。

すでにSnowflake Ingest SDK を使用しており、 profile.json ファイルで hostscheme、および port プロパティを設定している場合は、 url は必要ありません。

user

Snowflakeアカウントのユーザーログイン名。

オプションのプロパティ

snowflake.private.key.passphrase

キーが暗号化されている場合に秘密キーを復号化するためのパスフレーズ。詳細については、 キーペア認証およびキーローテーションの使用 (このトピック内) をご参照ください。

role

Snowflakeに接続した後にセッションに使用するアクセス制御ロール。

role プロパティは、Snowflake Ingest SDK バージョン2.0.3以降ではオプションとなります。これは、Ingest SDK の旧バージョンでは必要です。

認証および承認

Snowflake OAuth を使用する

Snowflake Ingest SDK バージョン2.0.3以降、またはKafkaバージョン2.1.2用Snowflakeコネクタでは、認証方法として Snowflake OAuth を使用できます。

ワークフロー に従ってSnowflake OAuth 統合を作成し、 OAuth エンドポイントを呼び出して認証コードを要求してアクセストークンをリフレッシュします。トークンリクエストの応答には oauth_refresh_token が含まれます。Snowflakeの OAuth 統合 が作成されたら、 SYSTEM$SHOW_OAUTH_CLIENT_SECRETS 関数を実行して oauth_client_idoauth_client_secret を取得します。

Snowflake OAuth を有効にするには、 profile.json ファイルの authorization_typeOAuth に設定し、 oauth_refresh_tokenoauth_client_idoauth_client_secret フィールドに上記で取得したパラメーターを入力します。

キーペア認証とキーローテーションの使用

API 呼び出しは、 JSON Webトークン(JWT)によるキーペア認証に依存しています。JWTs では、 RSA 暗号化を使用した公開/秘密キーペアを使用して署名されます。この認証方法には、2048ビット(最小)の RSA キーペアが必要です。 OpenSSLを使用して公開キーと秘密キーのペアを生成します。公開キーは、プロパティファイルで定義されたSnowflakeユーザーに割り当てられます。

キーペアのローテーション で説明されているキーペアの認証手順を完了します。秘密キー全体をコピーして、プロパティファイルの snowflake.private.key フィールドに貼り付けます。ファイルを保存します。

フィンガープリントを作成して JWT トークンを生成する例については、 Javaの例 をご参照ください。

次に、 シークレットの外部化 (このトピック内) の推奨事項を評価します。

シークレットの外部化

Snowflakeは、秘密キーなどの秘密を外部化し、暗号化された形式、または AWS Key Management Service(KMS)、Microsoft Azure Key Vault、 HashiCorp Vaultなどのキー管理サービスで保存することを強くお勧めします。

詳細については、この サービス のConfluent説明をご参照ください。