Agile育成ブログ
未来を変える喜びを
未分類

SnowflakeとGitHubのAPI連携

💡 SnowflakeとGitHubのAPI連携の概要

SnowflakeがGitHubと連携する際、API統合オブジェクト(API Integration Object)が認証とセキュリティのゲートウェイの役割を果たします。

ご提示の設定は、SnowflakeがGitHubのAPIにセキュアにアクセスするための信頼関係認証情報を定義するものです。

📌 目的

SnowflakeからGitHub APIを呼び出し、以下のようなタスクをセキュアに実行することを目指します。

  1. GitHub上のコード変更履歴をSnowflakeに取り込む。
  2. Snowflakeのデータ変更に基づいて、GitHubのIssueやPull Requestを操作する。

🛠️ 各設定項目の詳細解説

1. Name

  • 役割: API統合オブジェクトの一意な識別子です。
  • 例: GITHUB_API_INTEGRATION_PROD
  • 特徴: 統合オブジェクトを作成する際に使用する、SQLオブジェクト名です。

2. Allowed Prefixes (許可されたプレフィックス)

  • 役割: Snowflakeが外部APIとして呼び出しを許可するURLのプレフィックス(URLの先頭部分)を制限します。これはセキュリティ上のガードレールとして機能します。
  • 特徴:
    • セキュリティ: ここに設定されていないURLには、この統合オブジェクトを使ってアクセスすることはできません。
    • GitHub OAuth: github.com をこのリストに含めることで、GitHub Appを通じたOAuth認証を有効にすることができます。OAuth認証はこのプレフィックス設定に依存します。
  • 設定例: https://api.github.com/repos/, https://github.com

3. Allowed Authentication Secrets (許可された認証シークレット)

  • 役割: SnowflakeがこのAPI統合で使用することを許可する認証情報(シークレット)を制限します。
  • 種類:
    • All: Snowflake内に存在するすべてのシークレットオブジェクトの使用を許可します(非推奨)。
    • None: 認証シークレットを使用せず、OAuthなど他の認証方法に依存します。
    • Specific secrets: Snowflake内に作成された特定のシークレットオブジェクト(Secret Object)のみを使用することを許可します。

4. OAuth Authentication (OAuth認証)

Allow OAuth (Snowflake GitHub App)

  • 役割: GitHub Appを利用したOAuth 2.0認証を有効にするかどうかを決定します。
  • 特徴:
    • これを有効にすると、SnowflakeがGitHub Appを介してユーザーからGitHubデータへのアクセス権を委任してもらうプロセスが可能になります。
    • OAuthは、パスワードや秘密鍵を直接共有することなくアクセス権を付与するため、非常にセキュアな認証方法です。
  • 前提条件:
    • 前述の Allowed Prefixesgithub.com が含まれている必要があります。