Google Cloud監視のサービスアカウント作成方法

サービスアカウントを作成し、プロジェクトの自動ディスカバリーを有効にすることで、Site24x7でGoogle Cloud Platform(GCP)を監視できます。
次の手順で関連するスコープでIAMロールを割り当てることで、すべてのプロジェクトを監視します。

GCP組織監視のためのサービスアカウント作成方法

Google Cloudサービスアカウントの作成

  1. Google Cloudコンソールに移動します。
  2. [IAM]→[管理]→[サービスアカウント]に移動します。
  3. [サービスアカウントの作成]をクリックします。
  4. サービスアカウント名を入力し、[作成と続行]をクリックします。
  5. 次のロールをサービスアカウントに追加します。
    • Monitoring Viewer
    • Compute Viewer
    • Cloud Asset Viewer
    • Browser
    • Viewer
  6. [続行]をクリック後、[完了]をクリックし、サービスアカウントの作成を完了します。
    ここでのアカウントメールアドレスが後の手順で必要になります。

プロジェクト自動ディスカバリーのための他スコープへのロール割り当て

希望のスコープで次の権限が存在ことを確認します。

  • プロジェクトIAM管理者(以上)
  • フォルダー管理者
  • 組織管理者
  1. Google Cloudコンソールで、[IAM]ページに移動します。
  2. プロジェクト、フォルダー、組織のいずれかを選択します。
  3. リソースでのロールを保持していない管理者にロールを付与するには、[アクセス付与]をクリックし、先ほど作成したサービスアカウントのメールアドレスを入力します。
  4. 次のロールを割り当てます。
    • Compute Viewer
    • Monitoring Viewer
    • Cloud Asset Viewer
    • Browser
    • Viewer
  5. [保存]をクリックします。

JSONキーを作成するには、次の手順を行ってください。

  1. Google Cloudサービスアカウントに移動します。
  2. [IAM]→[管理]→[サービスアカウント]に移動します。
  3. 先の手順で作成したサービスアカウントを選択します。
  4. [キー]→[キーの追加]→[JSON]を選択します。
  5. Site24x7のGCP監視追加ページでJSONキーファイルをアップロードします。
プロジェクトに対して個別にこれらロールを割り当てられます。また組織またはフォルダーレベルでロールを割り当てることで、複数プロジェクトを監視できます。
この方法でロールを割り当てると、Site24x7が指定したスコープの全プロジェクトを自動でディスカバリーします。また、今後グループに追加されたプロジェクトもディスカバリー対象となります。

GCPプロジェクト監視のためのサービスアカウント作成方法

  1. Google Cloudサービスアカウントを作成します。
    1. Google Cloudコンソールに移動します。
    2. [IAM]→[管理]→[サービスアカウント]に移動します。
    3. [サービスアカウントの作成]をクリックします。
    4. サービスアカウントの名前を入力した後、[作成と続行]をクリックします。
    5. サービスアカウントに次のロールを追加します。
      • Monitoring Viewer
      • Compute Viewer
      • Cloud Asset Viewer
      • Viewer
  2. [続行]をクリックした後、[完了]をクリックしてサービスアカウントを作成します。
  3. JSONキーを作成します。
    1. Google Cloudサービスアカウントに移動します。
    2. [IAM]→[管理]→[サービスアカウント]に移動します。
    3. 先の手順で作成したサービスアカウントを選択します。
    4. [キー]→[キーの追加]→[JSON]を選択します。
    5. Site24x7のGCP監視追加ページでキーをアップロードします。
監視に必要な条件:各プロジェクトレベルで次のAPIを有効にします。

簡単な設定として、各プロジェクトレベルで必要なAPIを有効にするのに、次のTerraformサンプルスクリプトを使用できます。


Main.tf

provider "google" {
project = "base project id"
} module "project-services" {
source = "terraform-google-modules/project-factory/google//modules/project_services"
for_each=var.project_id_map
project_id = "${each.value.project_id}"
activate_apis = [
"compute.googleapis.com",
"cloudfunctions.googleapis.com",
"dataproc.googleapis.com",
"redis.googleapis.com",
"container.googleapis.com",
"spanner.googleapis.com",
"appengine.googleapis.com",
"pubsub.googleapis.com",
"composer.googleapis.com",
"monitoring.googleapis.com",
"compute.googleapis.com",
"dataflow.googleapis.com",
"run.googleapis.com",
"file.googleapis.com",
"cloudkms.googleapis.com",
"dns.googleapis.com",
"cloudbilling.googleapis.com",
"cloudresourcemanager.googleapis.com",
"cloudasset.googleapis.com",
"servicenetworking.googleapis.com",
"appengine.googleapis.com",
"container.googleapis.com",
"sqladmin.googleapis.com",
"cloudkms.googleapis.com"
]
}

variables.tf

variable "project_id_map" {
type = map(object({
project_id = string
}))
default = {
"Projectid_1" = {
project_id = "project_1_id"
}
"Projectid_2" = {
project_id = "project_2_id"
}
}
}
  • "compute.googleapis.com",
  • "cloudfunctions.googleapis.com",
  • "dataproc.googleapis.com",
  • "redis.googleapis.com",
  • "container.googleapis.com",
  • "spanner.googleapis.com",
  • "appengine.googleapis.com",
  • "pubsub.googleapis.com",
  • "composer.googleapis.com",
  • "monitoring.googleapis.com",
  • "compute.googleapis.com",
  • "dataflow.googleapis.com",
  • "run.googleapis.com",
  • "file.googleapis.com",
  • "cloudkms.googleapis.com",
  • "dns.googleapis.com",
  • "cloudbilling.googleapis.com",
  • "cloudresourcemanager.googleapis.com",
  • "cloudasset.googleapis.com",
  • "servicenetworking.googleapis.com",
  • "appengine.googleapis.com",
  • "container.googleapis.com",
  • "sqladmin.googleapis.com",
  • cloudkms.googleapis.com"
Google Cloudリソースを作成した際に上記APIのほとんどはデフォルトで有効化されています。

関連ガイド

トップ