Skip to main content

Google Cloud

ShanoneのGoogle Cloud連携は、サービスの有効化/無効化、IAMポリシー/ロールの管理、組織レベルの変更の監査といったオペレーターレベルのGCP管理のための24個のツールをエージェントに提供します。ダウンロード可能なサービスアカウントキーではなく、Workload Identity Federationで認証されます。

はじめに

1

Workload Identity Federationを設定する

Google Cloud Consoleで、Shanoneのバックエンドを信頼するWorkload Identity Pool と Providerを作成し、Shanoneがなりすます(impersonate)サービスアカウントを作成します。
2

ShanoneにWIFの情報を追加する

Shanoneダッシュボードの連携を開き、Google Cloudを選択して、プロジェクト番号、プールID、プロバイダID、サービスアカウントのメールアドレス、対象プロジェクトIDを入力します。サービスアカウントキーファイルは不要です。
3

リクエストを再実行する

保存が完了すると、gcloud_*ツールに対するshanone_execute_tool呼び出しが成功するようになります。

利用可能なツール

ShanoneはGoogle Cloud向けに24個のツールを、以下のカテゴリに整理して提供しています。
gcloud_service_usage_list, gcloud_service_usage_get, gcloud_service_usage_batch_get, gcloud_service_usage_search, gcloud_service_usage_enable, gcloud_service_usage_disable, gcloud_service_usage_batch_enable, gcloud_service_usage_disable_check
gcloud_iam_get_policy, gcloud_iam_add_binding, gcloud_iam_remove_binding, gcloud_iam_set_policy, gcloud_iam_list_members
gcloud_iam_list_grantable_roles, gcloud_iam_get_role, gcloud_iam_test_permissions, gcloud_iam_list_service_accounts, gcloud_iam_search_roles
gcloud_org_get_policy, gcloud_org_add_binding, gcloud_org_list_projects
gcloud_audit_get_connection_status, gcloud_audit_list_recent_changes, gcloud_audit_export_policy_snapshot

よくあるユースケース

API有効化のロールアウト

新しいサービスをデプロイする前に、必要なAPI群をプロジェクト全体で一括有効化する

IAMアクセスレビュー

プロジェクトのIAMポリシーバインディングとメンバーを一覧化し、過剰なアクセス権がないか確認する

権限のトラブルシューティング

gcloud_iam_test_permissionsを使って、失敗している呼び出しに必要なアクセス権をサービスアカウントが実際に持っているか確認する

変更の監査

ポリシースナップショットをエクスポートし、最近の変更を一覧化して誰がIAMバインディングを変更したか調査する

トラブルシューティング

まずgcloud_audit_get_connection_statusを実行してください——Workload Identity Federationの信頼関係となりすまし先のサービスアカウントが正しく設定されているかを確認する最も速い方法です。
なりすまし先のサービスアカウント自体にresourcemanager.projects.setIamPolicy(または組織レベルの同等の権限)が必要です。対象リソースに対するgcloud_iam_get_policyでそのサービスアカウント自身のIAMロールを確認してください。
サービスの有効化が反映されるまで数分かかることがあります。すぐに有効になったと想定せず、gcloud_service_usage_getやgcloud_service_usage_disable_checkをポーリングしてください。