Arbeitslast migrieren

Auf dieser Seite wird beschrieben, wie Sie eine Compliance-Analyse durchführen, bevor Sie ein vorhandenes Projekt in einen Assured Workloads-Ordner migrieren. Bei dieser Analyse werden das Quellprojekt und der Zielordner „Assured Workloads“ verglichen, um festzustellen, welche Änderungen vor oder nach Beginn der Migration erforderlich sein könnten. Wenn Sie beispielsweise ein Projekt in einen Assured Workloads-Ordner verschieben möchten, der für FedRAMP Moderate konfiguriert ist, können Sie potenzielle Compliance-Verstöße vor dem Verschieben des Projekts proaktiv beheben.

Die folgende Art von Ergebnissen wird von der Standortanalyse zurückgegeben:

  • Im Quellprojekt werden nicht unterstützte Produkte oder Dienste verwendet.
  • Das Quellprojekt enthält Ressourcen, die sich an einem nicht zulässigen Speicherort befinden.
  • Das Quellprojekt ist mit Werten für Organisationsrichtlinieneinschränkungen konfiguriert, die nicht mit dem Zielordner von Assured Workloads kompatibel sind.

Es ist wichtig, diese Ergebnisse zu ermitteln, bevor Sie eine Umstellung vornehmen. Standardmäßig Ein Assured Workloads-Ordner kann nur Ressourcentypen für die die von des Kontrollpakets des Ordners. Wenn Ihr Projekt Ressourcen für einen Dienst enthält, der vom Steuerpaket des Ordners nicht unterstützt wird, müssen Sie diese Ressourcen möglicherweise neu bereitstellen oder entfernen.

Sie können die Standardliste der unterstützten Dienste für eine Assured Workloads-Ordner durch Ändern seines Organisationsrichtlinie zur Einschränkung der Ressourcennutzung – wodurch die Bereitstellung nicht konformer Dienste in Ihrem Ordner zugelassen wird – werden der nicht konforme Dienst und seine Ressourcen im Hintergrund ignoriert. Complianceprüfungen. Wenn Sie also einen nicht unterstützten Dienst aktivieren, akzeptieren Sie das Risiko, dass Ihre Arbeitslast nicht mehr konform ist.

Hinweise

  • Erfassen Sie die Ressourcen-IDs sowohl für das Quellprojekt als auch für den Zielordner „Zuverlässige Arbeitslasten“.
  • Weisen oder prüfen Sie IAM-Berechtigungen für den Quellprojekt und den Assured Workloads-Zielordner an, Der Aufrufer muss berechtigt sein, die Migration durchzuführen.

Erforderliche IAM-Berechtigungen

Zum Durchführen einer Migrationsanalyse muss dem Aufrufer IAM gewährt werden Berechtigungen mit einer vordefinierte Rolle, die breiteren Berechtigungen oder benutzerdefinierte Rolle, die beschränkt ist auf die mindestens erforderlichen Berechtigungen haben.

Folgende Berechtigungen sind erforderlich:

  • assuredworkloads.workload.get für die Zielarbeitslast
  • cloudasset.assets.searchAllResources für das Quellprojekt
  • orgpolicy.policy.get für das Quellprojekt und den Zielordner „Assured Workloads“

Migrationsanalyse durchführen

Bei einer Analyse des Quellprojekts und des Ziels Assured Workloads-Ordner an, sollten Sie vor dem Verschieben alle Ergebnisse überprüfen mit dem Ziel zu verbinden. Auch wenn die Erkenntnisse Sie nicht daran hindern, kann dies zu Compliance-Verstößen im Ziel führen, Assured Workloads-Ordner.

Es gibt zwei Arten von Ergebnissen:

  • Warnung: Eine Warnung wird angezeigt, wenn das Quellprojekt potenziell nicht mit dem Ziel kompatibel ist und zu einem Complianceverstoß führen kann. Warnungen sollten untersucht werden, um sicherzustellen, dass die Inkompatibilität entweder akzeptabel sind oder vor dem Verschieben angegangen werden sollten.
  • Blocker: Eine Blockierung tritt auf, wenn ein Complianceverstoß festgestellt wird. zwischen dem Quellprojekt und dem Ziel. Hindernisse müssen behoben werden bevor Sie mit dem Verschieben fortfahren.

