Dataform で非公開パッケージを認証する

このドキュメントでは、Dataform で非公開 NPM パッケージを認証して、Dataform リポジトリでのインストールを有効にする方法について説明します。

Dataform リポジトリに非公開 NPM パッケージをインストールし、それを使用して SQL ワークフローを開発するには、まず Dataform でパッケージを認証する必要があります。認証プロセスは、リポジトリ内の最初の非公開パッケージリポジトリ内の後続の非公開パッケージで異なります。

始める前に

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    [Dataform] ページに移動

  2. リポジトリを作成または選択します。

  3. 開発ワークスペースを作成または選択します。

必要なロール

Dataform で非公開 NPM パッケージを認証するために必要な権限を取得するには、リポジトリとワークスペースに対する Dataform 編集者 roles/dataform.editor)IAM ロール の付与を管理者に依頼してください。 ロールの付与の詳細については、アクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Dataform リポジトリで最初の非公開パッケージを認証する

Dataform で非公開 NPM パッケージを認証するには、まず最初の非公開 NPM パッケージを Dataform リポジトリにインストールする前に、次の作業を行う必要があります。

  1. 非公開 NPM パッケージの認証トークンを Dataform リポジトリに保存する専用の Secret Manager シークレットを作成します。

    1. NPM レジストリから取得したパッケージの認証トークンをシークレットに追加します。

    非公開 NPM パッケージのすべての認証トークンを 1 つのシークレット内のリポジトリに保存する必要があります。Dataform リポジトリごとに 1 つの専用シークレットを作成する必要があります。シークレットは JSON 形式にする必要があります。

  2. Dataform リポジトリにシークレットをアップロードします。

  3. .npmrc ファイルを作成し、パッケージの認証トークンをファイルに追加します。

    .npmrc ファイルの認証トークンは、アップロードされたシークレットの認証トークンと一致する必要があります。

非公開 NPM パッケージを認証したら、Dataform リポジトリにパッケージをインストールできます。

非公開パッケージの認証用のシークレットを作成する

Dataform リポジトリで非公開 NPM パッケージを認証するには、Secret Manager のシークレットを作成し、シークレット内の Dataform リポジトリにインストールするすべての非公開パッケージの認証トークンを定義する必要があります。1 つの非公開 NPM パッケージごとに 1 つの認証トークンを定義し、リポジトリごとに 1 つのシークレットにすべての認証トークンを保存します。シークレットは JSON 形式にする必要があります。

非公開 NPM パッケージの認証トークンを使用してシークレットを作成するには、次の手順に従います。

  1. Secret Manager でシークレットを作成します。

    1. [シークレット値] フィールドに、1 つ以上の認証トークンを次の形式で入力します。
    {
      "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE"
    }
    

    次のように置き換えます。

    • AUTHENTICATION_TOKEN_NAME: 認証するパッケージを識別するトークンの一意の名前。
    • TOKEN_VALUE: NPM レジストリから取得した認証トークンの値
  2. Dataform サービス アカウントにシークレットへのアクセス権を付与します

    Dataform サービス アカウントの形式は次のとおりです。

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. アクセス権を付与する場合は、Dataform サービス アカウントに roles/secretmanager.secretAccessor ロールを付与してください。

非公開パッケージ認証用のシークレットを Dataform リポジトリにアップロードする

Dataform リポジトリに非公開 NPM パッケージを初めてインストールする前に、パッケージの認証トークンを含むシークレットをリポジトリにアップロードします。

非公開 NPM パッケージ認証トークンを含むシークレットを Dataform リポジトリにアップロードするには、次の手順に従います。

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. 非公開 NPM パッケージをインストールするリポジトリを選択します。

  3. リポジトリ ページで、[設定] > [非公開 NPM パッケージを設定] の順にクリックします。

  4. [NPM パッケージのシークレット トークンを追加] ペインの [シークレット] プルダウンで、非公開 NPM パッケージの認証トークンを含むシークレットを選択します。

  5. [保存] をクリックします。

非公開パッケージ認証用の .npmrc ファイルを作成する

