本文の内容は、2021年11月24日現在における、docs.sysdig.com上のDeploy Sysdig Secure for cloud on GCPを元に日本語に翻訳・再構成した内容となっております。
必要に応じて、Sysdig Secure for cloudの製品概要を確認しましょう。GCPでのデプロイメントにはTerraformファイルを使用します。
Terraformを使ったオンボーディング
Terraformベースのインストール手順は、使用しているアカウントの種類によって異なります。現時点では、以下のような選択肢があります:
- シングルプロジェクトへのインストール
- 組織へのインストール
前提条件
- Sysdig SecureのSaaSアカウント
- Sysdigに接続するGoogle Cloud Platform (GCP)アカウント(デプロイに適切な権限が必要です)
- インストールコードをデプロイするマシンにTerraformがインストールされていること。
- インストールコードを配置する環境にGoogleのCloud SDKが配置されていること
- バックグラウンド情報については、Google Cloud Platform Providerのドキュメントを参照してください。
- Terraformモジュールのドキュメントに記載されているように、必要なGCP APIを有効にします。
パーミッション
- Sysdig Secureの管理者権限
- GCPでは、以下のリソースリストで指定された各リソースを作成するために、シングルプロジェクトモードを使用する場合は、- Ownerロールが必要です。
- また、組織の場合はOrganization Adminロールが必要です。
手順
- Sysdig Secureに管理者としてログインし、「Get Started」 > 「Connect your Cloud account」を選択します。GCPタブを選択します。
- Single AccountまたはOrganizational Accountの下にあるコードスニペットをコピーして、ローカルマシンのターミナルに貼り付けます。あなたのSysdig APIトークンが事前に設定されているはずです。
- 次に実行します。
$ terraform init
完了したら、次を実行します。
$ terraform apply- 変更内容が表示され、確認を求められた後、変更が行われます。
- サービスの動作確認
- パーミッションやアカウントの競合が発生した場合は、トラブルシューティングを確認します。
各モジュールが作成するリソース
- 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が提供するリポジトリのセットアップ手順に従います。