Google Cloud 권한 및 Cloud Storage 단계별 구성

이 문서에서는 다음과 같은 Google Cloud 권한 및 Cloud Storage 단계별 구성에 대해 설명합니다.

  • 대상 Cloud Storage 버킷을 준비합니다.
  • 데이터 보안을 위해 Cloud Key Management Service 키를 준비합니다.
  • Transfer Appliance팀에 Cloud Storage 버킷 구성 데이터를 제공합니다.

시작하기 전에

Transfer Appliance팀에서 Google Transfer Appliance 권한 및 스토리지 준비라는 제목의 이메일이 수신되었는지 확인합니다. 이 이메일에는 다음이 포함됩니다.

  • 전송에 필요한 서비스 계정의 이름

  • 어플라이언스를 구성하는 데 필요한 세션 ID

  • 계정을 구성한 후 작성해야 하는 양식

대상 Cloud Storage 버킷 준비

Cloud Storage에 데이터를 저장하려면 버킷을 준비해야 합니다. 버킷은 Cloud Storage 내에서 데이터를 보관하는 기본 컨테이너입니다.

Transfer Appliance에서 준비한 대상 Cloud Storage 버킷으로 데이터를 옮기는 데 2개의 서비스 계정을 사용합니다. 서비스 계정은 사용자가 아닌 애플리케이션에서 사용하는 특수 계정입니다. 이 경우 서비스 계정을 사용하면 Transfer Appliance가 사용자를 대신하여 Cloud Storage 리소스를 사용하여 어플라이언스에서 Cloud Storage 버킷으로 데이터를 복사할 수 있습니다. 이러한 계정에 필요한 역할을 부여하여 어플라이언스의 데이터를 Cloud Storage 버킷으로 복사할 수 있도록 합니다.

대상 Cloud Storage 버킷을 준비하려면 다음 단계를 따르세요.

  1. Google Transfer Appliance 대상 버킷 준비이라는 제목의 이메일에서 Transfer Appliance팀은 다음 서비스 계정을 제공합니다.

    • 이 특정 전송과 연결된 세션 서비스 계정입니다. 예시는 다음과 같습니다.

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      이 예시에서 SESSION_ID는 특정 전송의 세션 ID입니다.

    • 어플라이언스의 데이터를 Cloud Storage 버킷으로 전송하는 데 사용되는 Transfer Service for On Premises Data 서비스에 연결된 서비스 에이전트입니다. 이 항목은 다음 예시와 같이 표시됩니다.

      project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com

      이 예시에서 TENANT_IDENTIFIER는 이러한 특정 프로젝트와 관련해서 생성된 번호입니다.

    다음 단계를 위해 서비스 계정을 기록해 둡니다.

    서비스 계정을 사용하면 Transfer Appliance가 사용자를 대신하여 Google Cloud 리소스를 조작하여 어플라이언스에서 Cloud Storage로 데이터를 복사할 수 있습니다. 이러한 계정에 필요한 역할을 부여하여 어플라이언스의 데이터를 Cloud Storage 버킷으로 복사할 수 있도록 합니다.

  2. Cloud Storage 버킷은 Google Cloud 프로젝트에 연결되어 있습니다. 선택한 버킷은 어플라이언스 주문에 사용된 것과 동일한 프로젝트에 있어야 합니다.

    Cloud Storage 버킷이 없으면 버킷을 만듭니다.

    Google Cloud 콘솔

    1. Google Cloud 콘솔에서 Cloud Storage 버킷 페이지를 엽니다.

      Cloud Storage 버킷 페이지 열기

    2. 버킷 생성을 클릭하여 버킷 생성 양식을 엽니다.

    3. 각 단계를 완료하려면 버킷 정보를 입력하고 계속을 클릭합니다.

      • 버킷 이름 지정 요구사항에 따라 이름을 지정합니다.

      • 버킷의 기본 스토리지 클래스를 선택합니다. 버킷에 업로드된 모든 객체에는 기본 스토리지 클래스가 기본적으로 할당됩니다. 다음으로 버킷 데이터의 위치를 선택합니다.

      • 액세스 제어 모델을 선택하여 버킷의 객체에 대한 액세스 제어 방법을 결정합니다.

      • 선택적으로 버킷 라벨을 추가하고 암호화 방법을 선택할 수 있습니다.

      • 버킷에 보관 정책을 설정하지 마세요.

    4. 완료를 클릭합니다.

    명령줄

    gsutil mb 명령어를 사용합니다.

    gsutil mb -b on -l LOCATION -p PROJECT_ID gs://BUCKET_NAME
    

    예를 들면 다음과 같습니다.

    • LOCATION: 원하는 Cloud Storage 버킷 위치입니다.
    • PROJECT_ID: 버킷을 만들 프로젝트 ID입니다.
    • BUCKET_NAME: 만들려는 버킷의 이름이며 버킷 이름 지정 요구사항에 따라 지정해야 합니다.

    버킷에 보관 정책을 설정하지 마세요.

  3. Cloud Storage 버킷을 사용하도록 Transfer Appliance 서비스 계정에 권한을 부여하려면 다음을 수행합니다.

    Google Cloud 콘솔

    1. Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.

      버킷으로 이동

    2. 주 구성원에게 역할을 부여할 버킷과 관련된 버킷 더보기 메뉴()를 클릭합니다.

    3. 버킷 권한 수정을 선택합니다.

    4. + 주 구성원 추가 버튼을 클릭합니다.

    5. 새 주 구성원 필드에 다음 ID를 입력합니다.

      • 세션 서비스 계정입니다. 예시는 다음과 같습니다.

        ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

        이 예시에서 SESSION_ID는 특정 전송의 세션 ID입니다.

      • Transfer Service for On Premises Data 서비스 에이전트입니다. 이 항목은 다음 예시와 같이 표시됩니다.

        project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com

        이 예시에서 TENANT_IDENTIFIER는 이러한 특정 프로젝트와 관련해서 생성된 번호입니다.

    6. 역할 선택 드롭다운 메뉴에서 스토리지 관리자 역할을 선택합니다.

      선택한 역할 및 부여되는 권한에 대한 간단한 설명이 창에 표시됩니다.

    7. 'Save(저장)'를 클릭합니다.

    명령줄

    gsutil iam ch 명령어를 사용합니다.

    gsutil iam ch \
    serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com:roles/storage.admin \
    serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com:roles/storage.admin \
    gs://BUCKET_NAME
    

    예를 들면 다음과 같습니다.

    • SESSION_ID: 특정 전송의 세션 ID입니다.
    • TENANT_IDENTIFIER: 이 특정 프로젝트와 관련해서 생성된 번호입니다.
    • BUCKET_NAME: 사용자가 만들려는 버킷 이름입니다.

