에이전트 없는 전송 권한

에이전트 없는 전송에는 Cloud Storage 내에서 또는 Amazon S3, Azure Blob Storage 또는 Data Lake Storage Gen2 또는 공개 객체의 URL 목록에서의 전송이 포함됩니다. 전송 에이전트나 에이전트 풀이 필요하지 않습니다.

에이전트리스 전송으로 클라우드 제공업체 간에 데이터를 전송할 때 다음 두 사용자에게 권한을 부여해야 합니다.

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

가장 간단한 권한 부여 방법

gcloud CLI를 사용하여 사용자 계정 및 Google 관리 서비스 계정에 필요한 권한을 부여할 수 있습니다. 이러한 권한이 있는 사용자는 전송 작업을 생성, 편집, 삭제하고 대역폭 한도를 설정하거나 수정할 수 있습니다.

이러한 권한이 조직 정책에 비해 너무 광범위하면 Storage Transfer Service에 필요한 최소 권한은 이 문서의 이후 섹션을 참조하세요.

기존 권한을 검사하고 누락된 역할을 출력하려면 다음 명령어를 실행합니다.

gcloud transfer authorize

이러한 역할을 자동으로 적용하려면 --add-missing 플래그를 사용합니다.

gcloud transfer authorize --add-missing

사용자 대신 사용자 관리 서비스 계정에 권한을 부여하려면 서비스 계정 키 파일을 전달합니다.

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

이 명령어는 다음 권한을 부여합니다.

  • 사용자/사용자 관리 서비스 계정에 다음 권한을 부여합니다.

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Google 관리 서비스 에이전트에 다음 권한을 부여합니다.

    • roles/storage.admin
    • roles/storagetransfer.serviceAgent

gcloud CLI 설치 방법은 gcloud 빠른 시작을 참조하세요.

사용자 계정 권한

사용자 계정에는 Storage Transfer Service 작업을 실행할 권한이 필요합니다. 이러한 권한은 Storage Transfer 사용자 또는 Storage Transfer 관리자 역할 중 하나를 통해 부여됩니다.

또한 계정에 Google에서 관리하는 서비스 에이전트의 권한을 확인하기 위해 이를 검색할 권한이 있어야 합니다.

사용자 계정 또는 사용자 관리 서비스 계정을 설정하려면 다음 IAM 권한과 역할을 부여합니다.

역할/권한 기능 참고
resourcemanager.projects.getIamPolicy 이 권한은 Google 관리형 서비스 계정에 전송에 필요한 권한이 있는지 확인하는 데 사용됩니다. 이 권한을 부여하려면 사전 정의된 역할 역할 뷰어(roles/iam.roleViewer)를 부여하거나 이 단일 권한으로 커스텀 역할을 생성하고 커스텀 역할을 부여합니다.
다음 역할 중 하나:
스토리지 전송 관리자 (roles/storagetransfer.admin) 전송 작업 삭제를 비롯한 모든 Storage Transfer Service 작업을 허용합니다. 부여되는 권한의 자세한 목록은 사전 정의된 Storage Transfer Service 역할을 참조하세요.
스토리지 전송 사용자 (roles/storagetransfer.user) 사용자가 전송을 생성, 가져오기, 업데이트, 나열할 수 있습니다. 사용자가 전송 작업을 삭제할 수 없습니다. 부여되는 권한의 자세한 목록은 사전 정의된 Storage Transfer Service 역할을 참조하세요.

Google 관리 서비스 에이전트 권한

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

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

역할 자동 할당

올바른 역할을 서비스 상담사에게 자동으로 할당하는 방법에는 두 가지가 있습니다.

  • Google Cloud 콘솔을 사용하여 전송을 만듭니다. 콘솔에 필요한 권한이 자동으로 적용됩니다.

  • gcloud transfer authorize --add-missing을 사용합니다. 가장 간단한 권한 부여 방법을 참조하세요.

수동 역할 할당

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

