resourcemanager.projects.setIamPolicy
권한이 있는 사용자인 Google Cloud 프로젝트 관리자는 Identity and Access Management(IAM) 권한 또는 역할을 적절한 사용자 및 서비스에 부여합니다.
Google Cloud 프로젝트 관리자 계정은 사용자 및 서비스 계정에 권한을 부여하는 데만 필요합니다. 전송 작업을 시작하지 않아도 됩니다.
IAM 역할 부여에 대한 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.
Storage Transfer Service의 커스텀 역할을 만들려면 IAM 커스텀 역할 이해를 참조하세요.
관리자 계정
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 역할을 참조하세요. |
서비스 계정
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 )
|
Storage Transfer Service를 사용 설정하여 이 전송에 연결된 Cloud Storage 버킷에 전송 로그를 만들 수 있습니다. |
전송에 사용되는 모든 Cloud Storage 버킷에 부여합니다. 상황에 따라 Storage Transfer Service를 실행 중인 프로젝트에 프로젝트 수준의 역할을 부여할 수 있습니다.
이러한 역할이 부여하는 권한의 자세한 목록은 사전 정의된 Cloud Storage 역할을 참조하세요. |
스토리지 객체 뷰어
(roles/storage.objectViewer )
|
Storage Transfer Service를 사용 설정하여 파일이 이미 Cloud Storage에 전송되거나 Cloud Storage에서 수신되었는지 여부를 확인합니다. | |
Storage Transfer Service 에이전트
(roles/storagetransfer.serviceAgent )
|
Storage Transfer Service를 사용 설정하여 Google Cloud에서 전송 에이전트와 통신할 수 있도록 Pub/Sub 주제를 자동으로 만들고 수정합니다. |
Storage Transfer Service가 실행되는 프로젝트에 프로젝트 수준의 역할을 적용합니다.
이 역할이 부여하는 권한의 자세한 목록은 권한 및 역할을 참조하세요. |
스토리지 기존 버킷 리더
(roles/storage.legacyBucketReader )
|
Storage Transfer Service를 사용 설정하여 Cloud Storage 버킷 메타데이터를 읽습니다. |
전송에 사용되는 각 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 구성에 설정된 경우입니다. |
이러한 권한을 부여하려면 다음 역할을 부여합니다.
- 스토리지 객체 관리자 (
roles/storage.objectAdmin
)
또는 특정 권한이 있는 커스텀 역할을 만들고 커스텀 역할을 부여합니다.
멀티파트 업로드 사용 설정에는 추가 권한이 필요합니다.
Cloud Storage - 파일 시스템
전송 소스가 Cloud Storage 버킷인 경우 전송 에이전트는 소스 버킷에 대한 다음 권한이 필요합니다.
권한 | 설명 |
---|---|
storage.objects.get |
에이전트 계정에서 객체 데이터 및 메타데이터를 읽도록 허용합니다. |
이 권한을 부여하려면 다음 역할을 부여합니다.
- 스토리지 객체 뷰어 (
roles/storage.objectViewer
)
또는 단일 권한이 있는 커스텀 역할을 만들고 커스텀 역할을 부여합니다.
파일 시스템 - 파일 시스템
두 파일 시스템 간 전송인 경우 전송 에이전트에는 중간 버킷에 대한 다음 권한이 필요합니다.
권한 | 설명 |
---|---|
storage.objects.create |
에이전트 계정이 전송 중에 Cloud Storage 객체를 쓸 수 있습니다. |
storage.objects.get |
에이전트 계정에서 객체 데이터 및 메타데이터를 읽도록 허용합니다. |
storage.objects.delete |
전송이 완료된 후 중간 버킷의 객체를 삭제하도록 구성된 경우 필수입니다. |
이러한 권한을 부여하려면 다음 역할을 부여합니다.
- 스토리지 객체 관리자 (
roles/storage.objectAdmin
)
또는 특정 권한이 있는 커스텀 역할을 만들고 커스텀 역할을 부여합니다.
멀티파트 업로드 사용 설정에는 추가 권한이 필요합니다.
Cloud Storage에 대한 S3 호환 스토리지
전송 에이전트 계정에는 대상 버킷에 대해 다음 권한이 필요합니다. 자세한 내용은 버킷 수준 정책에 주 구성원 추가를 참조하세요.
권한 | 설명 |
---|---|
storage.objects.create |
에이전트 계정이 전송 중에 Cloud Storage 객체를 쓸 수 있습니다. |
storage.objects.get |
에이전트 계정에서 객체 데이터 및 메타데이터를 읽도록 허용합니다. |
storage.objects.delete |
싱크에서 객체를 덮어쓰거나 삭제하도록 전송이 구성된 경우 필수입니다. 예를 들어 overwriteObjectsAlreadyExistingInSink 또는 deleteObjectsUniqueInSink 가 전송의 transferOptions 구성에 설정된 경우입니다. |
이러한 권한을 부여하려면 다음 역할을 부여합니다.
- 스토리지 객체 관리자 (
roles/storage.objectAdmin
)
또는 특정 권한이 있는 커스텀 역할을 만들고 커스텀 역할을 부여합니다.
멀티파트 업로드
파일 시스템에서 Cloud Storage로 전송하거나 파일 시스템 간에 전송하기 위해 멀티파트 업로드를 사용 설정하려면 다음 권한을 에이전트에 추가로 부여합니다.
- Cloud Storage로 전송할 경우 대상 버킷에 권한을 할당합니다.
- 파일 시스템 간 전송의 경우 중간 버킷에 권한을 할당합니다.
멀티파트 업로드는 큰 파일이 포함된 전송의 속도를 높일 수 있으며 Standard Storage 클래스를 사용하는 버킷에서만 지원됩니다.
멀티파트 업로드 권한 이름 | 설명 |
---|---|
storage.multipartUploads.create |
여러 부분으로 객체를 업로드합니다. |
storage.multipartUploads.abort |
멀티파트 업로드 세션을 취소합니다. |
storage.multipartUploads.listParts |
멀티파트 업로드 세션에서 업로드된 객체 부분을 나열합니다. |
storage.multipartUploads.list |
버킷의 멀티파트 업로드 세션을 나열합니다. |
이러한 권한을 부여하려면 다음 역할을 부여합니다.
- 스토리지 객체 관리자 (
roles/storage.objectAdmin
)
또는 특정 권한이 있는 커스텀 역할을 만들고 커스텀 역할을 부여합니다.