Cloud KMS 키 준비

Transfer Appliance는 어플라이언스를 Google에 반환하기 전에 어플라이언스의 데이터를 암호화하여 보호합니다. Cloud Key Management Service(Cloud KMS) 공개 는 Transfer Appliance에서 데이터를 암호화하는 데 사용되며, 비공개 키는 데이터를 복호화하는 데 사용됩니다.

Google에서는 대상 Cloud Storage 버킷 준비의 세션 서비스 계정을 사용하여 어플라이언스의 데이터를 Cloud Storage 버킷에 업로드합니다.

암호화 키를 관리하기 위한 옵션은 다음과 같습니다.

  • Google 관리 암호화 키. Google이 사용자 대신 Cloud KMS 키를 만들고 관리하도록 요청할 수 있습니다. 이 방법을 사용하려면 Google Cloud 프로젝트 구성을 마치고 어플라이언스 수령에 설명된 단계를 계속할 수 있습니다.

  • 암호화 키를 직접 만들고 관리. 아래 안내에 따라 전송에 사용되는 암호화 키를 만들고 관리합니다. Cloud KMS 비대칭 복호화 키를 준비하고 키에 세션 서비스 계정을 추가합니다. 세션 서비스 계정은 비대칭 복호화 키를 사용해서 데이터를 복호화하고 Cloud Storage에 복사합니다.

