Assured Open Source Software(Assured OSS)は、次の 2 種類の通知を公開します。
パッケージの可用性: これらの通知には、Assured OSS に追加された新しいパッケージとパッケージ バージョンに関する情報と、パッケージのオンボーディング ステータスに関する更新情報が含まれています。
脆弱性通知: これらの通知には、Assured OSS によってキュレートされたパッケージで検出された新しい脆弱性、または既存の脆弱性の更新に関する情報が含まれています。
セキュリティ メタデータの更新と新しいパッケージに関するプログラムによる通知は、Pub/Sub トピックに公開されます。これらの通知は JSON 形式で利用できます。Assured OSS トピックに pull サブスクリプションまたは push サブスクリプションを作成して、通知を受信できます。
これらのサブスクリプションを作成するには、アーティファクトまたはメタデータへのアクセスに使用するのと同じサービス アカウントまたはワークロード ID の認証情報を使用します。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
プレミアム ティアのパッケージのオンボーディングと脆弱性に関する情報を統合したトピック
次の Pub/Sub トピックから、すべての Assured OSS 通知にアクセスできます。
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 サブスクリプションを作成するには、次の操作を行います。
pull サブスクリプションを作成します。Google Cloud コンソール、Google Cloud CLI、または Pub/Sub API を使用できます。
プル サブスクリプションを作成したら、クライアント ライブラリまたは Google Cloud CLI を使用してメッセージのポーリングを開始します。
push サブスクリプションを作成します。
プッシュ サブスクリプションを作成するには、自己署名ではなく、インターネットからアクセス可能な証明書を使用して HTTPS サーバーを設定します。プッシュ サブスクリプション モデルは、次のいずれかの方法で使用します。
Google Cloud プロジェクトとサービス アカウントがある場合(たとえば、Assured OSS を Security Command Center と統合した場合):
Assured OSS はサブスクリプションを作成する権限を提供するため、独自の push サブスクリプションを作成して、選択したエンドポイントに関連付けることができます。詳しくは、push サブスクリプションをご覧ください。
無料枠を使用しており、 Google Cloud プロジェクトとサービス アカウントがない場合は、[アクセスを有効にするか、通知設定を更新する] フォームに HTTPS エンドポイントを入力します。Assured OSS チームが push サブスクリプションを作成し、そのサブスクリプションにエンドポイントを接続します。