시작하기 전에

Transfer Service for On Premises Data 작업을 처음 만들 때는 필수 API를 사용 설정하고 올바른 권한이 부여되었는지 확인해야 합니다.

최초 설정을 수행하는 동안 오류가 발생하면 로그인한 사용자에게 설정 단계를 수행하는 데 필요한 권한이 있는지 확인합니다. 대부분의 경우 이러한 권한을 모든 사용자가 사용할 수 있는 것은 아니며, 프로젝트 관리자에게 문의하여 지원을 받아야 할 수 있습니다.

API 사용 설정

  1. Google Storage Transfer API 사용 설정

    API 사용 설정

  2. Pub/Sub API 사용 설정

    API 사용 설정

Docker 설치

물리적 또는 가상 Linux 머신에 Docker Community Edition을 설치합니다.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker

설치 오류가 발생하면 문제 해결을 참조하세요.

권한 할당하기

resourcemanager.projects.setIamPolicy 권한이 있는 사용자인 Google Cloud 프로젝트 관리자는 Identity and Access Management(IAM) 권한 또는 역할을 적절한 사용자 및 서비스에 부여합니다.

Google Cloud 프로젝트 관리자 계정은 사용자 및 서비스 계정에 권한을 부여하는 데만 필요합니다. 전송 작업을 시작하지 않아도 됩니다.

IAM 역할 부여에 대한 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

온프레미스용 전송에 대한 커스텀 역할을 만들려면 온프레미스용 전송에 대한 IAM 권한IAM 커스텀 역할 이해를 참조하세요.

관리자 계정

Storage Transfer Service 관리자 계정은 전송을 수행하는 동료를 지원하는 수퍼유저 계정입니다. 관리자는 전송 에이전트를 관리하고 대역폭 사용량 한도를 설정하며 전송 작업을 삭제할 수 있습니다.

관리자 계정을 설정하려면 다음 IAM 권한 및 역할을 할당합니다.

역할/권한 기능 참고
resourcemanager.projects.getIamPolicy 이 권한은 온프레미스용 전송 서비스 계정에 전송에 필요한 권한이 있는지 확인하는 데 사용됩니다.
스토리지 전송 관리자 (roles/storagetransfer.admin) 프로젝트 설정 및 에이전트 모니터링과 같은 전송 프로젝트의 관리 작업을 사용 설정합니다. 부여되는 권한의 자세한 목록은 사전 정의된 Storage Transfer Service 역할을 참조하세요.

사용자 계정

Storage Transfer Service 사용자 계정을 사용하여 전송을 만들고 실행할 수 있습니다. 이러한 계정에는 일반적으로 전송 작업을 삭제할 수 있는 권한이 없습니다.

온프레미스용 전송 사용자 계정을 설정하려면 계정에 다음 권한과 역할을 할당합니다.

역할/권한 기능 참고
resourcemanager.projects.getIamPolicy 온프레미스용 전송 서비스 계정에 전송하는 데 필요한 Pub/Sub 권한이 있는지 확인하는 데 사용됩니다.
스토리지 전송 사용자 (roles/storagetransfer.user) 사용자가 전송을 생성, 가져오기, 업데이트, 나열할 수 있습니다. 부여되는 권한의 자세한 목록은 사전 정의된 Storage Transfer Service 역할을 참조하세요.
스토리지 객체 관리자 (roles/storage.objectAdmin) 전송 중에 Cloud Storage 객체를 생성, 업데이트, 삭제할 수 있습니다. 이 계정이 전송에 사용하는 모든 Cloud Storage 버킷에 대해 권한이 부여되어야 합니다.

부여되는 권한의 자세한 목록은 사전 정의된 Cloud Storage 역할을 참조하세요.

서비스 계정

Storage Transfer Service는 Google 관리형 서비스 계정을 사용하여 데이터를 이동합니다. 이 서비스 계정은 처음 전송 작업을 만들거나, 에이전트 풀을 만들거나, googleServiceAccounts.get을 호출하거나, Google Cloud Console의 작업 생성 페이지를 방문하면 자동으로 생성됩니다.

서비스 계정의 형식은 일반적으로 project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com입니다. 특정 PROJECT_NUMBER를 확인하려면 googleServiceAccounts.get API 호출을 사용합니다.