Cloud KMS 키를 준비하려면 다음 안내를 따르세요.

  1. Cloud Key Management Service 키링이 없으면 다음을 수행하여 키링을 만듭니다.

    Google Cloud 콘솔

    1. Google Cloud 콘솔에서 암호화 키 페이지로 이동합니다.

      암호화 키 페이지로 이동

    2. 키링 만들기를 클릭합니다.

    3. 키링 이름 필드에 원하는 키링의 이름을 입력합니다.

    4. 키링 위치 드롭다운에서 "us-east1"과 같은 위치를 선택합니다.

    5. 만들기를 클릭합니다.

    명령줄

    gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
    

    예를 들면 다음과 같습니다.

    • LOCATION: 키링의 Cloud Key Management Service 위치입니다. 예를 들면 global입니다.
    • KEY_RING: 키링의 이름입니다.
    • PROJECT_ID: 스토리지 버킷이 속한 Google Cloud 프로젝트 ID입니다.
  2. 다음을 수행하여 비대칭 복호화 키를 만듭니다.

    Google Cloud 콘솔

    1. Google Cloud 콘솔에서 암호화 키 페이지로 이동합니다.

      암호화 키 페이지로 이동

    2. 키를 만들 키링의 이름을 클릭합니다.

    3. 키 만들기를 클릭합니다.

    4. 어떤 유형의 키를 만들고 싶으신가요? 섹션에서 생성된 키를 선택합니다.

    5. 키 이름 필드에 키의 이름을 입력합니다.

    6. 보호 수준 드롭다운을 클릭하고 소프트웨어를 선택합니다.

    7. 용도 드롭다운을 클릭하고 비대칭 복호화를 선택합니다.

    8. 알고리즘 드롭다운을 클릭하고 4096비트 RSA - OAEP 패딩 - SHA256 다이제스트를 선택합니다.

    9. 만들기를 클릭합니다.

    명령줄

    다음 명령어를 실행하여 비대칭 복호화 키를 만듭니다.

    gcloud kms keys create KEY --keyring=KEY_RING \
    --location=LOCATION --purpose=asymmetric-encryption \
    --default-algorithm=rsa-decrypt-oaep-4096-sha256 \
    --project=PROJECT_ID
    

    예를 들면 다음과 같습니다.

    • KEY: Cloud Key Management Service 키의 이름입니다. 예를 들면 ta-key입니다.
    • KEY_RING: 키링의 이름입니다.
    • LOCATION: 키링의 Cloud Key Management Service 위치입니다. 예를 들면 global입니다.
    • PROJECT_ID: 스토리지 버킷이 속한 Google Cloud 프로젝트 ID입니다.
  3. 다음을 수행하여 세션 서비스 계정을 비대칭 키에 주 구성원으로 추가합니다.

    Google Cloud 콘솔

    1. Google Cloud 콘솔에서 암호화 키 페이지로 이동합니다.

      암호화 키 페이지로 이동

    2. 비대칭 키가 포함된 키링을 클릭합니다.

    3. 원하는 비대칭 키의 체크박스를 선택합니다.

    4. 정보 패널에서 주 구성원 추가를 클릭합니다.

      주 구성원 추가가 표시됩니다.

    5. 새 주 구성원 필드에 Transfer Appliance팀에서 제공한 세션 서비스 계정을 입력합니다. 예시는 다음과 같습니다.

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      이 예시에서 SESSION_ID는 특정 전송의 세션 ID입니다.

    6. 역할 선택 필드에 Cloud KMS CryptoKey 공개 키 뷰어 역할을 추가합니다.

    7. 다른 역할 추가를 클릭합니다.

    8. 역할 선택 필드에 Cloud KMS CryptoKey 복호화 역할을 추가합니다.

    9. 'Save(저장)'를 클릭합니다.

    명령줄

    1. 다음 명령어를 실행하여 세션 서비스 계정에 roles/cloudkms.cryptoKeyDecrypter 역할을 부여합니다.

      gcloud kms keys add-iam-policy-binding KEY \
      --keyring=KEY_RING --location=LOCATION \
      --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
      --role=roles/cloudkms.cryptoKeyDecrypter
      

      예를 들면 다음과 같습니다.

      • KEY: Cloud Key Management Service 키의 이름입니다. 예를 들면 ta-key입니다.
      • KEY_RING: 키링의 이름입니다.
      • LOCATION: 키링의 Cloud Key Management Service 위치입니다. 예를 들면 global입니다.
      • SESSION_ID: 특정 전송의 세션 ID입니다.
    2. 다음 명령어를 실행하여 세션 서비스 계정에 roles/cloudkms.publicKeyViewer 역할을 부여합니다.

      gcloud kms keys add-iam-policy-binding KEY \
      --keyring=KEY_RING --location=LOCATION \
      --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
      --role=roles/cloudkms.publicKeyViewer
      

      예를 들면 다음과 같습니다.

      • KEY: Cloud Key Management Service 키의 이름입니다. 예를 들면 ta-key입니다.
      • KEY_RING: 키링의 이름입니다.
      • LOCATION: 키링의 Cloud Key Management Service 위치입니다. 예를 들면 global입니다.
      • SESSION_ID: 특정 전송의 세션 ID입니다.
  4. 다음을 수행하여 비대칭 키의 경로를 가져옵니다.

    Google Cloud Console

    1. Google Cloud 콘솔에서 암호화 키 페이지로 이동합니다.

      암호화 키 페이지로 이동

    2. 비대칭 복호화 키가 포함된 키링을 클릭합니다.

    3. 비대칭 복호화 키의 이름을 클릭합니다.

    4. 원하는 키 버전을 선택하고 더보기 를 클릭합니다.

    5. 리소스 이름 복사를 클릭합니다.

      키 형식의 예시는 다음과 같습니다.

      projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER

      예를 들면 다음과 같습니다.

      • PROJECT_ID: 스토리지 버킷이 속한 Google Cloud 프로젝트 ID입니다.
      • LOCATION: 키링의 Cloud Key Management Service 위치입니다.
      • KEY_RING: 키링의 이름입니다.
      • KEY: Cloud Key Management Service 키의 이름입니다.
      • VERSION_NUMBER: 키의 버전 번호입니다.

      Transfer Appliance팀은 사용자의 데이터에 올바른 키를 적용할 수 있도록 버전 번호를 포함한 전체 키 경로를 필요로 합니다.

    명령줄

    다음 명령어를 실행하여 버전 번호를 포함하여 비대칭 키의 전체 경로를 나열합니다.

    gcloud kms keys versions list --keyring=KEY_RING \
    --key=KEY --location=LOCATION \
    --project=PROJECT_ID
    

    예를 들면 다음과 같습니다.

    • KEY_RING: 키링의 이름입니다.
    • KEY: 비대칭 키의 이름입니다.
    • LOCATION: 키링의 Google Cloud 위치입니다.
    • PROJECT_ID: 스토리지 버킷이 속한 Google Cloud 프로젝트 ID입니다.

    다음 샘플 응답은 반환된 출력과 유사합니다.

    NAME STATE
    projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
    ENABLED
    

    예를 들면 다음과 같습니다.

    • PROJECT_ID: 스토리지 버킷이 속한 Google Cloud 프로젝트 ID입니다.
    • LOCATION: 키링의 Cloud Key Management Service 위치입니다.
    • KEY_RING: 키링의 이름입니다.
    • KEY: Cloud Key Management Service 키의 이름입니다.
    • VERSION_NUMBER: 키의 버전 번호입니다.

    Transfer Appliance팀은 /cryptoKeyVersions/VERSION_NUMBER로 끝나는 NAME 아래에 문자열을 필요로 합니다. 여기서 VERSION_NUMBER는 키의 버전 번호입니다.