Die folgenden Arten von Ergebnissen werden gemeldet:

  • Ressourcenstandorte: Viele Kontrollpakete erzwingen Standortbeschränkungen. nach Ressourcen suchen, um Compliance-Anforderungen zu erfüllen, z. B. ob Ihre Quelle Projekt enthält Ressourcen, die sich an einem unzulässigen Standort befinden.

    Verschieben Sie die betroffenen Ressourcen an zulässige Speicherorte, löschen Sie sie oder ändern Sie die Einschränkungseinstellung der gcp.resourceLocations-Organisationsrichtlinie für das Ziel.

  • Nicht unterstützte Produkte/Dienste: Jedes Kontrollpaket unterstützt eine bestimmte Liste der Google Cloud-Produkte und -Dienste. Wenn in Ihrem Projekt ein Dienst, der vom Assured Workloads-Ziel nicht unterstützt wird Kontrollpakets des Ordners hat, wird dies als Ergebnis aufgeführt.

  • Einschränkungen für Organisationsrichtlinien: Ihr Quellprojekt kann mit Werten für Organisationsrichtlinieneinschränkungen konfiguriert werden, die sich von der gültigen Richtlinie des Zielordners „Assured Workloads“ unterscheiden oder nicht dem Zielkontrollpaket entsprechen. Diese Analyse wird nur für Einschränkungen durchgeführt, die für das Steuerpaket des Zielordners „Assured Workloads“ relevant sind. Alle Einschränkungswerte des Projekts werden nicht ausgewertet. Es sind verschiedene Ergebnisse möglich, z. B. die folgenden Probleme:

    • Ihr Projekt und die geltende Richtlinie des Ziels sind nicht kompatibel.
    • Ihr Projekt hat Werte für Organisationsrichtlinieneinschränkungen, die nicht für das Ziel festgelegt sind, oder umgekehrt.
    • Ihr Projekt hat Werte für Einschränkungen der Organisationsrichtlinie, die nicht mit dem Zielkontrollpaket konform.

    Wenn ein Blockierer für eine Einschränkung in einer Organisationsrichtlinie gefunden wird, enthält die Antwort die erwarteten Werte, die dem Zielkontrollpaket entsprechen. Anhand dieser erwarteten Werte können Sie Änderungen an Ihrem Projekt vornehmen, bevor Sie eine Migration ausführen.

Ermitteln Sie die Einschränkung der Organisationsrichtlinie, um dieses Problem zu beheben geändert werden und Nehmen Sie die erforderlichen Änderungen vor.

Nicht unterstützte Ergebnistypen

Die folgenden Arten von Ergebnissen werden von der Migrationsanalyse nicht unterstützt:

  • Inkompatibilitäten auf Ressourcenebene für Einschränkungen von Organisationsrichtlinien – Sonstiges als gcp.resourceLocations. Einige Steuerpakete sind beispielsweise mit der globalen Einschränkung gcp.restrictCmekCryptoKeyProjects oder der Compute Engine-spezifischen Einschränkung compute.disableNestedVirtualization konfiguriert. Inkompatibilitäten mit diesen Einschränkungen zwischen Quelle und Ziel werden nicht analysiert oder gemeldet.
  • Dienstspezifische Funktionen, die für ein bestimmtes Kontrollpaket deaktiviert werden können. So sind beispielsweise die Uptime-Prüfungen von Cloud Monitoring für IL4-Ordner und die Remote-Funktionen von BigQuery für ITAR-Ordner deaktiviert. Wenn Ihr Quellprojekt solche deaktivierten Funktionen verwendet, werden diese Inkompatibilitäten nicht analysiert oder gemeldet.

Verschieben eines Projekts in einen Assured Workloads-Ordner

Mit der Methode analyzeWorkloadMove wird eine Analyse ausgeführt, um das Quellprojekt in den Assured Workloads-Zielordner zu verschieben.

Ersetzen Sie in der folgenden Anfrage die folgenden Parameter durch Ihre eigenen:

  • ENDPOINT_URI: Die Assured Workloads Dienstendpunkt-URI. Dieser URI muss der Endpunkt sein, der dem Standort des Ziels entspricht Arbeitslast, z. B. https://us-west1-assuredworkloads.googleapis.com für eine regionale Arbeitslast in der Region us-west1 und https://us-assuredworkloads.googleapis.com für eine multiregionale Arbeitslast in USA.
  • DESTINATION_ORGANIZATION_ID: Die Organisations-ID der Zielarbeitslast, in die das Quellprojekt migriert wird. Beispiel: 919698201234
  • DESTINATION_LOCATION_ID: Der Speicherort der Zielarbeitslast. Beispiel: us-west1 oder us Es entspricht dem data region-Wert der Arbeitslast.
  • DESTINATION_WORKLOAD_ID: Die ID des Zielordners „Assured Workloads“, in den das Quellprojekt migriert wird. Beispiel: 00-701ea036-7152-4780-a867-9f5
  • SOURCE_PROJECT_ID: Abfrageparameter für die ID des zu migrierenden Quellprojekts. Beispiel: my-project-123
  • ASSET_TYPES: Optional. Ein Asset-Typ pro Abfrageparameter, mit dem die Ergebnisse nur auf die angegebenen Typen gefiltert werden. Beispiel: cloudresourcemanager.googleapis.com/Project.
  • PAGE_SIZE: Optional. Abfrageparameter für die Anzahl der Ergebnisse, die pro Seite zurückgegeben werden sollen. Beispiel: 5
  • PAGE_TOKEN: Optional. Abfrageparameter für das Token, um fortzufahren paginierten Ergebnissen. Beispiel: CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA

