GCPにSysdig Secure for Cloudをデプロイする

By 清水 孝郎 - NOVEMBER 24, 2021

SHARE:

本文の内容は、2021年11月24日現在における、docs.sysdig.com上のDeploy Sysdig Secure for cloud on GCPを元に日本語に翻訳・再構成した内容となっております。

必要に応じて、Sysdig Secure for cloudの製品概要を確認しましょう。GCPでのデプロイメントにはTerraformファイルを使用します。

Terraformを使ったオンボーディング

Terraformベースのインストール手順は、使用しているアカウントの種類によって異なります。

現時点では、以下のような選択肢があります:
  • シングルプロジェクトへのインストール
  • 組織へのインストール
Sysdig SecureのGet Startedページで提供されるデフォルトのコードには、お客様のSecure APIトークンがあらかじめ入力されており、脅威検知、ベンチマーク、コンテナのレジストリとイメージのスキャンが自動的にインストールされます。

前提条件


パーミッション

  • Sysdig Secureの管理者権限
  • GCPでは、以下のリソースリストで指定された各リソースを作成するために、シングルプロジェクトモードを使用する場合は、- Ownerロールが必要です。
    • また、組織の場合はOrganization Adminロールが必要です。

手順

  1. Sysdig Secureに管理者としてログインし、「Get Started」 > 「Connect your Cloud account」を選択します。GCPタブを選択します。
  2. Single AccountまたはOrganizational Accountの下にあるコードスニペットをコピーして、ローカルマシンのターミナルに貼り付けます。あなたのSysdig APIトークンが事前に設定されているはずです。
  3. 次に実行します。
    • $ terraform init

      完了したら、次を実行します。

      $ terraform apply
    • 変更内容が表示され、確認を求められた後、変更が行われます。
  4. サービスの動作確認
    • パーミッションやアカウントの競合が発生した場合は、トラブルシューティングを確認します。

各モジュールが作成するリソース

  • Cloud-bench
    • google_iam_workload_identity_pool
    • google_iam_workload_identity_pool_provider
    • google_project_iam_custom_role
    • google_project_iam_member
    • google_service_account
    • google_service_account_iam_binding
    • sysdig_secure_benchmark_task
    • sysdig_secure_cloud_account
  • Cloud-connector
    • google_cloud_run_service
    • google_eventarc_trigger
    • google_project_iam_member
    • google_storage_bucket
    • google_storage_bucket_iam_member
    • google_storage_bucket_object
  • Cloud-scanning
    • google_cloud_run_service
    • google_cloud_run_service_iam_member
    • google_eventarc_trigger
    • google_project_iam_member
    • google_pubsub_topic

Cloud-connectorを組織モードでインストールした場合、この追加モジュールがインストールされます:
  • Organization-sink
    • google_logging_organization_sink
    • google_pubsub_topic
    • google_pubsub_topic_iam_member

Cloud-connector がシングルプロジェクトモードでインストールされている場合は、次の追加モジュールがインストールされます:
  • Project-sink
    • google_logging_project_sink
    • google_pubsub_topic
    • google_pubsub_topic_iam_member

