接続を検証する

このドキュメントでは、サービス アカウントと AWS アカウントで Assured Open Source Software サービスにアクセスできるように正常に有効になっていることを確認する方法について説明します。

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

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

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

始める前に

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

    gcloud components update
    
  2. を使用して Assured OSS にアクセスするには、 Google Cloud Artifact Registry API を Assured OSS 用に有効にしたサービス アカウントの親 Google Cloud プロジェクトに対して有効にします。プレミアム ティアを使用している場合、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. [新しい IAM ロールの作成] > [ロールの作成] を選択します。
    5. 信頼できるエンティティ タイプとして [AWS サービス] を選択します。
    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: 有効化メールに記載されている、割り当てられたプロジェクト ID 。 Google Cloud + 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 に置き換えます。

無料ティアで Java リポジトリに接続する 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-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 に置き換えます。

無料ティアで Go リポジトリに接続する 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/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

次のステップ