通知を設定

Pub/Sub 通知に登録すると、Assured Open Source Software(Assured OSS)で新しいパッケージと脆弱性の更新が利用可能になったときにアラートを受け取ることができます。

Assured OSS は、次の 2 種類の通知を公開します。

  • パッケージの可用性: これらの通知には、Assured OSS に追加された新しいパッケージとパッケージ バージョンに関する情報と、パッケージのオンボーディング ステータスに関する更新情報が含まれています。

  • 脆弱性通知: これらの通知には、Assured OSS によってキュレートされたパッケージで検出された新しい脆弱性や、既存の脆弱性の更新に関する情報が含まれています。

セキュリティ メタデータの更新と新しいパッケージに関するプログラムによる通知は、Pub/Sub トピックに公開されます。これらの通知は JSON 形式で利用できます。Assured OSS トピックへの pull サブスクリプションまたは push サブスクリプションを作成して、通知を受信できます。

これらのサブスクリプションを作成するには、アーティファクトまたはメタデータへのアクセスに使用するサービス アカウントまたは Workload Identity の認証情報を使用します。Assured OSS へのアクセスが有効になると、サービス アカウントにこれらのトピックのサブスクリプションを作成する権限が付与されます。

以降のセクションでは、Pub/Sub トピックについて説明します。

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

始める前に

Assured OSS プレミアム ティアで VPC Service Controls を有効にした場合は、下り(外向き)ルールを構成します。

パッケージのオンボーディングに関するトピック

  • トピック名: projects/cloud-aoss/topics/package_onboarding
  • メッセージ: このトピックには、Assured OSS に追加された新しいパッケージ バージョンに関する情報と、オンボーディング ステータスに関する更新情報が含まれています。
  • メッセージ データ スキーマ:

    {
    "package_name" string
    "package_version" string
    "language" string
    "onboarding_status" string
    "notification_status" string
    }
    
  • メッセージ データの属性:

    "PackageName"     string
    "PackageVersion"  string
    "PackageLanguage" string
    "SchemaVersion"   string
    "GenerateTime"    string
    

脆弱性情報トピック

  • トピック名: projects/cloud-aoss/topics/vulnerability_information
  • メッセージ: このトピックには、システムで検出された新しい脆弱性に関する情報や、脆弱性のメタデータが更新された場合の情報が含まれます。
  • メッセージ データ スキーマ:

    {
    "vulnerabilityId" string
    "notificationStatus" string
    }
    
  • メッセージ データの属性:

    "PackageName"     string
    "PackageVersion"  string
    "PackageLanguage" string
    "SchemaVersion"   string
    "GenerateTime"    string
    

プレミアム ティアのパッケージのオンボーディングと脆弱性情報の統合トピック

すべての Assured OSS 通知には、次の Pub/Sub トピックからアクセスできます。

projects/assuredoss-blue/topics/assuredoss-notifications

通知属性

次の通知属性は、公開された Pub/Sub メッセージの一部です。これらの属性を使用してメッセージをフィルタできます。

{
  "Type": "string",             // Indicates the type of notification, can be 'PackageVersion' or 'Vulnerability'
  "PackageName": "string",      // Package ID
  "PackageVersion": "string",   // Version of the package
  "Language": "string",         // Language of the package
  "SchemaVersion": int,         // Schema version of the data in message
  "GenerateTime": "string"      // Time at which the event occurred
}

GenerateTime 属性は RFC 3339 形式です。

Type 属性が PackageVersion の場合、メッセージ データには次のフィールドがあります。

{
  "PackageName": "string",       // Package ID
  "PackageVersion": "string",    // Version of the package
  "Language": "string",          // Language of the package
  "NotificationStatus": "string" // Status of package-version,'New' indicates available to download from Assured OSS
}

Type 属性が Vulnerability の場合、メッセージ データには次のフィールドがあります。

{
  "ID": "string",            // Vulnerability ID affecting the package
  "Severity": "string",      // Severity of the vulnerability
  "Sources": [
    {
      "Name": "string",      // Source of vulnerability information
      "Link": "string"       // URL of vulnerability details
    }
  ],
  "Summary": "string",       // Summary of vulnerability
  "Description": "string",   // Detailed description of vulnerability
  "PackageName": "string",       // Package ID
  "PackageVersion": "string",    // Version of the package
  "Language": "string",          // Language of the package
  "NotificationStatus": "string" // Status of package-version
}

NotificationStatus フィールドの値は、脆弱性のステータスを示します。パッケージに新しい脆弱性がある場合、値は New です。既存の脆弱性に更新がある場合、値は Update です。

pull サブスクリプションを作成する

pull サブスクリプションの作成は、次の手順で行います。

  1. pull サブスクリプションを作成します。Google Cloud コンソール、Google Cloud CLI、または Pub/Sub API を使用できます。

  2. pull サブスクリプションを作成したら、クライアント ライブラリまたは Google Cloud CLI を使用してメッセージのポーリングを開始します。

push サブスクリプションを作成します。

push サブスクリプションを作成するには、自己署名ではなく、インターネット上でアクセス可能な証明書を使用して HTTPS サーバーを設定します。push サブスクリプション モデルは、次のいずれかの方法で使用します。

  • Google Cloud プロジェクトとサービス アカウントがある場合(Assured OSS を Security Command Center と統合した場合など):

    Assured OSS にはサブスクリプションを作成する権限があるため、独自の push サブスクリプションを作成して、任意の エンドポイントに関連付けることができます。詳細については、push サブスクリプションをご覧ください。

  • 無料枠を使用しており、 Google Cloud プロジェクトとサービス アカウントがない場合は、アクセスを有効にするか、通知設定を更新するフォームに HTTPS エンドポイントを入力します。Assured OSS チームは、push サブスクリプションを作成し、そのサブスクリプションにエンドポイントを接続します。

次のステップ