接続を検証する

このドキュメントは、サービス アカウントと AWS アカウントが Assured Open Source Software サービスへのアクセスに対して正常に有効になっていることを確認する際に役立ちます。

Google Cloud サービス アカウントまたは(無料枠の場合のみ)AWS アカウント ID が Assured OSS リポジトリとキュレートされたパッケージのポートフォリオへのアクセスに対して有効になっているかどうかを検証するには、API を使用して利用可能な Java パッケージまたは Python パッケージを一覧表示します。これを行うには、API を直接呼び出すか、Cloud Shell を使用して API への curl コマンドライン呼び出しを実行します。

無料枠を使用している場合、顧客有効化フォームの送信後 1 時間以上、権限拒否エラーが発生することがまれにあります。

このドキュメントは、プレミアム ティアと無料ティアの両方に適用されます。

始める前に

  1. Google Cloud CLI の最新バージョンをインストールします。以前に Google Cloud CLI をインストールした場合は、次のコマンドを実行して、最新バージョンがインストールされていることを確認してください。

    gcloud components update
    
  2. Google Cloudを使用して Assured OSS にアクセスするには、Assured OSS で有効にしたサービス アカウントの親 Google Cloud プロジェクトに対して Artifact Registry API を有効にします。プレミアム ティアを使用している場合、API は設定時に有効になります。

  3. ネットワークの許可リストに次の URL を追加します。

    • *.pkg.dev
    • artifactregistry.googleapis.com

認証を設定する

Google Cloudの場合

  1. サービス アカウント キーを生成してダウンロードします。サービス アカウント キーの管理に関するベスト プラクティスに従うことをおすすめします。

  2. Google Cloud CLI にすでにログインしている場合は、既存の認証を取り消します。

    gcloud auth revoke
    
  3. Google Cloudに対して認証します。

    gcloud auth login --cred-file=FILEPATH.json
    

    FILEPATH はサービス アカウント キーのパスです。

  4. アプリケーションのデフォルト認証情報を更新します。

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    FILEPATH はサービス アカウント キーのパスです。

AWS の場合

次の手順は、Assured OSS の無料ティアにのみ適用されます。

  1. EC2 インスタンスを設定して、一時的な認証情報のリクエストを許可します。

    1. AWS Management Console にログインします。
    2. AWS Management Console で、EC2 ダッシュボードに移動し、ターゲット EC2 インスタンスを選択します。
    3. [アクション] > [セキュリティ] > [IAM ロールを変更] を選択します。
    4. [Create New IAM Role] > [Create role] を選択します。
    5. 信頼できるエンティティ タイプとして、[AWS Service] を選択します。
    6. ユースケースとして [EC2] を選択します。
    7. AmazonEC2ReadOnlyAccess 権限を追加し、[次へ] をクリックします。
    8. IAM ロールにわかりやすい名前を付けて、[次へ] をクリックします。
    9. [IAM ロールの変更] に戻ります。新しく作成したロールを選択し、[IAM ロールを更新] をクリックします。
  2. 認証情報構成ファイルを生成します。

    gcloud iam workload-identity-pools create-cred-config \
    projects/ASSIGNED_PROJECT_NUMBER/locations/global/workloadIdentityPools/aoss-wif-pool/providers/aws-AWS_ACCOUNT_ID-provider \
    --service-account=aoss-wif-aws-AWS_ACCOUNT_ID-sa@ASSIGNED_PROJECT_ID.iam.gserviceaccount.com \
    --aws \
    --output-file=FILEPATH.json
    

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

    • AWS_ACCOUNT_ID: AWS アカウントの 12 桁の番号(例: 123456789012)。
    • FILEPATH: 構成を保存するファイル。+ ASSIGNED_PROJECT_ID: 有効化メールに記載されている、割り当てられた Google Cloud プロジェクト ID。+ ASSIGNED_PROJECT_NUMBER: 有効化メールに記載されている、割り当てられた Google Cloud プロジェクト番号。

    AWS IMDSv2 を使用する場合は、前のコマンドに --enable-imdsv2 フラグを追加します。詳細については、認証情報構成を作成するをご覧ください。

  3. Google Cloud CLI にすでにログインしている場合は、既存の認証を取り消します。

    gcloud auth revoke
    
  4. Google Cloudに対して認証します。

    gcloud auth login --cred-file=FILEPATH.json
    

    ここで、FILEPATH は認証情報の構成ファイルのパスです。

  5. アプリケーションのデフォルト認証情報を更新します。

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    FILEPATH は、サービス アカウント キーまたは認証情報の構成ファイルへのパスです。