Dataform リポジトリで非公開 NPM パッケージを認証するには、リポジトリに最上位の .npmrc ファイルを作成する必要があります。すべての非公開 NPM パッケージの認証トークンを、.npmrc ファイル内のリポジトリにインストールするように保存する必要があります。.npmrc ファイル内の認証トークンは、リポジトリにアップロードされたシークレットの認証トークンと一致する必要があります。.npmrc ファイルの詳細については、npmrc のドキュメントをご覧ください。

リポジトリに最上位の .npmrc ファイルを作成するには、次の手順を行います。

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. 非公開 NPM パッケージをインストールするリポジトリを選択し、ワークスペースを選択します。

  3. [ファイル] ペインで、 [その他] メニューをクリックし、[ファイルを作成] をクリックします。

  4. [新しいファイルを作成] ペインで、次の操作を行います。

    1. [ファイルパスを追加] フィールドに「.npmrc」と入力します。

    2. [ファイルを作成] をクリックします。

Dataform リポジトリの .npmrc ファイルに認証トークンを追加する

パッケージ認証トークンと .npmrc ファイルを含むシークレットをすでに含む Dataform リポジトリで非公開NPM パッケージを認証するには、非公開パッケージの認証トークンをリポジトリ内の .npmrc ファイルに追加する必要があります。

.npmrc ファイルで、NPM レジストリのスコープを定義し、そのスコープでアクセスされる非公開パッケージの認証トークンを追加する必要があります。.npmrc ファイルの詳細については、npmrc のドキュメントをご覧ください。

.npmrc ファイルの認証トークンは、リポジトリにアップロードされたシークレットの認証トークンと一致する必要があります。

Dataform リポジトリの .npmrc ファイルに認証トークンを追加する手順は次のとおりです。

  1. Google Cloud コンソールの [Dataform] ページに移動します。

    Dataform に移動

  2. 非公開 NPM パッケージをインストールするリポジトリを選択し、ワークスペースを選択します。

  3. [ファイル] ペインで、.npmrc ファイルを選択します。

  4. .npmrc ファイルで、非公開パッケージの NPM レジストリ スコープと認証トークンを次の形式で定義します。

   @REGISTRY-SCOPE:registry=NPM-REGISTRY-URL
   NPM-REGISTRY-URL:_authToken=$AUTHENTICATION-TOKEN

次のように置き換えます。

  • REGISTRY-SCOPE: 認証トークンを適用する NPM レジストリのスコープ
  • NPM-REGISTRY-URL: NPM レジストリの URL(例: https://npm.pkg.github.com
  • AUTHENTICATION-TOKEN: 非公開 NPM パッケージの認証トークン。.npmrc ファイルの認証トークンは、アップロードされたシークレットの認証トークンと一致する必要があります。認証トークンは、.npmrc ファイルで環境変数として提供されるため、開きの ${} の閉じ括弧を追加してください。

    複数の認証トークンを入力できます。

次のコードサンプルは、Dataform リポジトリの .npmrc ファイルに追加された非公開 NPM パッケージの認証トークンを示しています。

@company:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${AUTHENTICATION_TOKEN}

Dataform リポジトリで後続の非公開パッケージを認証する

パッケージ認証トークンと .npmrc ファイルを含むシークレットをすでに含む Dataform リポジトリで非公開 NPM パッケージを認証するには、次の手順を行います。

  1. Secret Manager で、シークレットを一覧表示して、リポジトリの非公開 NPM パッケージの認証トークンを格納するシークレットを選択します。

  2. シークレットに新しいバージョンを追加します。

    Dataform では、デフォルトでシークレットの最新バージョンが使用されます。

    1. 非公開パッケージの認証トークンを次の形式でシークレット値に追加します。
    {
      "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE"
    }
    

    次のように置き換えます。

    • AUTHENTICATION_TOKEN_NAME: 認証するパッケージを識別するトークンの一意の名前。
    • TOKEN_VALUE: NPM レジストリから取得した認証トークンの値

    一度に複数の認証トークンを追加できます。

  3. Dataform で、リポジトリの .npmrc ファイルに認証トークンを追加します。

非公開 NPM パッケージを認証したら、Dataform リポジトリにパッケージをインストールできます。

次のステップ