Transfer Appliance팀에 버킷 구성 데이터 제공

Google은 사용자의 Cloud Storage 버킷 정보를 수집하기 위해 Google Transfer Appliance 권한 및 스토리지 준비라는 제목의 이메일을 전송합니다. Google은 사용자가 제공하는 정보를 사용해서 Transfer Appliance에서 Cloud Storage로의 전송을 구성합니다.

이 이메일에 연결된 양식에 다음 정보를 입력합니다.

  • Google Cloud 프로젝트 ID.
  • 암호화 옵션 선택:
    • Google이 암호화 키를 관리하도록 선택한 경우 Google 관리 암호화 키를 선택합니다.
    • 사용자가 자체 암호화 키를 관리하도록 선택한 경우 고객 관리 암호화 키를 선택합니다. 고객 관리 암호화 키 선택 드롭다운 메뉴에서 원하는 암호화 키를 선택합니다.
  • 이 전송에 사용된 Google Cloud Cloud Storage 대상 버킷 이름
  • 선택사항: 객체 프리픽스. 객체 프리픽스가 없으면 파일 시스템의 파일 이름 앞에 루트 경로가 없는 객체가 소스 경로가 있는 Cloud Storage로 전송됩니다. 예를 들어 다음 파일이 있다고 가정합니다.
    • /source_root_path/file1.txt
    • /source_root_path/dirA/file2.txt
    • /source_root_path/dirA/dirB/file3.txt
    그러면 Cloud Storage의 객체 이름은 다음과 같습니다.
    • file1.txt
    • dirA/file2.txt
    • dirA/dirB/file3.txt
    Cloud Storage의 객체 대상 이름에 객체 프리픽스가 추가됩니다. 프리픽스는 대상 버킷 이름의 / 문자 뒤에, 객체가 전송된 경로 이름 앞에 추가되며 소스 루트 경로는 포함하지 않습니다. 이렇게 하면 다른 전송 작업에서 전송된 객체를 구별할 수 있습니다.

    다음 표는 소스 객체의 경로가 /source_root_path/sub_folder_name/object_name인 경우 객체 프리픽스와 그 결과로 Cloud Storage에 생성되는 객체 이름의 몇 가지 예시를 보여줍니다.
    프리픽스 대상 객체 이름
    없음 /destination_bucket/sub_folder_name/object_name
    prefix/ /destination_bucket/prefix/sub_folder_name/object_name

다음 단계

네트워크에서 Transfer Appliance 작동을 위한 IP 네트워크 포트 구성