역할 및 권한 참조

이 문서에는 Migrate to Virtual Machines에 필요한 다양한 역할과 권한에 대한 참조가 포함되어 있습니다. Google Cloud에서 역할 및 권한은 일반적으로 서비스 계정 또는 사용자 계정과 연결됩니다.

다음 섹션에서는 Migrate to Virtual Machines의 주 구성요소로 구성되는 역할 및 권한에 대해 설명합니다.

또한 Cloud Identity and Access Management(IAM)에는 조직 내 사용자의 액세스를 제어하는 데 사용할 수 있는 두 가지의 사전 정의된 역할이 포함됩니다.

역할 직책 설명
roles/vmmigration.admin VM Migration 관리자 사용자가 새 Migrate to Virtual Machines 소스를 만들고 다른 모든 마이그레이션 작업을 수행할 수 있도록 허용합니다.
roles/vmmigration.viewer VM Migration 뷰어 사용자가 Google Cloud 콘솔에서 Migrate to Virtual Machines에 대한 정보를 가져올 수 있습니다. 마이그레이션을 모니터링하지만 수행하지 않는 사용자를 대상으로 합니다.

예를 들어 조직의 사용자가 마이그레이션에 대한 정보를 볼 수 있지만 마이그레이션을 수행할 수 없도록 하려면 roles/vmmigration.viewer 역할을 할당합니다.

Google Cloud 콘솔 사용자 계정

Migrate to Virtual Machines 대상 프로젝트는 마이그레이션된 VM을 실행하는 Compute Engine 인스턴스의 대상 프로젝트를 정의합니다. Migrate to Virtual Machines 호스트 프로젝트를 대상 프로젝트로 사용할 수 있습니다. VM을 추가 프로젝트로 마이그레이션하려면 VM을 Migrate to Virtual Machines에 대상 프로젝트로 추가해야 합니다.

사용자가 대상 프로젝트를 추가하고 대상 프로젝트에서 Compute Engine 인스턴스 세부정보를 구성할 수 있으려면 사용자에게 필요한 Identity and Access Management(IAM) 역할 및 권한이 있어야 합니다.

Google Cloud 콘솔에서 이러한 작업을 수행하기 때문에 해당 권한이 필요한 사용자 계정은 Google Cloud 콘솔에 로그인하기 위해 사용하는 계정입니다.

  • Migrate to Virtual Machines에 대상 프로젝트를 추가하려면 Google Cloud 콘솔에 로그인하는 데 사용하는 사용자 계정에 대상 프로젝트 추가 권한에서 설명한 권한이 필요합니다.

  • 대상 프로젝트에서 실행되는 Compute Engine 인스턴스의 대상 세부정보를 구성하려면 Google Cloud 콘솔에 로그인하는 데 사용하는 사용자 계정에 네트워크, 인스턴스 유형 등과 같은 대상 프로젝트의 데이터에 액세스할 수 있는 권한이 필요합니다. 대상 인스턴스 구성 권한을 참조하세요.

해당 환경의 IAM 구성 방법에 따라 두 작업을 모두 수행하도록 단일 사용자를 구성하거나 2명의 개별 사용자를 구성해야 합니다.

대상 프로젝트 추가 권한

대상 프로젝트를 추가하려면 Google Cloud 콘솔에 로그인하는 데 사용하는 사용자 계정에 다음이 필요합니다.

  • 호스트 프로젝트의 vmmigration.admin 역할
  • 대상 프로젝트의 resourcemanager.projectIamAdmin 역할

이러한 권한 설정에 대한 안내는 호스트 프로젝트 기본 서비스 계정의 권한 구성을 참고하세요.

Compute Engine 인스턴스의 대상 세부정보 구성 권한

대상 프로젝트에서 Compute Engine 인스턴스의 대상 세부정보를 구성하려면 Google Cloud 콘솔에 로그인하는 데 사용하는 사용자 계정에 다음이 필요합니다.

  • 대상 프로젝트의 roles/compute.viewer 역할

이러한 권한 설정에 대한 안내는 호스트 프로젝트 기본 서비스 계정의 권한 구성을 참고하세요.

Migrate to Virtual Machines 기본 서비스 계정

Migrate to Virtual Machines는 Migrate to Virtual Machines API를 사용 설정하고 이를 vmmigration.serviceAgent 역할에 할당할 때 호스트 프로젝트에서 기본 서비스 계정을 만듭니다. Migrate to Virtual Machines는 이 서비스 계정을 사용하여 테스트 클론 및 컷오버의 일부로 대상 프로젝트에 Compute Engine 인스턴스를 만듭니다.

환경에 따라 기본 서비스 계정의 권한을 수정해야 할 수 있습니다.