Storage Transfer Service 서비스 계정에서 전송을 완료하는 데 필요한 리소스에 액세스하도록 허용하려면 서비스 계정에 다음 역할 또는 이에 상응하는 권한을 할당합니다.

역할/권한 기능 참고
스토리지 객체 생성자 (roles/storage.objectCreator) 온프레미스용 전송을 사용 설정하여 이 전송에 연결된 Cloud Storage 버킷에 전송 로그를 만들 수 있습니다. 전송에 사용되는 모든 Cloud Storage 버킷에 부여합니다. 상황에 따라 온프레미스용 전송을 실행 중인 프로젝트에 프로젝트 수준의 역할을 부여할 수 있습니다.

이러한 역할이 부여하는 권한의 자세한 목록은 사전 정의된 Cloud Storage 역할을 참조하세요.
스토리지 객체 뷰어 (roles/storage.objectViewer) 온프레미스용 전송을 사용 설정하여 파일이 이미 Cloud Storage 간에 전송되었는지 확인할 수 있습니다.
Pub/Sub 편집자 (roles/pubsub.editor) 온프레미스용 전송을 사용 설정하여 Google Cloud에서 온프레미스 에이전트로 통신할 수 있도록 Pub/Sub 주제를 자동으로 만들고 수정합니다. 온프레미스용 전송에서 실행 중인 프로젝트에 프로젝트 수준의 역할을 적용합니다.

이 역할이 부여하는 권한의 자세한 목록은 Pub/Sub 역할을 참조하세요.
스토리지 기존 버킷 리더 (roles/storage.legacyBucketReader) 온프레미스용 전송을 사용 설정하여 Cloud Storage 버킷 메타데이터를 읽습니다. 전송에 사용되는 각 Cloud Storage 버킷에 부여합니다.

전송 에이전트

Storage Transfer Service 전송 에이전트는 사용자 계정 또는 서비스 계정으로 실행할 수 있습니다.

전송 에이전트를 실행하는 전송 에이전트 서비스 계정 또는 사용자 계정을 설정하려면 다음 역할을 할당합니다.

역할/권한 기능 참고
스토리지 전송 에이전트 (roles/storagetransfer.transferAgent) 온프레미스용 전송 에이전트에 전송을 완료하는 데 필요한 Storage Transfer Service 및 Pub/Sub 권한을 부여합니다. 에이전트에서 사용 중인 사용자 또는 서비스 계정에 이 역할을 부여합니다.

이 역할이 부여하는 권한의 자세한 목록은 IAM으로 액세스 제어를 참조하세요.

소스 및 대상 권한

또한 에이전트 계정에 소스 데이터에 액세스하고 대상에 쓸 수 있는 올바른 권한이 있는지 확인해야 합니다.

파일 시스템 - Cloud Storage

전송 대상이 Cloud Storage 버킷인 경우 전송 에이전트에는 대상 버킷에 대한 다음 권한이 필요합니다. 자세한 내용은 버킷 수준 정책에 주 구성원 추가를 참조하세요.

권한 설명
storage.objects.create 에이전트 계정이 전송 중에 Cloud Storage 객체를 쓸 수 있습니다.
storage.objects.get 에이전트 계정에서 객체 데이터 및 메타데이터를 읽을 수 있도록 합니다.
storage.objects.delete 싱크에서 객체를 덮어쓰거나 삭제하도록 전송이 구성된 경우 필수입니다. 예를 들어 overwriteObjectsAlreadyExistingInSink 또는 deleteObjectsUniqueInSink가 전송의 transferOptions 구성에 설정된 경우입니다.
Cloud Storage - 파일 시스템

전송 소스가 Cloud Storage 버킷인 경우 전송 에이전트는 소스 버킷에 대한 다음 권한이 필요합니다.

권한 설명
storage.objects.get 에이전트 계정에서 객체 데이터 및 메타데이터를 읽을 수 있도록 합니다.
파일 시스템 - 파일 시스템

두 파일 시스템 간 전송인 경우 전송 에이전트에는 중간 버킷에 대한 다음 권한이 필요합니다.

권한 설명
storage.objects.create 에이전트 계정이 전송 중에 Cloud Storage 객체를 쓸 수 있습니다.
storage.objects.get 에이전트 계정에서 객체 데이터 및 메타데이터를 읽을 수 있도록 합니다.
storage.objects.delete 전송이 완료된 후 중간 버킷의 객체를 삭제하도록 구성된 경우 필수입니다.

다음 단계