HTTP-Methode, URL und Suchparameter:

GET https://[ENDPOINT_URI]/v1/organizations/[DESTINATION_ORGANIZATION_ID]/locations/[DESTINATION_LOCATION_ID]/workloads/[DESTINATION_WORKLOAD_ID]:analyzeWorkloadMove?project=projects/SOURCE_PROJECT_ID&page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Beispiel:

GET https://us-west1-assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:analyzeWorkloadMove?project=projects/my-project-123&page_size=5&page_token=CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "assetMoveAnalyses": [
    {
      "asset": "//orgpolicy.googleapis.com/projects/130536381852/policies/container.restrictNoncompliantDiagnosticDataAccess",
      "assetType": "orgpolicy.googleapis.com/Policy"
    },
    {
      "asset": "//compute.googleapis.com/projects/my-project-123/global/routes/default-route-9ca6e6b0ab7326f0",
      "assetType": "compute.googleapis.com/Route",
      "analysisGroups": [
        {
          "displayName": "RESOURCE_LOCATIONS",
          "analysisResult": {
            "warnings": [
              {
                "detail": "The asset's location 'global' is incompatible with the gcp.resourceLocations org policy effective at the target. In case of 'global only' assets, this may be ignored."
              }
            ]
          }
        }
      ]
    },
    {
      "asset": "//compute.googleapis.com/projects/my-project-123/regions/europe-west10/subnetworks/default",
      "assetType": "compute.googleapis.com/Subnetwork",
      "analysisGroups": [
        {
          "displayName": "RESOURCE_LOCATIONS",
          "analysisResult": {
            "blockers": [
              {
                "detail": "The asset's location 'europe-west10' is incompatible with the gcp.resourceLocations org policy effective at the target."
              }
            ]
          }
        }
      ]
    },
    {
      "asset": "//serviceusage.googleapis.com/projects/130536381852/services/servicemanagement.googleapis.com",
      "assetType": "serviceusage.googleapis.com/Service"
    },
    {
      "asset": "//serviceusage.googleapis.com/projects/130536381852/services/monitoring.googleapis.com",
      "assetType": "serviceusage.googleapis.com/Service"
    },
    {
      "asset": "//serviceusage.googleapis.com/projects/130536381852/services/bigquerymigration.googleapis.com",
      "assetType": "serviceusage.googleapis.com/Service",
      "analysisGroups": [
        {
          "displayName": "DISALLOWED_SERVICES",
          "analysisResult": {
            "warnings": [
              {
                "detail": "This service is not allowed by the gcp.restrictServiceUsage org policy effective at the target"
              }
            ]
          }
        }
      ]
    },
    {
      "asset": "//cloudresourcemanager.googleapis.com/projects/my-project-123",
      "assetType": "cloudresourcemanager.googleapis.com/Project",
      "analysisGroups": [
        {
          "displayName": "ORG_POLICIES",
          "analysisResult": {
            "warnings": [
              {
                "detail": "constraints/gcp.resourceLocations: Target applies/inherits this custom policy and it is not applied by the source. Upon moving, this policy will get inherited from the target."
              },
              {
                "detail": "constraints/compute.disableInstanceDataAccessApis: Source applies this custom policy and it is not applied by the target."
              },
              {
                "detail": "constraints/cloudkms.allowedProtectionLevels: Source and target set different values for this policy."
              },
              {
                "detail": "constraints/container.restrictNoncompliantDiagnosticDataAccess: Source and target set different values for this policy."
              },
              {
                "detail": "constraints/gcp.restrictServiceUsage: Target applies/inherits this custom policy and it is not applied by the source. Upon moving, this policy will get inherited from the target."
              }
            ],
            "blockers": [
              {
                "detail": "constraints/gcp.resourceLocations: The value applied at the source is not compliant with the target compliance program. The expected allowed values are [us-west4, us-west1, us-west2, us-west3, us-central1, us-east1, us-east4, us-south1, us-central2, us-east5]."
              },
              {
                "detail": "constraints/container.restrictNoncompliantDiagnosticDataAccess: The value applied at the source is not compliant with the target compliance program. The expected value is [true]."
              },
              {
                "detail": "constraints/container.restrictTLSVersion: The value applied at the source is not compliant with the target compliance program. The expected denied values are [TLS_VERSION_1, TLS_VERSION_1_1]."
              }
            ]
          }
        }
      ]
    }
  ],
  "nextPageToken": "Ch8wLDc0MzY3NTExNCwzMzg4ODM1NTM2NDQ0NTg4MDMy"
}