대상 프로젝트에서 공유 VPC를 사용할 때의 권한

공유 VPC에 액세스하는 대상 프로젝트에 Compute Engine 인스턴스를 배포하려면 공유 VPC 호스트 프로젝트의 서브네트워크에 액세스할 수 있도록 Migrate to Virtual Machines 기본 서비스 계정에 compute.networkUser 역할을 추가해야 합니다.

이러한 권한 설정에 대한 안내는 공유 VPC 권한 구성을 참조하세요.

대상 프로젝트 서비스 계정

기본적으로 대상 Compute Engine 인스턴스에 마이그레이션된 VM을 배포할 때 인스턴스에 서비스 계정이 할당되지 않습니다.

Compute Engine 인스턴스에 Google Cloud 서비스 및 API에 대한 액세스가 필요하면 대상 프로젝트에서 이러한 서비스 및 API에 액세스하는 데 필요한 권한을 사용하여 서비스 계정을 만듭니다. 그런 후 대상 세부정보를 구성할 때 Compute Engine 인스턴스에 서비스 계정을 연결합니다.

하지만 대상 서비스 계정을 Compute Engine 인스턴스에 연결하기 위해서는 대상 프로젝트 서비스 계정의 권한 구성에 설명된 대로 Migrate to Virtual Machines 기본 서비스 계정이 필요한 권한이 있어야 합니다.

AWS를 소스로 구성할 수 있는 권한

이 섹션에서는 권한 JSON 템플릿의 필드를 자세히 설명합니다. 마이그레이션 권한을 구현하는 방법에 대한 자세한 내용은 AWS IAM 정책 만들기 섹션을 참조하세요.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeSnapshots",
                "ec2:CreateTags",
                "ec2:CreateSnapshots",
                "ec2:StopInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock",
                "ec2:DeleteSnapshot",
                "ec2:DeleteTags"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/m2vm-resource": "snapshot"
                }
            }
        }
    ]
}

마이그레이션 후보 인스턴스의 인벤토리를 표시하려면 Migrate to Virtual Machines에 ec2:DescribeInstances, ec2:DescribeVolumesec2:DescribeInstanceTypes 권한을 부여합니다.

Migrate to Virtual Machines에는 EC2 볼륨을 AWS에서 Google Cloud로 마이그레이션하기 위한 다음 권한이 필요합니다.

  1. 볼륨 스냅샷을 만들려면 ec2:DescribeSnapshots, ec2:CreateSnapshots, ec2:CreateTags에 대한 권한을 부여하세요.
  2. Google Cloud에 데이터를 복사하려면 ebs:ListSnapshotBlocks, ebs:ListChangedBlocks, ebs:GetSnapshotBlock을 부여하세요.
  3. 이전 스냅샷을 삭제하려면 ec2:DeleteSnapshotec2:DeleteTags에 대한 권한을 부여하세요.

컷오버를 수행하려면 Migrate to Virtual Machines에 ec2:StopInstances 권한을 부여합니다.

Azure를 소스로 구성할 수 있는 권한

이 섹션에서는 권한 JSON 템플릿의 필드에 대해 설명합니다. 마이그레이션 권한을 구현하는 방법에 대한 자세한 내용은 커스텀 역할 만들기 섹션을 참조하세요.

소스와 연결된 리소스 그룹을 만들고, 리소스가 존재하는지 확인하고, 소스가 있는 리소스를 나열하고, 소스가 삭제될 때 권한을 삭제하려면 다음 권한이 필요합니다.

"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/delete"

인벤토리 목록을 가져오고 마이그레이션 중인 VM의 세부정보를 가져오려면 다음 권한이 필요합니다.

"Microsoft.Compute/virtualMachines/read"

VM을 Google Cloud VM으로 컷오버할 때 VM 할당을 취소하려면 다음 권한이 필요합니다.

"Microsoft.Compute/virtualMachines/deallocate/action"

마이그레이션 중인 VM의 스냅샷/복원 지점을 생성, 나열, 삭제하려면 다음 권한이 필요합니다.

"Microsoft.Compute/restorePointCollections/read",
"Microsoft.Compute/restorePointCollections/write",
"Microsoft.Compute/restorePointCollections/delete",
"Microsoft.Compute/restorePointCollections/restorePoints/read",
"Microsoft.Compute/restorePointCollections/restorePoints/write",
"Microsoft.Compute/restorePointCollections/restorePoints/delete",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/read"

스냅샷/복원 지점 데이터를 읽으려면 다음 권한이 필요합니다.

"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/read",
"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/beginGetAccess/action",
"Microsoft.Compute/restorePointCollections/restorePoints/diskRestorePoints/endGetAccess/action",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action"