Google Cloud リソースにアクセスするために、Compute Engine 仮想マシン(VM)インスタンスはサービス アカウントを使用します。Compute Engine のデフォルトのサービス アカウントを誤って削除すると、VM 上で実行されるアプリケーションが Google Cloud APIs を呼び出せなくなる場合があります。
このドキュメントでは、削除後に Compute Engine のデフォルトのサービス アカウントを復元する方法について説明します。
Compute Engine のデフォルト サービス アカウントを復元する
サービス アカウントを削除すると、30 日後に Identity and Access Management(IAM)によってサービス アカウントが完全に削除されます。Compute Engine のデフォルトのサービス アカウントを誤って削除した場合、完全に削除されたサービス アカウントを Google Cloud で復元することができず、VM はプロジェクト内のリソースにアクセスできなくなります。このような場合、VM に Compute Engine のデフォルトのサービス アカウントを割り当てる場合は、サービス アカウントを作成して、デフォルトのサービス アカウントとして設定します。
このタスクの実行に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Compute 管理者(
roles/compute.admin
) - ログ閲覧者(
roles/logging.viewer
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
削除された Compute Engine のデフォルトのサービス アカウントを復元する手順は次のとおりです。
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
次のクエリを使用して、Compute Engine のデフォルトのサービス アカウントがいつ削除されたかを検証します。
resource.type="service_account" protoPayload.methodName="google.iam.admin.v1.DeleteServiceAccount" "PROJECT_NUMBER-compute@developer.gserviceaccount.com"
PROJECT_NUMBER
は、プロジェクトのプロジェクト番号に置き換えます。デフォルトのサービス アカウントが削除されてから 30 日以内である場合:
undelete
コマンドを使用して、サービス アカウントを復元します。詳細については、サービス アカウントの削除を取り消すをご覧ください。デフォルトのサービス アカウントが削除されてから 30 日以上経過している場合:
- サービス アカウントを作成するか、既存のサービス アカウントを選択して、Compute Engine の新しいデフォルトのサービス アカウントとして設定します。
VM で新しく作成されたデフォルトのサービス アカウントを使用するには、次の操作を行います。
[VM インスタンス] ページに移動します。
サービス アカウントを使用する VM インスタンスの名前をクリックします。
インスタンスが停止していない場合には、[停止] をクリックします。インスタンスが停止するまで待機します。
[編集] をクリックします。
下にスクロールして、[サービス アカウント] セクションに移動します。
プルダウン リストから、インスタンスに割り当てるサービス アカウントを選択します。