GCP - Cloud Build Enum
基本情報
Google Cloud Buildは、ソフトウェアのビルドとリリースプロセスを自動化するマネージドCI/CDプラットフォームであり、ソースコードリポジトリと統合し、幅広いプログラミング言語をサポートします。開発者がコードを自動的にビルド、テスト、デプロイできるようにし、ビルドステップやワークフローをカスタマイズする柔軟性を提供します。
各Cloud Build Triggerは、Cloud Repositoryに関連しているか、外部リポジトリ(Github、Bitbucket、Gitlab)に直接接続されています。
リポジトリがダウンロードされるときにhttps://source.cloud.google.com/ URLを介してアクセスされ、クライアントがGithubにアクセスしないため、ここからまたはCloud RepositoriesからGithub/Bitbucketトークンを盗む方法は見つかりませんでした。
イベント
Cloud Buildは以下の場合にトリガーされます:
ブランチへのプッシュ: ブランチを指定
新しいタグのプッシュ: タグを指定
プルリクエスト: PRを受け取るブランチを指定
手動呼び出し
Pub/Subメッセージ: トピックを指定
Webhookイベント: HTTPS URLを公開し、リクエストはシークレットで認証される必要があります
実行
3つのオプションがあります:
実行するコマンドを指定するyaml/json。通常は:
/cloudbuild.yaml
WebコンソールおよびCLIで「インライン」で指定できる唯一のもの
最も一般的なオプション
認証されていないアクセスに関連
ビルドするためのDockerfile
ビルドするためのBuildpack
SA権限
Service Accountはcloud-platform
スコープを持っているため、すべての特権を使用できます。 SAが指定されていない場合(例えばsubmitを行うとき)、デフォルトのSA <proj-number>@cloudbuild.gserviceaccount.com
が使用されます。
デフォルトでは権限は与えられていませんが、簡単に権限を付与できます:
承認
Cloud Buildを設定してビルド実行に承認を要求することができます(デフォルトでは無効)。
PR承認
トリガーがPRの場合、誰でも公開リポジトリにPRを行うことができるため、任意のPRでトリガーの実行を許可するのは非常に危険です。したがって、デフォルトでは、実行は所有者およびコラボレーターに対してのみ自動的に行われ、他のユーザーのPRでトリガーを実行するには、所有者またはコラボレーターが/gcbrun
とコメントする必要があります。
接続とリポジトリ
接続は以下を介して作成できます:
GitHub: OAuthプロンプトが表示され、Githubトークンを取得するための権限を要求し、Secret Manager内に保存されます。
GitHub Enterprise: GithubAppのインストールを要求します。GitHub Enterpriseホストからの認証トークンが作成され、このプロジェクトのSecret Managerのシークレットとして保存されます。
GitLab / Enterprise: APIアクセス トークンとRead APIアクセス トークンを提供する必要があり、これらはSecret Managerに保存されます。
接続が生成されると、Githubアカウントがアクセスできるリポジトリをリンクするために使用できます。
このオプションはボタンを介して利用可能です:
この方法で接続されたリポジトリは、2nd generationを使用するトリガーでのみ利用可能です。
リポジトリの接続
これは**connection
とは異なります。これはGithubまたはBitbucketリポジトリへのアクセスを取得するための**異なる方法を提供しますが、接続オブジェクトを生成するのではなく、リポジトリオブジェクト(1st generation)を生成します。
このオプションはボタンを介して利用可能です:
ストレージ
Cloud Buildは、トリガーのファイルを保存するために新しいストレージを生成することがあります。例えば、GCPが提供する例では:
A Storage bucket called security-devbox_cloudbuild is created to store a .tgz
with the files to be used.
シェルを取得
Enumeration
ビルド構成とログに機密情報が含まれている可能性があります。
特権昇格
GCP - Cloudbuild Privesc認証されていないアクセス
GCP - Cloud Build Unauthenticated Enumポストエクスプロイト
GCP - Cloud Build Post ExploitationLast updated