에이전트 없는 전송 권한

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

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

  • 전송을 만들거나 관리하는 사용자 또는 사용자 관리 서비스 계정
  • Storage Transfer Service와 처음 상호작용할 때 자동으로 생성되는 Google 관리 서비스 계정

또한 AWS S3, Microsoft Azure 또는 Cloud Storage에서 소스 파일에 대한 액세스 권한을 구성해야 합니다.

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 관리자 계정은 대역폭 사용량 한도를 설정하고 전송 작업을 삭제합니다.

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

역할/권한 기능 참고
resourcemanager.projects.getIamPolicy 이 권한은 Google 관리형 서비스 계정에 전송에 필요한 권한이 있는지 확인하는 데 사용됩니다. 이 권한을 부여하려면 사전 정의된 역할 역할 뷰어(roles/iam.roleViewer)를 부여하거나 이 단일 권한으로 커스텀 역할을 생성하고 커스텀 역할을 부여합니다.
스토리지 전송 관리자 (roles/storagetransfer.admin) 프로젝트 설정과 같은 전송 프로젝트의 관리 작업을 사용 설정합니다. 부여되는 권한의 자세한 목록은 사전 정의된 Storage Transfer Service 역할을 참조하세요.

사용자 계정

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

사용자 계정은 Google Cloud 콘솔 사용자이거나 서비스 계정일 수 있습니다. 서비스 계정을 사용하는 경우 Storage Transfer Service에 사용자 인증 정보를 전달하는 데 사용하는 방법은 사용하는 인터페이스에 따라 다릅니다.

사용자 계정을 설정하려면 계정에 다음 권한과 역할을 할당합니다.

역할/권한 기능 참고
resourcemanager.projects.getIamPolicy Google 관리형 서비스 계정에 전송에 필요한 Pub/Sub 권한이 있는지 확인하는 데 사용됩니다. 이 권한을 부여하려면 사전 정의된 역할 역할 뷰어(roles/iam.roleViewer)를 부여하거나 이 단일 권한으로 커스텀 역할을 생성하고 커스텀 역할을 부여합니다.
스토리지 전송 사용자 (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 API 호출을 사용합니다.

역할 자동 할당

올바른 역할을 Google 관리 서비스 계정에 자동으로 할당하는 방법에는 두 가지가 있습니다.

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

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

수동 역할 할당

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

역할/권한 기능 참고
스토리지 기존 버킷 작성자 (roles/storage.legacyBucketWriter) Storage Transfer Service를 사용 설정하여 버킷 메타데이터를 읽고 버킷의 객체를 나열하며 객체를 대상 버킷에 기록합니다. Cloud Storage 대상 버킷에 부여합니다.
스토리지 객체 뷰어 (roles/storage.objectViewer) Storage Transfer Service를 사용 설정하여 파일이 이미 Cloud Storage에 전송되거나 Cloud Storage에서 수신되었는지 여부를 확인합니다. Cloud Storage에서 전송할 경우 Cloud Storage 소스 버킷에 부여합니다. 상황에 따라 Storage Transfer Service를 실행 중인 프로젝트에 프로젝트 수준의 역할을 부여할 수 있습니다.
스토리지 기존 버킷 리더 (roles/storage.legacyBucketReader) Storage Transfer Service를 사용 설정하여 Cloud Storage 버킷 메타데이터를 읽습니다.

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

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

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

프로젝트 간 Cloud Storage 전송

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

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

Google 관리 서비스 계정의 이메일을 가져오려면 서비스 에이전트 이메일 찾기를 참조하세요.

소스 버킷에서 버킷 수준의 다음 역할을 Google 관리 서비스 계정에 부여합니다.

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

대상 버킷에서 버킷 수준의 다음 역할을 같은 Google 관리 서비스 계정에 부여합니다.

  • Storage Legacy Bucket Writer

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

조직 제한사항

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

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

AWS 및 Microsoft 권한

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