認証に関連する問題のトラブルシューティングについては、認証エラーのトラブルシューティングをご覧ください。

Assured OSS で利用可能なすべての Java パッケージを一覧表示する

REST API を使用して、すべての Java パッケージとそのバージョンを一覧表示できます。

Assured OSS の無料ティアの場合は、次の HTTP リクエストを入力します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

Assured OSS のプレミアム ティアの場合は、次の HTTP リクエストを入力します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages

PROJECT_ID は、Assured OSS の設定時に選択したプロジェクトの ID に置き換えます。

次の curl コマンドは、無料枠の Java リポジトリに接続する例です。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

このリクエストは、次のサンプル レスポンスに類似したレスポンスを返します。

  {
    "mavenArtifacts": [
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/com.alibaba:fastjson:1.2.83",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.pom",
        "groupId": "com.alibaba",
        "artifactId": "fastjson",
        "version": "1.2.83",
        "createTime": "2022-06-24T09:10:05.166879Z",
        "updateTime": "2022-06-24T09:10:05.166879Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-api:2.17.1",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-api",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:22:50.113695Z",
        "updateTime": "2022-03-16T12:22:50.113695Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-core:2.17.1",
      "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-core",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:26:40.317215Z",
        "updateTime": "2022-03-16T12:26:40.317215Z"
      }
    ]
  }

利用可能なパッケージが多数ある場合、API レスポンスはページングされることがあります。リスト出力が未完了の場合、レスポンスで継続トークン nextPageToken が返されます。nextPageToken は、返された最後の結果を表します。nextPageToken の値を後続のリクエストの pageToken パラメータに渡すと、最後の結果の後に続く次の結果ページが返されます。

結果の次のページを表示するか、ページごとに返されるオブジェクトの数を増やすには、次の URL を使用します。

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

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

  • NUMBER: ページごとに返されるアイテムの数。最大許容値は 1,000 です。
  • NEXT_PAGE_TOKEN: JSON レスポンスで返された nextPageToken トークン値。

または、次のスクリプトを使用して、前述の API リクエストのページネーションされた結果をファイルに収集することもできます。

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME1
    [ -n "$nextPageToken" ]
do
:
done

省略可: プライマリ Java パッケージ名のソート済みリストを FILENAME2 に書き込みます

次の追加のコマンドライン アクションは、返された Java パッケージの未加工のリストをフィルタして、プライマリ パッケージ名のリストのみを取得します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep artifactId | sort -f | uniq >  FILENAME2

省略可: Java パッケージ バージョンのソート済みリストを FILENAME3 に書き込みます。

次の追加のコマンドライン アクションは、返された Java パッケージの未加工のリストをフィルタして、パッケージ バージョンのリストのみを取得します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME3

Assured OSS で利用可能なすべての Python パッケージを一覧表示する

REST API を使用して、すべての Python パッケージとそのバージョンを一覧表示できます。これらのパッケージは Python 3.8 で使用できます。

Assured OSS の無料ティアの場合は、次の HTTP リクエストを入力します。

  GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages

Assured OSS のプレミアム ティアの場合は、次の HTTP リクエストを入力します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"

PROJECT_ID は、Assured OSS の設定時に選択したプロジェクトの ID に置き換えます。

環境に固有のすべてのパッケージを一覧表示するには、generator.sh スクリプトを使用します

次のコマンドは、無料枠の Assured OSS Python リポジトリに接続するための curl コマンドの例です。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages"

このリクエストは、次のサンプル レスポンスに類似したレスポンスを返します。

  {
  "pythonPackages": [
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/Flask:2.1.2",
      "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/flask/Flask-2.1.2-py3-none-any.whl",
        "packageName": "Flask",
        "version": "2.1.2",
        "createTime": "2022-07-13T11:06:54.163313Z",
        "updateTime": "2022-07-13T11:06:54.163313Z"
    },
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.3.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.3.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.3.0",
        "createTime": "2022-07-13T11:06:17.263638Z",
        "updateTime": "2022-07-13T11:06:17.263638Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.4.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.4.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.4.0",
        "createTime": "2022-07-13T11:09:00.865162Z",
        "updateTime": "2022-07-13T11:09:00.865162Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/urllib3:1.26.8",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/urllib3/urllib3-1.26.8-py2.py3-none-any.whl",
        "packageName": "urllib3",
        "version": "1.26.8",
        "createTime": "2022-07-13T11:05:56.529484Z",
        "updateTime": "2022-07-13T11:05:56.529484Z"
      }
    ]
  }