Verwenden Sie die Abfrage asset_types, um die Ergebnisse nach einem bestimmten Asset-Typ zu filtern Parameter:

GET https://assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:analyzeWorkloadMove?project=projects/my-project-123&asset_types=cloudresourcemanager.googleapis.com/Project&page_size=5&page_token=CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA

Die Ergebnisse enthalten nur Ergebnisse des angegebenen Typs. (cloudresourcemanager.googleapis.com/Project):

{
  "assetMoveAnalyses": [
    {
      "asset": "//cloudresourcemanager.googleapis.com/projects/my-project-123",
      "assetType": "cloudresourcemanager.googleapis.com/Project",
      "analysisGroups": [
        {
          "displayName": "ORG_POLICIES",
          "analysisResult": {
            "warnings": [
              {
                "detail": "constraints/gcp.resourceLocations: Target applies/inherits this custom policy and it is not applied by the source. Upon moving, this policy will get inherited from the target."
              },
              {
                "detail": "constraints/compute.disableInstanceDataAccessApis: Source applies this custom policy and it is not applied by the target."
              }
            ],
            "blockers": [
              {
                "detail": "constraints/gcp.resourceLocations: The value applied at the source is not compliant with the target compliance program. The expected allowed values are [us-west4, us-west1, us-west2, us-west3, us-central1, us-east1, us-east4, us-south1, us-central2, us-east5]."
              }
            ]
          }
        }
      ]
    }
  ],
  "nextPageToken": "Ch8wLDc0MzY3NTExNCwzMzg4ODM1NTM2NDQ0NTg4MDMy"
}

Wenn Sie die Ergebnisse nach mehr als einem Asset-Typ filtern möchten, fügen Sie jeden als zusätzlichen Typ hinzu Suchparameter:

GET https://assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:analyzeWorkloadMove?project=projects/my-project-123&asset_types=cloudresourcemanager.googleapis.com/Project&asset_types=serviceusage.googleapis.com/Service&page_size=5&page_token=CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA

Die Ergebnisse enthalten nur Ergebnisse der angegebenen Typen. (cloudresourcemanager.googleapis.com/Project und serviceusage.googleapis.com/Service):

{
  "assetMoveAnalyses": [
    {
      "asset": "//serviceusage.googleapis.com/projects/130536381852/services/bigquerymigration.googleapis.com",
      "assetType": "serviceusage.googleapis.com/Service",
      "analysisGroups": [
        {
          "displayName": "DISALLOWED_SERVICES",
          "analysisResult": {
            "warnings": [
              {
                "detail": "This service is not allowed by the gcp.restrictServiceUsage org policy effective at the target"
              }
            ]
          }
        }
      ]
    },
    {
      "asset": "//cloudresourcemanager.googleapis.com/projects/my-project-123",
      "assetType": "cloudresourcemanager.googleapis.com/Project",
      "analysisGroups": [
        {
          "displayName": "ORG_POLICIES",
          "analysisResult": {
            "warnings": [
              {
                "detail": "constraints/gcp.resourceLocations: Target applies/inherits this custom policy and it is not applied by the source. Upon moving, this policy will get inherited from the target."
              },
              {
                "detail": "constraints/compute.disableInstanceDataAccessApis: Source applies this custom policy and it is not applied by the target."
              }
            ],
            "blockers": [
              {
                "detail": "constraints/gcp.resourceLocations: The value applied at the source is not compliant with the target compliance program. The expected allowed values are [us-west4, us-west1, us-west2, us-west3, us-central1, us-east1, us-east4, us-south1, us-central2, us-east5]."
              }
            ]
          }
        }
      ]
    }
  ],
  "nextPageToken": "Ch8wLDc0MzY3NTExNCwzMzg4ODM1NTM2NDQ0NTg4MDMy"
}

Nachdem Sie die Migrationsanalyse durchgeführt haben, prüfen und beheben Sie alle Warnungen oder Blockierungen. Führen Sie dann die Analyse noch einmal aus, um zu prüfen, ob die Probleme behoben wurden. Anschließend können Sie Projekt verschieben.

Nächste Schritte