プロジェクトの移動を分析する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このガイドでは、Cloud Asset Inventory Analyze Move API を使用して、プロジェクトを実際に移動する前に、重要なポリシー システムのリストから警告と障壁に関する詳細なレポートを取得する方法について説明します。

API を有効にする

API コンシューマ プロジェクトとしてプロジェクトを選択または作成し、Cloud Asset API を有効にします。

このコンシューマ プロジェクトは、分析と移行を計画しているプロジェクトとは異なる場合があります。コンシューマ プロジェクトは、API リクエストを行う認証情報を生成するために使用されます。

次のセクションでは、分析するソース プロジェクトに関して付与する必要があるロールと権限について説明します。

権限の割り当て

プロジェクトの移動分析を実行するには、Cloud Asset 閲覧者閲覧者などの cloudasset.assets.analyzeMove 権限を付与するロールが必要です。

サービスに関する分析を受け取るには、それらのサービスに関連するロールも必要です。権限には以下のようなものがあります。

  • ソース プロジェクトの親組織から継承した IAM ポリシーを表示する場合、ソース プロジェクトの親組織に対する resourcemanager.organizations.getIamPolicy 権限が必要です。

  • ソース プロジェクトの親フォルダから継承した IAM ポリシーを表示する場合、ソース プロジェクトの親フォルダに対する resourcemanager.folders.getIamPolicy 権限が必要です。

  • プロジェクトの IAM ポリシーを表示する場合、ソース プロジェクトに対する resourcemanager.projects.getIamPolicy 権限が必要です。

  • このプロジェクトに継承されている組織のポリシーを表示するには、ソース プロジェクトに対する orgpolicy.policy.get 権限が必要です。

  • このプロジェクトに対する継承された Compute Engine ファイアウォール ポリシーを表示するには、ソースフォルダまたは組織に対する compute.organizations.setSecurityPolicy 権限が必要です。

分析を実行する

Google Cloud CLI または API を使用して、リソース階層内の現在の場所からリソースの移行を分析できます。

gcloud

リソース階層内の現在の位置からプロジェクトを移行した場合の影響を分析するには、gcloud asset analyze-move コマンドを使用します。

gcloud asset analyze-move --project=PROJECT_ID \
  (--destination-folder=FOLDER_ID \
    | --destination-organization=ORGANIZATION_ID)

プロジェクトを別のフォルダに移動した場合の影響を分析するには、--destination-folder を使用してコマンドを実行します。

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-folder=FOLDER_ID

プロジェクトを別の組織に移動した場合の影響を分析するには、--destination-organization で次のコマンドを実行します。

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-organization=ORGANIZATION_ID

ここで

  • PROJECT_ID は、移行するプロジェクトの一意の ID です。例: projects/12345678901

  • FOLDER_ID は、分析先のフォルダ ID です。例: --destination-folder=45678901123

  • ORGANIZATION_ID は、分析を行う移行先組織の ID です。例: --destination-organization=78901123456

API

移行を実行せずに、プロジェクトをリソース階層の現在の位置から移行した場合の影響を分析するには、cloudasset.analyzeMove メソッドを使用します。

GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \
  analyzeMove?destinationParent=DESTINATION_NAME

ここで

  • resource は、分析を実行するリソースの名前です。プロジェクト リソースのみをサポートしているため、プロジェクト ID またはプロジェクト番号を指定する必要があります。たとえば、projects/my-project-idprojects/12345 です。

  • DESTINATION_NAME は、ターゲット リソースを親にする Google Cloud フォルダまたは組織の名前です。分析は、指定した宛先親にリソースを移動した場合の影響に対して実行されます。宛先はフォルダ番号または組織番号にする必要があります。たとえば、folders/123organizations/123 です。

分析のレスポンスを移動する

Move Analysis API から受信したレスポンスは、サービス名ごとにグループ化されます。各サービスの下には、このプロジェクトの移行に適用される警告と阻害要因のリストがあります。この分析で阻害要因が返された場合、解決前に移動を実行すると、プロジェクトの移行が実行時にブロックされます。

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

Move Analysis API から返されたエラーがある場合、標準のgRPC コードおよび、Move Analysis API でプロジェクトの分析が失敗した理由を説明するメッセージが含まれます。

次の表に、Move Analysis API から返される可能性のあるエラーコードを示します。

エラー名 エラーコード 説明
引数が無効です 3 無効な引数(正しくないリソース名など)を指定してプロジェクトで API を呼び出した場合に返されます。
アクセスの拒否 7 分析を実行するために必要な権限がない場合、またはソース プロジェクトが存在しない場合に返されます。
内部 13 Identity and Access Management や組織のポリシーなどのポリシー システムへの呼び出しに問題がある場合に返されます。これは、移行は不可能ではなく、サービスの停止を確認した後で分析を再試行できます。
使用不可 14 内部システムが同期していない場合に返されます。これは、移行が出来ないことを示しておらず、分析を再試行できます。
未認証 16 この分析を実行するための正しい認証情報を指定しなかった場合に返されます。

エラー メッセージの例

次の例に、移行するプロジェクトの cloudasset.assets.analyzeMove 権限を持っていないユーザーに返されるエラーコードを示します。

{
  "error": {
  "code": 403,
  "message": "Failed to fetch Project: projects/test-project-service-3 to perform
              move analysis.",
  "status": "PERMISSION_DENIED"}
}

ポリシー システムによっては、リソースの移動の分析に失敗する場合があります。次の例は、ユーザーが移行対象のプロジェクトに対する compute.organizations.setSecurityPolicy 権限を持っていない場合に、階層型ファイアウォール サービスから返されるエラーを示しています。

{
  "moveAnalysis": [{
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "Hierarchical Firewall",
    "error": {
      "code": 7,
      "message": "Failed to retrieve inherited security policies to perform
                  analysis. Required 'compute.organizations.setSecurityPolicy'
                  permission for {resource ID}"
     }}]
}

次のステップ

Move Analysis API は、組織間でプロジェクトを移動する際に、阻害要因などの問題を軽減するのに役立つ詳細情報を提供します。組織間のプロジェクト移行の詳細については、プロジェクトの移行をご覧ください。