GCP - Compute Instances

Support HackTricks

基本情報

Google Cloud Compute Instancesは、Googleのクラウドインフラストラクチャ上のカスタマイズ可能な仮想マシンであり、さまざまなアプリケーション向けにスケーラブルでオンデマンドのコンピューティングパワーを提供します。これにより、グローバルな展開、永続ストレージ、柔軟なOSの選択、強力なネットワーキングおよびセキュリティ統合などの機能が提供され、ウェブサイトのホスティング、データ処理、アプリケーションの効率的な実行に適した選択肢となります。

機密VM

機密VMは、最新世代のAMD EPYCプロセッサが提供するハードウェアベースのセキュリティ機能を使用しており、メモリ暗号化や安全な暗号化仮想化が含まれています。これにより、VMはホストオペレーティングシステムやハイパーバイザーから処理および保存されたデータを保護できます。

機密VMを実行するには、マシンのタイプ、ネットワークインターフェースブートディスクイメージなどを変更する必要がある場合があります。

ディスクとディスク暗号化

使用するディスクを選択するか、新しいディスクを作成することができます。新しいディスクを選択した場合、次のことができます:

  • ディスクのサイズを選択

  • OSを選択

  • インスタンスが削除されたときにディスクを削除するかどうかを指定

  • 暗号化デフォルトGoogle管理キーが使用されますが、KMSからキーを選択するか、使用する生のキーを指定することもできます。

コンテナのデプロイ

仮想マシン内にコンテナをデプロイすることが可能です。 使用するイメージを設定し、内部で実行するコマンド引数ボリュームをマウントし、環境変数(機密情報?)を設定し、このコンテナのために特権として実行する、標準入力および擬似TTYなどのいくつかのオプションを構成できます。

サービスアカウント

デフォルトでは、Compute Engineのデフォルトサービスアカウントが使用されます。このSAのメールは次のようになります:<proj-num>-compute@developer.gserviceaccount.com このサービスアカウントは、**プロジェクト全体に対するエディターロール(高い権限)**を持っています。

そして、デフォルトのアクセススコープは次のとおりです:

  • https://www.googleapis.com/auth/devstorage.read_only -- バケットへの読み取りアクセス :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

ただし、クリックでcloud-platformを付与するか、カスタムのものを指定することも可能です。

ファイアウォール

HTTPおよびHTTPSトラフィックを許可することが可能です。

ネットワーキング

  • IP転送:インスタンスの作成時にIP転送を有効にすることが可能です。

  • ホスト名:インスタンスに永続的なホスト名を付けることが可能です。

  • インターフェース:ネットワークインターフェースを追加することが可能です。

追加のセキュリティ

これらのオプションは、VMのセキュリティを向上させ、推奨されます:

  • セキュアブート:セキュアブートは、VMインスタンスをブートレベルおよびカーネルレベルのマルウェアやルートキットから保護します。

  • vTPMを有効にする:仮想トラステッドプラットフォームモジュール(vTPM)は、ゲストVMのプレブートおよびブートの整合性を検証し、キーの生成と保護を提供します。

  • 整合性監視:整合性監視により、Stackdriverレポートを使用してシールドされたVMインスタンスのランタイムブート整合性を監視および検証できます。vTPMを有効にする必要があります。

VMアクセス

VMへのアクセスを有効にする一般的な方法は、特定のSSH公開鍵をVMにアクセスできるようにすることです。 ただし、IAMを使用してos-configサービスを介してVMへのアクセスを有効にすることも可能です。さらに、このサービスを使用してVMへのアクセスに2FAを有効にすることも可能です。 このサービス有効になっていると、SSHキーによるアクセスは無効になります。

メタデータ

自動化(AWSのユーザーデータ)を定義することが可能で、これはシェルコマンドであり、マシンが起動または再起動するたびに実行されます。

また、メタデータエンドポイントからアクセス可能な追加のメタデータキー-バリュー追加することも可能です。この情報は、環境変数やスタートアップ/シャットダウンスクリプトに一般的に使用されます。これは、列挙セクションのコマンドからの**describeメソッド**を使用して取得できますが、インスタンス内からメタデータエンドポイントにアクセスして取得することもできます。

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

さらに、添付されたサービスアカウントの認証トークンインスタンス、ネットワーク、プロジェクトに関する一般情報メタデータエンドポイントから入手可能です。詳細については、以下を確認してください:

暗号化

デフォルトではGoogle管理の暗号化キーが使用されますが、顧客管理の暗号化キー(CMEK)を設定することもできます。また、使用されているCMEKが取り消された場合の処理を設定することもできます:何もしないか、VMをシャットダウンします。

HackTricksをサポートする

Last updated