概要
Security Command Center は、Google Cloud コンソールに検出結果をリアルタイムで通知します。このガイドでは、Google Cloud サービスとサードパーティの API を使用して機能を拡張し、ほぼリアルタイムの通知をメールやチャットアプリで受け取る方法について説明します。このガイドを完了すると、Google Cloud コンソールにログインせずに、構成したサードパーティ サービスで新しい検出結果の通知を受け取り、脆弱性や脅威の優先順位付けをより迅速に行うことができます。Security Command Center では、さまざまな種類の脆弱性と脅威について確認できます。
トポロジ
このガイドでは、次の図に示す構成を作成します。
目標
このガイドでは、次のことを行います。
- Pub/Sub トピックを設定する。
- Slack、WebEx Teams、SendGrid Email を設定する。
- Cloud Run functions でコードを記述する。
- 重要度が「高」または「重大」の新しい検出結果が Security Command Center に書き込まれるたびに、Slack、WebEx Teams、SendGrid Email に通知を送信するように Pub/Sub と Cloud Run functions を構成する。
- 通知に関する問題のトラブルシューティングを行う。
料金
このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。
- Pub/Sub
- Cloud Run 関数
- Cloud Build
予想使用量に基づいて費用の見積もりを作成するには、料金計算ツールを使用します。
始める前に
このガイドの内容を行うには、次の Identity and Access Management(IAM)ロールが必要です。
- 組織管理者(
roles/resourcemanager.organizationAdmin
) - セキュリティ センター管理者(
roles/securitycenter.admin
) - セキュリティ管理者(
roles/iam.securityAdmin
) - オーナー(
roles/owner
)、編集者(roles/editor
)、カスタムロールなど、serviceusage.services.use
権限を持つロール - サービス アカウントを作成する(
roles/iam.serviceAccountCreator
) - Pub/Sub 編集者(
roles/pubsub.editor
) - 請求先アカウント管理者(
roles/billing.admin
)
Security Command Center の IAM ロールは、組織レベル、フォルダレベル、またはプロジェクト レベルで付与できます。検出結果、アセット、セキュリティ ソースを表示、編集、作成、更新する権限は、アクセス権が付与されているレベルによって異なります。Security Command Center のロールの詳細については、アクセス制御をご覧ください。
プロジェクトの設定
プロジェクトを作成または選択するためには、次の手順を完了します。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
所要時間: 1 つのサービスに対する通知の設定とテストに約 1 時間かかります。
Pub/Sub トピックの設定
Pub/Sub は、独立したアプリケーション間でメッセージを送受信できるリアルタイム メッセージング サービスです。詳細については Pub/Sub をご覧ください。
このセクションでは、検出結果を Pub/Sub トピックにパブリッシュするように Security Command Center を構成します。
Pub/Sub トピックを設定してサブスクライブする手順は次のとおりです。
環境変数に Google Cloud プロジェクトを指定します。
export PROJECT_ID=PROJECT_ID
PROJECT_ID を実際のプロジェクト ID に置き換えます。
環境変数に Google Cloud 組織を指定します。
export ORG_ID=ORG_ID
ORG_ID は、実際の組織 ID に置き換えます。
gcloud
コマンドのプロジェクト ID を設定します。gcloud config set project PROJECT_ID
通知をパブリッシュする Pub/Sub トピックを作成します。
gcloud pubsub topics create scc-critical-and-high-severity-findings-topic
環境変数にトピックを指定します。
export TOPIC=projects/$PROJECT_ID/topics/scc-critical-and-high-severity-findings-topic
メッセージがトピックにパブリッシュされたときに、メールやチャットのメッセージを送信するように Cloud Run functions に通知するサブスクリプションを作成します。
gcloud pubsub subscriptions create scc-critical-and-high-severity-findings-sub \ --topic scc-critical-and-high-severity-findings-topic
トピックに通知をパブリッシュするように、Security Command Center を構成します。filter には、ListFindings API に対応する形を使用できます。
次のフィルタは、
global
ロケーションで重大度が「高」または「重大」のアクティブな検出結果に関する通知をパブリッシュします。詳細は、検出結果のフィルタリングをご覧ください。gcloud scc notifications create scc-critical-high-severity \ --pubsub-topic=$TOPIC \ --organization=$ORG_ID \ --location=global \ --filter "(severity=\"HIGH\" OR severity=\"CRITICAL\") AND state=\"ACTIVE\""
次に、Pub/Sub から通知を受け取るメールアプリかチャットアプリを作成または構成します。
メッセージ アプリの設定
このセクションでは、Pub/Sub と Cloud Run functions または Cloud Run functions(第 1 世代)を使用して、SendGrid Email API、Slack、WebEx Teams でニア リアルタイムの通知を有効にする方法について説明します。
SendGrid Email
メール通知を有効にする方法は、次のとおりです。
- SendGrid Email API アカウントを作成し、API キーを取得する。
- Pub/Sub から通知を受信するとメールを送信する Cloud Run functions の関数を作成してデプロイする。
SendGrid Email API アカウントを作成する
このセクションでは、SendGrid Email API アカウントを作成し、API キーを取得します。SendGrid が有効になっている場合は、Sendgrid Email API キーを取得するにスキップし、既存の API キーに適切な権限があることを確認します。
- Google Cloud Console に移動します。
Google Cloud Console に移動 - ページの上部にある検索ボックスで、SendGrid Email API を検索します。
次のページで、ニーズに合うプランを選択します。
- 無料プランでは、月に最大 12,000 件のメールが可能で、このガイドには十分ですが、大規模な組織ではさらに必要になることがあります。これより大量のメール通知を受け取ることが予想される場合は、通知にフィルタを追加して不要な検出結果を除外することを検討してください。
- SendGrid に関連付けるプロジェクトの選択を求められることがあります。プロジェクトを選択し、続行してください。プロジェクトに関連付けられた請求先アカウントの購入情報を管理するために、適切な権限が必要になる場合があります。
利用規約を確認し、問題がなければ [登録] をクリックします。
[SENDGRID に登録] をクリックして、SendGrid サービスを有効にします。
登録画面で、ユーザー名、パスワード、メールアドレスを入力します。利用規約に同意し、[Continue] をクリックします。
確認ダイアログで [Return to Google] をクリックします。
SendGrid Email API キーを取得する
[Manage API keys on SendGrid website] をクリックします。SendGrid ウェブサイトの新しいタブが開きます。
表示された指示に従って、フォームに入力するかログインします。[Get Started!] をクリックします。
メニューパネルで [Settings] を展開し、[API Keys] をクリックします。
次の画面で [Create API Key] ボタンをクリックします。
[API Key Name] で「SCC Email Notifications」と入力して、[Full Access] を選択し、続いて [Create & View] ボタンをクリックします。
API キーが表示されます。値を記録します。コピーしたメールアドレスは次のセクションで必要になります。
[完了] をクリックします。現在の API キーのセットが表示されます。タブを閉じて Google Cloud コンソールに戻ります。
次に、1 つのメールアドレスに通知を送信する Cloud Run functions の関数をデプロイします。
SendGrid の Cloud Run functions 関数を作成する
このセクションでは、メール アカウントに通知を送信する関数をデプロイします。
Cloud Run functions に移動します。
Cloud Run functions に移動PROJECT_ID は、Pub/Sub トピックの作成に使用したものと同じであることを確認してください。
[関数を作成] をクリックします。
[関数名] を「send-high-and-critical-finding-email-notification」に、[トリガーのタイプ] を [Pub/Sub] に設定します。
Pub/Sub トピックには、Pub/Sub トピックの設定で作成したものを選択します。
[保存] をクリックし、[次へ] をクリックします。
次のページで、[ランタイム] を [Python 3.8] に設定します。このセクションのコードサンプルは Python で記述されていますが、Cloud Run functions でサポートされている任意の言語を使用できます。
ファイルリストで、[requirements.txt] をクリックし、テキスト フィールドに 「
sendgrid
」を追加します。
[main.py] をクリックし、その内容を次のコード スニペットに置き換えます。
import base64 import json from sendgrid import SendGridAPIClient from sendgrid.helpers.mail import Mail def send_email_notification(event, context): """Triggered from a message on a Pub/Sub topic. Args: event (dict): Event payload. context (google.cloud.functions.Context): Metadata for the event. """ pubsub_message = base64.b64decode(event['data']).decode('utf-8') message_json = json.loads(pubsub_message) message = Mail( from_email='noreply@yourdomain.com', to_emails='$EMAIL_ADDRESS', subject='New High or Critical Severity Finding Detected', html_content='A new high or critical severity finding was detected: ' + ''.join(message_json['finding']['category'])) try: sg = SendGridAPIClient('$SENDGRID_EMAIL_API_KEY') response = sg.send(message) print(response.status_code) print(response.body) print(response.headers) except Exception as e: print(e) print(pubsub_message)
次のように置き換えます。
noreply@yourdomain.com
を、メッセージの送信元として使用するメールアドレスに変更します。$EMAIL_ADDRESS
を、対象とする受信者のメールアドレスに変更します。注: この変数は、メールアドレスの配列(['user1@yourdomain.com', 'user2@yourdomain.com'])を保持できます。また、カスタムコードを記述して、ローテーションする待機者のリストなどの動的変数のセットを作成することも可能です。$SENDGRID_EMAIL_API_KEY
を、既存の API キーまたは前のセクションで作成した API キーに変更します。
[エントリ ポイント] フィールドにカーソルを移し、コード スニペットに関数の名前を入力します(この例では「send_email_notification」)。
[デプロイ] をクリックします。Cloud Run functions の関数のリストに戻ります。ここに新しい関数が表示されます。関数名の横に緑色のチェックマークが付けば、デプロイは正常に終了しています。この処理には、数分かかる場合があります。
Slack
Slack チャンネルに通知を送信する方法は、次のとおりです。
- メッセージを公開 Slack チャンネルに投稿するために十分な権限を持つ新しい Slack アプリを作成する。
- Pub/Sub からの通知の受信時にチャット メッセージを Slack に投稿する Cloud Run functions の関数を作成してデプロイする。
新しい Slack アプリを作成する
このセクションでは、通知を受け取るる新しい Slack アプリを作成します。
- Slack API アプリに移動します。ページは新しいタブで開きます。
ログインするか、アカウントを作成します。
[Create New App] を選択します。
[アプリ名] を「SCC Finding Notifier」に設定します。
Slack Bot でメッセージを投稿する [Development Slack Workspace] を選択し、[Create App] をクリックします。
ナビゲーション パネルで [OAuth & Permissions] を選択します。
[Scopes] セクションに移動します。Scopes は、次の 2 つの種類に分類されます。
- Bot Token Scopes
- User Token Scopes
ここでは、User Token Scopes のスコープを追加する必要はありません。[Bot Token Scopes] で、[Add an OAuth Scope] をクリックし、次の項目を入力します。
chat:write
chat:write.public
[OAuth & Permissions] ページの上部までスクロールし、[Install App to Workspace] をクリックします。
確認のダイアログで [Allow] をクリックします。
Cloud Functions の関数で使用する [Bot User OAuth Access Token] を [Copy] します。
次に、Slack グループに通知を送信する Cloud Run functions の関数をデプロイします。
Slack の Cloud Run functions 関数を作成する
このセクションでは、Slack のアカウントに通知を送信する関数をデプロイします。
Cloud Run functions に移動します。
Cloud Run functions に移動PROJECT_ID は、Pub/Sub トピックの作成で使用したものと同じであることを確認してください。
[関数を作成] をクリックします。
[関数名] を「slack-chat-high-and-critical-findings」に、[トリガーのタイプ] を「Pub/Sub」に設定します。
Pub/Sub トピックには、Pub/Sub トピックの設定で作成したものを選択します。
[保存] をクリックし、[次へ] をクリックします。
次のページで、[ランタイム] を [Python 3.8] に設定します。このセクションのコードサンプルは Python で記述されていますが、Cloud Run functions でサポートされている任意の言語を使用できます。
ファイルのリストに移動します。[requirements.txt] をクリックし、
requests
を追加します。[main.py] をクリックし、その内容を次のコード スニペットに置き換えます。
import base64 import json import requests TOKEN = "BOT_ACCESS_TOKEN" def send_slack_chat_notification(event, context): pubsub_message = base64.b64decode(event['data']).decode('utf-8') message_json = json.loads(pubsub_message) finding = message_json['finding'] requests.post("https://slack.com/api/chat.postMessage", data={ "token": TOKEN, "channel": "#general", "text": f"A high severity finding {finding['category']} was detected!" })
BOT_ACCESS_TOKEN
は、Slack アプリで作成した Bot User OAuth Access Tokenに置き換えます。[エントリ ポイント] フィールドにカーソルを移し、コード スニペットに関数の名前を入力します(この例では「send_slack_chat_notification」)。
[デプロイ] をクリックします。Cloud Run functions の関数のリストに戻ります。ここに新しい関数が表示されます。関数名の横に緑色のチェックマークが付けば、デプロイは正常に終了しています。この処理には、数分かかる場合があります。メッセージは、#general Slack チャンネルに表示されます。
WebEx
WebEx Teams アカウントに通知を送信する方法は、次のとおりです。
- Security Command Center からアセットを取得する権限を持つ、新しいサービス アカウントを作成する。
- ワークスペースにメッセージを投稿するための十分な権限を持つ新しい WebEx Bot を作成する。
- Pub/Sub をサブスクライブし、Pub/Sub トピックから通知を受け取ると WebEx にチャット メッセージを投稿する、Cloud Run functions の関数を作成してデプロイする。
サービス アカウントを作成する
デフォルトでは、Cloud Run functions は Security Command Center からアセットを取得できません。このセクションでは、Cloud Run functions が検出結果に関連するアセットを取得できるようにするサービス アカウントをプロビジョニングします。
サービス アカウントに名前を付け、環境変数として指定します。
export SERVICE_ACCOUNT=ACCOUNT_NAME
プロジェクトのサービス アカウントを作成します。
gcloud iam service-accounts create $SERVICE_ACCOUNT \ --display-name "Service Account for SCC Finding Notifier WebEx Cloud Function" \ --project $PROJECT_ID
サービス アカウントに、組織レベルで
securitycenter.assetsViewer
ロールを付与します。gcloud organizations add-iam-policy-binding $ORG_ID \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/securitycenter.assetsViewer'
Webex Bot を作成する
このセクションでは、ワークスペースにメッセージを送信する WebEx Bot を作成します。
WebEx Teams アカウントにログインして、[New Bot] ページに移動します。
Bot 名を [SCC Finding Notifier] に設定します。
わかりやすい一意の名前を [Bot Username] に設定します(your-name-scc-finding-notifier-demo)。
[Icon] で [Default 1] を選択します。
[Description] を「新しい高重要度か重大重要度の検出結果が Security Command Center にパブリッシュされると、チームに通知するボット」に設定します。
[Add Bot] をクリックします。
確認ページで Bot Access Token をコピーし、Cloud Run functions の関数で使用するために保存します。
ワークスペースに Webex Bot を追加する
このセクションでは、WebEx Bot をワークスペースに追加します。
Bot が通知を送信する WebEx Space で、アクティビティ パネルを展開します。
[Add People] を選択します。
テキスト フィールドに「SCC Finding Notifier」と入力し、作成したボットをプルダウン メニューから選択します。
[Add] ボタンを選択して、パネルを閉じます。
Cloud Run functions 関数のワークスペースの Room ID を取得します。 デスクトップ パソコンで、https://developer.webex.com/docs/api/v1/rooms/list-rooms にアクセスし、必要に応じてログインします。このページでは、WebEx API を使用して、参加している会議室の一覧を取得します。
検索パネルに移動します。
パネルの上部にある [Try it] タブを選択します。
すべてのオプションをデフォルト値のままにして、[Run] をクリックします。
[Response] タブでは、
items
つまり会議室のリストを含む JSON 形式のレスポンスを受け取ります。通知を表示する会議室のtitle
を探して、関連するid
の値を記録します。
次に、WebEx ワークスペースに通知を送信する Cloud Run functions の関数をデプロイします。
WebEx の Cloud Run functions 関数を作成する
このセクションでは、WebEx のアカウントに通知を送信する関数をデプロイします。
Cloud Run functions に移動します。
Cloud Run functions に移動PROJECT_ID は、Pub/Sub トピックの作成に使用したものを選択します。
[関数を作成] をクリックします。
[関数名] を「webex-teams-high-and-critical-findings」に、[トリガーのタイプ] を「Pub/Sub」に設定します。
Pub/Sub トピックには、Pub/Sub トピックの設定で作成したものを選択します。
[変数、ネットワーク、詳細設定] 欄を展開します。
[サービス アカウント] で、作成した
webex-cloud-function-sa
サービス アカウントをフィルタリングして選択します。[保存] をクリックし、[次へ] をクリックします。
次のページで、[ランタイム] を [Python 3.8] に設定します。このセクションのコードサンプルは Python で記述されていますが、Cloud Run functions でサポートされている任意の言語を使用できます。
ファイルのリストに移動します。[requirements.txt] をクリックし、次の内容を追加します。
requests==2.25.1
google-cloud-securitycenter==1.1.0
[main.py] をクリックし、その内容を次のコード スニペットに置き換えます。
#!/usr/bin/env python3 import base64 import json import requests from google.cloud import securitycenter_v1 WEBEX_TOKEN = "WEBEX_TOKEN" ROOM_ID = "ROOM_ID" TEMPLATE = """ **Severity:** {severity}\n **Asset:** {asset}\n **SCC Category:** {category}\n **Project:** {project}\n **First observed:** {create_time}\n **Last observed:** {event_time}\n **Link to finding:** {finding_link} """ PREFIX = "https://console.cloud.google.com/security/command-center/findings" def get_finding_detail_page_link(finding_name): """Constructs a direct link to the finding detail page.""" org_id = finding_name.split("/")[1] return f"{PREFIX}?organizationId={org_id}&resourceId={finding_name}" def get_asset(parent, resource_name): """Retrieves the asset corresponding to `resource_name` from SCC.""" client = securitycenter_v1.SecurityCenterClient() resp = client.list_assets( securitycenter_v1.ListAssetsRequest( parent=parent, filter=f'securityCenterProperties.resourceName="{resource_name}"', ) ) page = next(resp.pages) if page.total_size == 0: return None asset = page.list_assets_results[0].asset return json.loads(securitycenter_v1.Asset.to_json(asset)) def send_webex_teams_notification(event, context): """Send the notification to WebEx Teams.""" pubsub_message = base64.b64decode(event["data"]).decode("utf-8") message_json = json.loads(pubsub_message) finding = message_json["finding"] parent = "/".join(finding["parent"].split("/")[0:2]) asset = get_asset(parent, finding["resourceName"]) requests.post( "https://webexapis.com/v1/messages", json={ "roomId": ROOM_ID, "markdown": TEMPLATE.format( severity=finding["severity"], asset=asset["securityCenterProperties"]["resourceDisplayName"], category=finding["category"], project=asset["resourceProperties"]["project"], create_time=finding["createTime"], event_time=finding["eventTime"], finding_link=get_finding_detail_page_link(finding["name"]), ), }, headers={"Authorization": f"Bearer {WEBEX_TOKEN}"}, )
次のように置き換えます。
WEBEX_TOKEN
は、WebEx Bot を作成するセクションの Bot Access Token に置き換えます。ROOM_ID
は、ワークスペースに WebEx Bot を追加するセクションの Room ID で置き換えます。
[エントリ ポイント] フィールドにカーソルを移し、コード スニペットに関数の名前を入力します(この例では「send_webex_teams_notification」)。
[デプロイ] をクリックします。Cloud Run functions の関数のリストに戻ります。ここに新しい関数が表示されます。関数名の横に緑色のチェックマークが付けば、デプロイは正常に終了しています。この処理には、数分かかる場合があります。
選択したサービスの上記の手順をエラーなしで完了すると、セットアップが終了し、通知を受信し始めます。注意事項:
- 重要度が「重大」または「高」の個々の検出結果ごとに個別のメールかチャット メッセージを受け取ります。通知の頻度や数は、組織内のリソースによって変わります。
- 通知は、ほぼリアルタイムでパブリッシュされ、送信されます。ただし、メールやメッセージの即時性は保証されておらず、SendGrid、メールシステム、Slack、WebEx の問題を含め、さまざまな要因により遅延が発生する可能性があります。
通知ワークフローを変更する方法は、次のとおりです。
- Cloud Run functions の関数を更新することにより、受信者を変更します。
- Pub/Sub トピックのフィルタを更新することにより、通知をトリガーする検出結果を変更します。
通知のテスト
通知が正しく構成されているかどうかをテストするには、次の手順に沿って、重要度「高」の検出の有効 / 無効を切り替えます。
- Security Command Center の [検出] ページに移動します。
[検出結果] ページに移動 - メッセージが表示されたら、組織を選択します。
- [クイック フィルタ] パネルで、[重大度] セクションまで下にスクロールし、[高] または [重大] を選択します。[検出結果クエリの結果] パネルが更新され、選択した重要度のみの検出結果が表示されます。
- [検出結果クエリの結果] パネルで、名前の横にあるチェックボックスをオンにして検出結果を選択します。
- [検出結果クエリの結果] アクションバーの [アクティブ状態を変更] メニューから、[無効] を選択します。現在の検出結果クエリにアクティブな検出結果のみが表示される場合、検出結果はクエリ結果から削除されます。
- [クイック フィルタ] パネルで [状態] セクションまでスクロールし、選択を変更して [無効] のみが選択されるようにします。[検出結果クエリの結果] パネルが更新され、無効な検出結果のみが表示されます。
- [検出結果クエリの結果] パネルで、無効としてマークした検出結果を選択します。
- [検出結果クエリの結果] アクションバーの [アクティブ状態を変更] メニューから、[有効] を選択します。
メールまたはメッセージング サービスを確認すると、次の画像のようなメッセージが表示されます。
メール:
Slack:
このガイドでは多くの情報が含まれますが、WebEx に送信されるメッセージは、次の図のようなものになります。
トラブルシューティング
メールやチャットのメッセージが送受信されない場合は、次の手順で問題を特定して解決します。
SendGrid Email:
- メールが迷惑メールフォルダに入らないようにするには、メールの許可リストに
from_email
値を追加するか、SendGrid で送信者認証を構成します。 - SendGrid プランのレート上限を超えていないことを確認してください。
- 失敗したメールは、SendGrid レポートで見つけることができます。
- 未認証の送信者からのメールは、ドメインまたはメール プロバイダの DMARC ポリシーによってブロックされることがあります。SendGrid が送信者 ID を管理する方法を確認してください。エラーが発生した場合は、
from_email
の値に別のメールアドレスをお試しください。
- 未認証の送信者からのメールは、ドメインまたはメール プロバイダの DMARC ポリシーによってブロックされることがあります。SendGrid が送信者 ID を管理する方法を確認してください。エラーが発生した場合は、
- メールが迷惑メールフォルダに入らないようにするには、メールの許可リストに
SendGrid Email、Slack、WebEx:
Stackdriver ログで、Cloud Run functions の関数を確認して、関数が呼び出されているかどうか判断します。呼び出されていない場合は、通知が正しく設定されていることを確認します。
Cloud Run functions の関数が呼び出されている場合は、関数がクラッシュしている可能性があります。Google Cloud コンソールで Error Reporting を使用して、Cloud Run functions のエラーを確認します。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトの削除
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
リソースを個別に削除する
通知構成を削除します。
gcloud scc notifications delete scc-critical-high-severity \ --organization=ORG_ID \ --location=global
ORG_ID は、実際の組織 ID に置き換えます。
構成を維持したまま、通知を一時停止するには、Cloud Run functions の関数の
send
またはpost
の呼び出しをコメントアウトします。Cloud Run functions の関数を削除する
- Cloud Run functions に移動します。
Cloud Run functions に移動 - 削除する関数の横にあるチェックボックスをクリックします。
- [削除] をクリックします。
- Cloud Run functions に移動します。
サービス アカウントを削除します。
- [サービス アカウント] ページに移動します。
[サービス アカウント] ページに移動 - プロジェクトを選択します。
- 削除するサービス アカウントを選択して、[削除] をクリックします。
- [サービス アカウント] ページに移動します。
次のステップ
- 通知エラーについて詳細を確認する。
- 通知のフィルタリングを確認する。
- Web Security Scanner と Security Health Analytics の検出結果を修正する方法を確認する。