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 Assured Workloads-Zielordner 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.
Diese Erkenntnisse sind wichtig, bevor Sie einen Umzug versuchen. Standardmäßig kann ein Assured Workloads-Ordner nur Ressourcentypen für die Dienste enthalten, die vom Kontrollpaket des Ordners unterstützt werden. 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 einen Assured Workloads-Ordner ändern, indem Sie die Organisationsrichtlinie zur Einschränkung der Ressourcennutzung ändern. So können nicht konforme Dienste in Ihrem Ordner bereitgestellt werden. Der nicht konforme Dienst und seine Ressourcen werden jedoch bei Hintergrund-Compliance-Prüfungen ignoriert. 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 Sie IAM-Berechtigungen zu oder prüfen Sie sie sowohl für das Quellprojekt als auch für den Zielordner „Assured Workloads“, um sicherzustellen, dass der Aufrufer berechtigt ist, die Migration durchzuführen.
Erforderliche IAM-Berechtigungen
Zum Ausführen einer Migrationsanalyse benötigt der Aufrufer IAM-Berechtigungen, entweder mit einer vordefinierten Rolle, die mehr Berechtigungen umfasst, oder einer benutzerdefinierten Rolle, die auf die minimal erforderlichen Berechtigungen beschränkt ist.
Folgende Berechtigungen sind erforderlich:
assuredworkloads.workload.get
für die Zielarbeitslastcloudasset.assets.searchAllResources
für das Quellprojektorgpolicy.policy.get
für das Quellprojekt und den Zielordner „Assured Workloads“
Migrationsanalyse durchführen
Wenn Sie eine Analyse des Quellprojekts und des Zielordners „Assured Workloads“ ausführen, sollten Sie alle Probleme beheben, bevor Sie das Projekt an das Ziel verschieben. Die Ergebnisse verhindern zwar nicht, dass Sie das Projekt verschieben, können aber zu Verstößen gegen die Compliance im Zielordner „Assured Workloads“ führen.
Es gibt zwei Arten von Ergebnissen:
- Warnung: Eine Warnung wird ausgegeben, wenn das Quellprojekt möglicherweise nicht mit dem Ziel kompatibel ist und ein Complianceverstoß auftreten kann. Warnungen sollten geprüft werden, um festzustellen, ob die Inkompatibilität akzeptabel ist oder vor der Migration behoben werden muss.
- Blockierer: Ein Blockierer-Ergebnis tritt auf, wenn ein Complianceverstoß zwischen dem Quellprojekt und dem Ziel erkannt wird. Blockierungen müssen behoben werden, bevor mit der Migration fortgefahren werden kann.
Die folgenden Arten von Ergebnissen werden gemeldet:
Ressourcenstandorte: Viele Steuerpakete erzwingen Standorteinschränkungen für Ressourcen, um die Compliance-Anforderungen einzuhalten. Das ist beispielsweise der Fall, wenn Ihr Quellprojekt Ressourcen enthält, die sich an einem nicht zulässigen Standort befinden.
Um dieses Problem zu beheben, verschieben Sie die betroffenen Ressourcen an zulässige Speicherorte, löschen Sie sie oder ändern Sie die Einstellung für die Einschränkung der Organisationsrichtlinie
gcp.resourceLocations
des Ziels.Nicht unterstützte Produkte/Dienste: Jedes Kontrollpaket unterstützt eine bestimmte Liste von Google Cloud Produkten und Diensten. Wenn Ihr Projekt einen Dienst verwendet, der vom Steuerpaket des Ziel-Assured Workloads-Ordners nicht unterstützt wird, wird dies als Problem 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 „Zielarbeitslasten“ 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.:
- Ihr Projekt und die geltende Richtlinie für das Ziel 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 Organisationsrichtlinieneinschränkungen, die nicht mit dem Zielkontrollpaket übereinstimmen.
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.
Um dieses Problem zu beheben, müssen Sie ermitteln, welche Einschränkung der Organisationsrichtlinie geändert werden muss, und die erforderlichen Änderungen vornehmen.
Nicht unterstützte Ergebnistypen
Die Migrationsanalyse unterstützt die folgenden Arten von Ergebnissen nicht:
- Inkompatibilitäten auf Ressourcenebene für Einschränkungen von Organisationsrichtlinien, die nicht
gcp.resourceLocations
sind Einige Steuerpakete sind beispielsweise mit der globalen Einschränkunggcp.restrictCmekCryptoKeyProjects
oder der Compute Engine-spezifischen Einschränkungcompute.disableNestedVirtualization
konfiguriert. Inkompatibilitäten mit diesen Einschränkungen zwischen Quelle und Ziel werden nicht analysiert oder gemeldet. - Dienstspezifische Funktionen, die für ein bestimmtes Steuerpaket deaktiviert werden können. Beispielsweise sind 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: Der URI des Assured Workloads-Dienstendpunkts.
Dieser URI muss der Endpunkt sein, der dem Standort der Zielarbeitslast entspricht, z. B.
https://us-west1-assuredworkloads.googleapis.com
für eine regionalisierte Arbeitslast in der Regionus-west1
undhttps://us-assuredworkloads.googleapis.com
für eine multiregionale Arbeitslast in den 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
oderus
Er entspricht demdata region
-Wert der Arbeitslast. - DESTINATION_WORKLOAD_ID: Die ID des Zielordners für abgesicherte Arbeitslasten, 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 mit der Paginierung der Ergebnisse fortzufahren. 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 eine JSON-Antwort ähnlich wie diese 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" }
Wenn Sie die Ergebnisse nach einem bestimmten Asset-Typ filtern möchten, verwenden Sie den Abfrageparameter asset_types
:
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 mehreren Asset-Typen filtern möchten, fügen Sie jeden als zusätzlichen Abfrageparameter hinzu:
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 mit dem Verschieben des Projekts fortfahren.
Nächste Schritte
- Kontrollpakete für Assured Workloads
- Hier erfahren Sie, welche Produkte für jedes Steuerelementpaket unterstützt werden.