역할/권한 기능 참고
스토리지 기존 버킷 작성자 (roles/storage.legacyBucketWriter) Storage Transfer Service를 사용 설정하여 버킷 메타데이터를 읽고 버킷의 객체를 나열하며 객체를 대상 버킷에 기록합니다.

Cloud Storage 대상 버킷에 부여합니다.

Cloud Storage legacy 역할은 버킷 수준에서만 부여될 수 있습니다.

스토리지 객체 뷰어 (roles/storage.objectViewer)

Storage Transfer Service가 Cloud Storage 소스에서 객체를 복사할 수 있도록 합니다.

또한 Storage Transfer Service가 Cloud Storage 대상에 파일이 이미 있는지, 변경되었는지 여부를 확인할 수 있습니다.

Cloud Storage에서 전송할 경우 Cloud Storage 소스 버킷에 부여합니다.

전송이 싱크에서 [객체를 덮어쓰도록](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) 구성된 경우(다르거나 전송이 없을 때) Cloud Storage 대상 버킷에도 권한을 부여합니다. 전송 설정이 항상 덮어쓰기로 되어 있는 경우에는 필요하지 않습니다.

상황에 따라 Storage Transfer Service를 실행 중인 프로젝트에 프로젝트 수준의 역할을 부여할 수 있습니다.

스토리지 기존 버킷 리더 (roles/storage.legacyBucketReader) Storage Transfer Service를 사용 설정하여 Cloud Storage 버킷 메타데이터를 읽습니다.

Cloud Storage에서 전송할 경우 Cloud Storage 소스 버킷에 부여합니다.

Cloud Storage legacy 역할은 버킷 수준에서만 부여될 수 있습니다.

자세한 내용은 필요한 권한 부여를 참조하세요.

사용자 관리 서비스 계정에 위임

서비스 에이전트 권한을 사용자 관리형 서비스 계정에 위임할 수 있습니다. 이렇게 하면 단일 서비스 에이전트에서 중앙 집중화하는 대신 서비스 계정 간에 여러 전송 작업의 버킷 권한을 분리할 수 있습니다.

자세한 내용은 사용자 관리 서비스 계정에 서비스 에이전트 권한 위임을 참고하세요.

프로젝트 간 Cloud Storage 전송

다른 프로젝트의 Cloud Storage 버킷 간에 객체를 전송하려면 소스 버킷과 대상 버킷 모두에서 단일 서비스 에이전트에 권한을 부여해야 합니다. 서비스 에이전트는 전송을 만들려는 프로젝트에 속합니다.

사용자 또는 사용자 관리 서비스 계정에는 전송을 만드는 프로젝트에 대한 권한만 필요합니다.

서비스 에이전트의 이메일을 가져오려면 서비스 에이전트 이메일 찾기를 참고하세요.

소스 버킷에서 버킷 수준의 다음 역할을 서비스 에이전트에 부여합니다.

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

대상 버킷에서 버킷 수준의 다음 역할을 같은 서비스 에이전트에 부여합니다.

  • Storage Legacy Bucket Writer

버킷 수준에서 역할을 부여하는 방법은 다음 페이지를 참조하세요.

Cloud Storage Legacy 역할은 프로젝트 수준에서 부여할 수 없습니다.

조직 제한사항

조직에서 도메인 제한(constraints/iam.allowedPolicyMemberDomains) 또는 다른 프로젝트의 리소스에 서비스 계정 연결 중지(constraints/iam.disableCrossProjectServiceAccountUsage)와 같은 조직 정책 제약조건을 적용한 경우 프로젝트 간 전송이 성공하려면 먼저 이러한 제약조건을 업데이트해야 합니다.

프로젝트 간 전송을 지원하려면 VPC 서비스 제어 설정을 업데이트해야 할 수도 있습니다. 클라우드 객체 스토리지 전송에 대한 VPC 서비스 제어 구성을 참조하세요.

AWS 및 Microsoft 권한

또한 소스 파일이 AWS S3 또는 Microsoft Azure Storage에 있는 경우 소스 파일에 대한 액세스 권한을 구성해야 합니다. 다음 문서는 필요한 단계를 자세히 설명합니다.