Cloud-scanning がインストールされている場合、この追加モジュールがインストールされます:
  • Secrets
    • google_secret_manager_secret
    • google_secret_manager_secret_iam_member
    • google_secret_manager_secret_version`

トラブルシューティング

1. プロジェクトのパーミッションが不足しています

このエラーは、現在のGCP認証セッションが、指定されたプロジェクトにアクセスするための必要なパーミッションを持っていない場合に発生する可能性があります。

解決策:必要なパーミッションを持つユーザーアカウントまたはサービスアカウントを使用してGCPに認証されていることを確認します。



2. リソースの作成に必要なパーミッションが不足

このエラーは、現在のGCP認証セッションが特定のリソースを作成するために必要な権限を持っていない場合に発生する可能性があります。

解決策:必要なパーミッションを持つユーザーまたはサービスアカウントを使用してGCPに認証されていることを確認します。



十分なパーミッションを持っているにもかかわらず、この種のエラーが発生する場合は、 gcloudの認証を試みます。

$ gcloud auth application-default login

$ gcloud auth application-default login set-quota-project your_project_id

3. リソースの衝突

このエラーは、指定したGCPプロジェクトが既にSysdigにオンボードされている場合に発生する可能性があります。

解決策:クラウド・アカウントをterraformにインポートするには、次のコマンドを実行します。

terraform import module.single account.module.cloud_bench.sysdig_secure_cloud_account.cloud_account PROJECT_ID , PROJECT_ID はプロジェクトの数値IDです(プロジェクト名ではありません)。

4. Workload Identity Federation プールが既に存在する

このエラーは、Workload Identity Federation PoolまたはPool Providerが以前に作成され、その後GCPコンソールまたはterraform destroyを使用して削除された場合に発生する可能性があります。これらのリソースの削除要求がGCPに送信されると、完全には削除されませんが、「削除済み」としてマークされ、30日間残ります。これらの「削除された」リソースは、同じ名前の新しいリソースの作成をブロックします。

解決策:削除されたプールは、GCPコンソールを使用して復元してから、terraformにインポートする必要があります。 terraform import module.single-account.module.cloud_bench.google_iam_workload_identity_pool.pool POOL_ID and module.single-account.module.cloud_bench.google_iam_workload_identity_pool_provider.pool_provider POOL_ID/PROVIDER_IDを使用します。


5. Google Cloud Platform から構成エラーを示すメールを受信した。

メールには次のようなエラーコードが含まれています:
Error Code: topic_not_found
or
Error Code: topic_permission_denied

原因:SysdigがTerraformを使ってデプロイしたリソースは、最終的には整合性が取れますが、事前に必要なリソースが作成されていても、まだ準備ができていないことがあります。

解決方法:これは既知の問題であり、デプロイ後数分以内にしか発生しません。最終的には、リソースの健全性チェックに合格し、モジュールは期待通りに動作します。



サービスが動作していることの確認

Sysdig Secureにログインし、デプロイした各モジュールが機能していることを確認します。イベントが収集されて表示されるまで、10分程度かかることがあります。

全体的な接続状態の確認

データソース:Userメニューから Data Sources を選択すると、接続されているすべてのクラウドアカウントが表示されます。

サブスクリプション Settings > Subscriptionを選択すると、クラウドアカウントを含むアカウントアクティビティの概要が表示されます。



Insights:ナビゲーションバーに「Insight」が追加されていることを確認します。クラウドアカウント、クラウドユーザー、またはコンポジットのインサイトビューでアクティビティを表示します。



脅威検知の確認

ポリシー Policies > Runtime Policies を確認し、 GCP Best Practices ポリシーが有効になっていることを確認します。これは、GCPの最も頻繁に推奨されるルールで構成されています。



イベント: Events フィードで「cloud」を検索すると、GCPからのイベントが表示されます。



GCP ベンチマークの確認

  • タスク Compliance > Benchmarks > Tasks を選択し、Sysdig Secure for Cloud (GCP) という名前のタスクが存在することを確認します。
  • 結果:数分後、Sysdig Secure for Cloud (GCP) タスクをクリックすると、ベンチマークのチェック結果が表示されます。なお、結果が表示されるまでには、最大で15分ほどかかることがあります。

GCPスキャンの確認

  • スキャン結果Image Scanning > Scan Resultsを確認し、 Origins のドロップダウンを選択します。
  •  GCP が表示されていることを確認します。
  • 目的のオリジンでフィルタリングし、スキャン結果を確認します。
  • イベントを強制的に実行:コンテナレジストリ内の新しいリポジトリにイメージをアップロードすることができます。GCPが提供するリポジトリのセットアップ手順に従います。

以下もご参照ください