利用可能なパッケージが多数ある場合、API レスポンスはページングされることがあります。リスト出力が未完了の場合、レスポンスで継続トークン nextPageToken が返されます。nextPageToken は、返された最後の結果を表します。nextPageToken の値を後続のリクエストの pageToken パラメータに渡すと、最後の結果の後に続く次の結果ページが返されます。

結果の次のページを表示するか、ページごとに返されるオブジェクトの数を増やすには、無料枠で次の URL を使用します。

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

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

  • NUMBER: ページごとに返されるアイテムの数。最大許容値は 1,000 です。
  • NEXT_PAGE_TOKEN: JSON レスポンスで返された nextPageToken トークン値。

または、次のスクリプトを使用して、前述の API リクエストのページネーションされた結果をファイルに収集することもできます。

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME4
    [ -n "$nextPageToken" ]
do
:
done

省略可: プライマリ Python パッケージ名のソート済みリストを FILENAME5 に書き込みます

次の追加のコマンドライン アクションは、返された Python パッケージの未加工のリストをフィルタして、プライマリ パッケージ名のみのリストを取得します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep packageName | sort -f | uniq > FILENAME5

省略可: Python パッケージ バージョンのソート済みリストを FILENAME6 に書き込みます。

次の追加のコマンドライン アクションは、返された Python パッケージの未加工のリストをフィルタして、パッケージ バージョンのリストのみを取得します。

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME6

Assured OSS で利用可能なすべての Go パッケージを一覧表示する

REST API を使用して、すべての Go パッケージとそのバージョンを一覧表示できます。

Assured OSS の無料ティアの場合は、次の HTTP リクエストを入力します。

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages"

Assured OSS のプレミアム ティアの場合は、次の HTTP リクエストを入力します。

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages

PROJECT_ID は、Assured OSS の設定時に選択したプロジェクトの ID に置き換えます。

次の curl コマンドは、無料枠の Go リポジトリに接続する例です。

curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages

このリクエストは、次のようなレスポンスを返します。

{
  "packages": [
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth",
      "createTime": "2025-08-05T06:04:54.442071Z",
      "updateTime": "2025-08-05T06:04:54.442071Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth%2Foauth2adapt",
      "createTime": "2025-08-05T06:04:41.242052Z",
      "updateTime": "2025-08-05T06:04:41.242052Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fcompute%2Fmetadata",
      "createTime": "2025-08-05T06:05:31.140186Z",
      "updateTime": "2025-08-05T06:05:31.140186Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fiam",
      "createTime": "2025-08-05T06:04:54.455300Z",
      "updateTime": "2025-08-05T06:04:54.455300Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Flogging",
      "createTime": "2025-08-05T06:05:36.186851Z",
      "updateTime": "2025-08-05T06:05:36.186851Z"
    }
  ]
}

利用可能なパッケージが多数ある場合、API レスポンスはページングされることがあります。リスト出力が未完了の場合、レスポンスで継続トークン nextPageToken が返されます。nextPageToken は、返された最後の結果を表します。nextPageToken の値を後続のリクエストの pageToken パラメータに渡すと、最後の結果の後に続く次の結果ページが返されます。

結果の次のページを表示するか、ページごとに返されるオブジェクトの数を増やすには、次の URL を使用します。

"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

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

  • NUMBER: ページごとに返されるアイテムの数。最大許容値は 1,000 です。
  • NEXT_PAGE_TOKEN: JSON レスポンスで返された nextPageToken トークン値。

または、次のスクリプトを使用して、API リクエストのページ分割された結果をファイルに収集することもできます。

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME7
    [ -n "$nextPageToken" ]
do
:
done

省略可: プライマリ Go パッケージ名のソート済みリストを FILENAME8 に書き込みます。

次のアクションは、返された Go モジュールの未加工のリストをフィルタして、プライマリ パッケージ名のリストを取得します。

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME8

省略可: Go パッケージ バージョンのソート済みリストを FILENAME9 に書き込みます。

すべての Go パッケージ バージョンを一覧表示する直接 HTTP リクエストは使用できませんが、特定の Go パッケージのすべてのバージョンを一覧表示することはできます。FILENAME8 のリストで識別された各 Go パッケージのバージョンを繰り返し一覧表示することで、すべての Go パッケージ バージョンの完全なリストを生成できます。

次のアクションは、返された Go パッケージ バージョンの未加工のリストをフィルタして、パッケージ バージョンのリストを取得します。

grep -o "packages/.*" FILENAME8 | tr -d '",' | cut -d '/' -f 2 | while read package_name; do curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/$package_name/versions | grep name | sort -f | uniq >> FILENAME9; done

次のステップ