온프레미스 또는 프라이빗 클라우드 파일 시스템(예: POSIX, NFS, SMB)으로 데이터를 전송할 때는 다음을 구성해야 합니다.
- 로컬 파일 시스템 권한: 대상 전송 에이전트에 대상 디렉터리에 대한 OS 수준 쓰기 액세스 권한을 부여합니다.
- 중간 버킷 권한(파일 간 전송만 해당): 파일 시스템 간에 파일을 스테이징하는 데 사용되는 중간 Cloud Storage 버킷에 IAM 역할을 부여합니다.
기본 요건
- 사용자 권한: 사용자 계정 또는 사용자 관리형 서비스 계정에 전송 작업 및 에이전트 풀을 구성할 권한이 있는지 확인합니다. 필수 사용자 권한을 참고하세요.
- 에이전트 기반 프로젝트 수준 권한: 서비스 에이전트 및 전송 에이전트 계정에 필요한 프로젝트 수준 역할을 구성했는지 확인합니다. 에이전트 기반 프로젝트 수준 권한을 참조하세요.
로컬 대상 파일 시스템 권한
전송 에이전트는 호스트 파일 시스템에 파일을 직접 작성합니다. 쓰기를 사용 설정하려면 다음 안내를 따르세요.
OS 사용자 권한: 컨테이너 프로세스를 실행하는 운영체제 사용자에게 대상 디렉터리 트리에 대한 읽기, 쓰기, 실행 권한이 있는지 확인합니다.
디렉터리 마운트: 대상 에이전트를 설치할 때
--mount-directories플래그를 사용하여 대상 디렉터리 경로를 컨테이너에 마운트합니다.gcloud transfer agents install --pool=DESTINATION_POOL_NAME \ --mount-directories=/path/to/destination/dir
중간 버킷 권한(파일 간 전송)
두 파일 시스템 간 전송에서는 중간 Cloud Storage 버킷을 사용하여 전송 중에 파일을 스테이징합니다.
다음 사전 정의된 역할은 서비스 에이전트에 중간 버킷에 대한 필수 액세스 권한을 부여합니다.
- 스토리지 객체 생성자(
roles/storage.objectCreator) - 스토리지 객체 뷰어 (
roles/storage.objectViewer) - 스토리지 기존 버킷 리더(
roles/storage.legacyBucketReader)
다음 역할은 전송 에이전트 계정에 중간 버킷에 대한 필수 액세스 권한을 부여합니다.
- 스토리지 객체 사용자(
roles/storage.objectUser)
중간 버킷에 다음 역할을 부여합니다.
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
- 중간 버킷의 버킷 더보기 메뉴()를 클릭하고 액세스 수정을 선택합니다.
- + 주 구성원 추가를 클릭합니다.
- 새 주 구성원에 서비스 에이전트 이메일을 입력합니다.
- 역할 선택 드롭다운 메뉴에서
Storage Object Creator,Storage Object Viewer,Storage Legacy Bucket Reader를 선택합니다. - + 주 구성원 추가를 다시 클릭합니다.
- 소스 및 대상 에이전트 풀에 사용되는 전송 에이전트 계정의 이메일 주소를 입력합니다.
- 역할 선택 드롭다운 메뉴에서
Storage Object User를 선택합니다. - 저장을 클릭합니다.
gcloud
서비스 에이전트에 로깅 및 메타데이터 역할을 부여합니다.
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectCreatorgcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewergcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReader소스 및 대상 에이전트 풀 모두에 대해 전송 에이전트 계정에 객체 관리 역할을 부여합니다.
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT --role=roles/storage.objectUser다음과 같이 바꿉니다.
- INTERMEDIATE_BUCKET_NAME: 중간 스테이징 버킷의 이름입니다.
- SERVICE_AGENT_EMAIL: 서비스 에이전트 이메일입니다.
- serviceAccount_OR_user: 전송 에이전트 계정이 서비스 계정인 경우
serviceAccount를 지정하고, 에이전트가 사용자 계정으로 설치된 경우user를 지정합니다. - TRANSFER_AGENT_ACCOUNT: 전송 에이전트를 실행하는 계정의 이메일입니다. 소스 및 대상 에이전트 풀에서 다른 계정을 사용하는 경우 이 명령어를 반복합니다.
REST API
요청을 인증할 액세스 토큰을 생성합니다.
gcloudCLI를 사용하는 경우 다음을 실행합니다.gcloud auth print-access-token
기존 버킷 IAM 정책(
GET https://storage./storage/v1/b/<var>INTERMEDIATE_BUCKET_NAME</var>/iam)을 가져오고 다음 바인딩을bindings배열에 추가한 후 병합된 정책을intermediate_policy.json로 저장합니다.{ "bindings": [ { "role": "roles/storage.objectCreator", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectViewer", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.legacyBucketReader", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectUser", "members": ["serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT"] } ] }
다음과 같이 바꿉니다.
- SERVICE_AGENT_EMAIL: 서비스 에이전트 이메일입니다.
- serviceAccount_OR_user: 전송 에이전트 계정이 서비스 계정인 경우
serviceAccount를 지정하고, 에이전트가 사용자 계정으로 설치된 경우user를 지정합니다. - TRANSFER_AGENT_ACCOUNT: 전송 에이전트를 설치한 계정의 이메일입니다. 소스 및 대상 에이전트 풀에서 다른 계정을 사용하는 경우
roles/storage.objectUser의members배열에 두 계정을 모두 포함합니다.
curl를 통해 중간 버킷 정책을 업데이트합니다.curl -X PUT --data-binary @intermediate_policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage./storage/v1/b/INTERMEDIATE_BUCKET_NAME/iam"다음과 같이 바꿉니다.
- OAUTH2_TOKEN: 1단계에서 생성된 OAuth 2.0 액세스 토큰입니다.
- INTERMEDIATE_BUCKET_NAME: 중간 버킷의 이름입니다.
파일 간 아키텍처에 대한 자세한 내용은 파일 시스템 간 전송을 참조하세요.
성능 및 최적화
- 대규모 파일 시스템으로 전송할 때 처리량을 극대화하려면 대상 에이전트 풀에 여러 에이전트를 설치하세요(최소 3개 권장). 전송 에이전트 권장사항을 참조하세요.
- 파일 간 전송에서 대용량 파일의 경우 중간 버킷에 멀티파트 업로드를 사용 설정하는 것이 좋습니다. 스토리지 객체 사용자(
roles/storage.objectUser)를 사용하면 필수 멀티파트 업로드 권한(storage.multipartUploads.*)이 자동으로 포함됩니다.
다음 단계
- 전송 에이전트 설치 방법 알아보기
- 소스에 대한 액세스 구성: 파일 시스템 방법 알아보기
- 소스에 대한 액세스 구성: Cloud Storage 방법 알아보기
- 파일 시스템 간에 데이터를 전송하는 방법 알아보기