데이터 내보내기 및 가져오기

Cloud Firestore 내보내기/가져오기 관리 서비스를 사용하여 다음 작업을 할 수 있습니다. 실수로 삭제한 데이터를 복구하고 오프라인으로 데이터를 내보내기 가장 적합합니다 모든 문서를 내보내거나 특정 컬렉션만 지정하여 내보낼 수 있습니다. 마찬가지로 내보내기한 모든 데이터를 가져오거나 특정 컬렉션만 지정하여 가져오는 것도 가능합니다. 데이터 하나의 Cloud Firestore 데이터베이스에서 내보낸 데이터를 다른 데이터베이스로 가져올 수 있습니다. Cloud Firestore 데이터베이스 또한 Cloud FirestoreBigQuery로 내보냅니다.

이 페이지에서는 다음을 사용하여 Cloud Firestore 문서를 내보내고 가져오는 방법을 설명합니다. 내보내기/가져오기 관리 서비스와 Cloud Storage를 사용할 수 있습니다. 이 Cloud Firestore 관리형 내보내기/가져오기 서비스는 다음을 통해 제공됩니다. gcloud 명령줄 도구 및 Cloud Firestore API (REST, RPC)

시작하기 전에

내보내기/가져오기 관리 서비스를 사용하려면 먼저 다음 작업을 완료해야 합니다.

  1. 사용 설정 결제를 Google Cloud해 드립니다.Google Cloud 결제가 사용 설정된 프로젝트는 내보내기 및 가져오기 기능을 사용할 수 있습니다.
  2. 근처에 있는 프로젝트용 Cloud Storage 버킷 Cloud Firestore 데이터베이스 위치. 내보내기/가져오기 작업에는 요청자 지불 버킷을 사용할 수 없습니다.
  3. 계정에 Cloud FirestoreCloud Storage. 프로젝트 소유자라면 계정에 필수 권한이 있는지 확인하세요. 그렇지 않은 경우 역할은 내보내기 및 가져오기 작업에 필요한 권한을 부여합니다. Cloud Storage에 액세스하려면 다음 단계를 따르세요.

    • Cloud Firestore 역할: Owner, Cloud Datastore Owner 또는 Cloud Datastore Import Export Admin
    • Cloud Storage 역할: Owner 또는 Storage Admin

서비스 에이전트 권한

내보내기 및 가져오기 작업은 Cloud Firestore 서비스 에이전트를 사용하여 다음을 수행합니다. Cloud Storage 작업을 승인합니다. Cloud Firestore 서비스 에이전트 은 다음 이름 지정 규칙을 사용합니다.

Cloud Firestore 서비스 에이전트
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

서비스 에이전트에 대한 자세한 내용은 서비스 에이전트를 참조하세요.

Cloud Firestore 서비스 에이전트가 내보내기 또는 가져오기 작업에 사용된 버킷 Cloud Storage만약 버킷 Cloud Storage개가 Cloud Firestore과(와) 동일한 프로젝트에 있습니다. 데이터베이스가 있으면 Cloud Firestore 서비스 에이전트가 해당 버킷과 기본적으로 연결되어 있습니다

Cloud Storage 버킷이 다른 프로젝트에 있으면 Cloud Firestore 서비스 에이전트에 Cloud Storage에 대한 액세스 권한을 부여해야 합니다. 버킷과 동기화할 수 있습니다

서비스 에이전트에 역할 할당

gsutil 명령줄 도구를 사용하면 아래 역할 중 하나를 할당할 수 있습니다. 예를 들어 Cloud Firestore 서비스 에이전트에 연결하려면 다음을 실행합니다.

gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \
    gs://[BUCKET_NAME]

PROJECT_NUMBER를 프로젝트 번호로 바꿉니다. Cloud Firestore 서비스 에이전트의 이름을 지정하는 데 사용됩니다. 보기 서비스 에이전트 이름에 대한 자세한 내용은 서비스 에이전트 이름 보기를 참조하세요.

또는 Google Cloud 콘솔을 사용하여 이 역할을 할당할 수 있습니다.

서비스 에이전트 이름 보기

Google Cloud 콘솔의 가져오기/내보내기 페이지에서 가져오기 및 내보내기 작업이 요청을 승인하는 데 사용하는 계정을 볼 수 있습니다. 그 외에 데이터베이스에서 Cloud Firestore를 사용하는지 여부 보기 서비스 에이전트 또는 기존 App Engine 서비스 계정

  1. 가져오기/내보내기 작업 실행 계정 라벨 옆에 있는 승인 계정을 확인합니다.

서비스 에이전트에는 Cloud StorageStorage Admin 역할이 필요합니다. 내보내기 또는 가져오기 작업에 사용할 버킷입니다.

프로젝트에 gcloud 설정

Google Cloud 콘솔을 통해 가져오기 및 내보내기 작업을 시작하거나 gcloud 명령줄 도구 gcloud를 사용하려면 다음 방법 중 사용하여 명령줄 도구를 설정하고 프로젝트에 연결합니다.

데이터 내보내기

내보내기 작업은 데이터베이스의 문서를 Cloud Storage 버킷 내보내기는 내보내기 시작 시간에 생성된 정확한 데이터베이스 스냅샷이 아닙니다. 내보내기에는 작업 실행 중에 수행된 변경 사항이 포함될 수 있습니다.

모든 문서 내보내기

Google Cloud Console

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 내보내기를 클릭합니다.

  5. 전체 데이터베이스 내보내기 옵션을 클릭합니다.

  6. 대상 선택 아래에 Cloud Storage 버킷의 이름을 입력합니다. 또는 찾아보기 버튼을 사용하여 버킷을 선택합니다.

  7. 내보내기를 클릭합니다.

Console이 가져오기/내보내기 페이지로 돌아갑니다. 작업이 성공적으로 시작되면 최근 가져오기/내보내기 페이지에 항목이 추가됩니다. 실패하면 페이지에 오류 메시지가 표시됩니다.

gcloud

firestore export 명령어를 사용하여 [BUCKET_NAME]Cloud Storage 버킷 gcloud 도구가 다음 작업을 하지 못하도록 --async 플래그를 추가합니다. 대기하는 시간일 수 있습니다

  gcloud firestore export gs://[BUCKET_NAME] \
  --database=[DATABASE]

다음을 바꿉니다.

  • BUCKET_NAME: 버킷 이름 뒤에 파일 프리픽스를 추가하여 내보내기를 구성합니다(예: BUCKET_NAME/my-exports-folder/export-name). 파일 프리픽스를 지정하지 않은 경우 내보내기 관리 서비스는 현재 타임스탬프를 기준으로 파일 프리픽스를 하나 만듭니다.

  • DATABASE: 문서를 내보낼 데이터베이스의 이름입니다. 기본 데이터베이스에는 --database='(default)'를 사용합니다.

내보내기 작업을 시작하면 터미널을 닫아도 작업이 취소되지 않습니다. 작업 취소를 참조하세요.

특정 컬렉션 내보내기

Google Cloud Console

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 내보내기를 클릭합니다.

  5. 하나 이상의 컬렉션 그룹 내보내기 옵션을 클릭합니다. 드롭다운 메뉴를 사용하여 하나 이상의 컬렉션 그룹을 선택합니다.

  6. 대상 선택 아래에 Cloud Storage 버킷의 이름을 입력합니다. 또는 찾아보기 버튼을 사용하여 버킷을 선택합니다.

  7. 내보내기를 클릭합니다.

Console이 가져오기/내보내기 페이지로 돌아갑니다. 작업이 성공적으로 시작되면 최근 가져오기/내보내기 페이지에 항목이 추가됩니다. 실패하면 페이지에 오류 메시지가 표시됩니다.

gcloud

특정 컬렉션 그룹을 내보내려면 --collection-ids 플래그를 사용합니다. 이 작업은 컬렉션 ID가 지정된 컬렉션 그룹만 내보냅니다. 컬렉션 그룹에는 컬렉션 ID가 지정된 모든 경로의 컬렉션 및 하위 컬렉션이 모두 포함됩니다.

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
--database=[DATABASE]

예를 들어 ratings, reviews, outlets와 같은 여러 하위 컬렉션을 포함하도록 foo 데이터베이스에 restaurants 컬렉션을 설계할 수 있습니다. 특정 컬렉션 restaurantsreviews를 내보내려면 명령어가 다음과 같아야 합니다.

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=restaurants,reviews \
--database='cymbal'

PITR 타임스탬프에서 내보내기

PITR 데이터에서 Cloud Storage로 데이터베이스를 내보낼 수 있습니다. gcloud firestore export 명령어를 사용합니다. 타임스탬프가 1분 이내의 타임스탬프인 PITR 데이터를 내보낼 수 있습니다. earliestVersionTime보다 이른 시점이 아닙니다. 데이터가 더 이상 지정된 타임스탬프에 없으면 내보내기 작업이 실패합니다.

PITR 내보내기 작업은 모든 문서 내보내기 및 특정 컬렉션 내보내기를 포함한 모든 필터를 지원합니다.

  1. snapshot-time 매개변수를 원하는 복구 타임스탬프로 지정하여 데이터베이스를 내보냅니다.

    gcloud

    다음 명령어를 실행하여 데이터베이스를 버킷으로 내보냅니다.

    gcloud firestore export gs://[BUCKET_NAME_PATH] \
        --snapshot-time=[PITR_TIMESTAMP] \
        --collection-ids=[COLLECTION_IDS] \
        --namespace-ids=[NAMESPACE_IDS]
    

    각 항목의 의미는 다음과 같습니다.

    • PITR_TIMESTAMP - 분 단위의 PITR 타임스탬프입니다(예: 2023-05-26T10:20:00.00Z).

    PITR 데이터를 내보내기 전에 다음 사항에 유의하세요.

    • RFC 3339 형식으로 타임스탬프를 지정합니다. 예를 들면 2020-09-01T23:59:30.234233Z입니다.
    • 지정한 타임스탬프가 지난 7일 이내의 1분 타임스탬프여야 하지만 earliestVersionTime 이전이어야 합니다. 지정된 타임스탬프에 데이터가 더 이상 존재하지 않으면 오류가 발생합니다.
    • 실패한 PITR 내보내기 작업에 대해서는 요금이 청구되지 않습니다.

데이터 가져오기

Cloud Storage에서 파일을 내보냈다면 그 파일의 문서를 사용자의 프로젝트 또는 다른 프로젝트로 다시 가져올 수 있습니다. 가져오기 작업에 대한 다음 사항을 유의하세요.

  • 데이터를 가져오면 필수 색인이 데이터베이스의 현재 색인 정의를 사용하여 업데이트됩니다. 내보내기에는 색인 정의가 포함되지 않습니다.

  • 가져오기를 수행하면 새 문서 ID를 할당하지 않고 내보낼 때 캡처된 ID를 사용합니다. 문서를 가져올 때 문서의 ID가 유지되어 ID 충돌을 방지합니다. ID가 같은 문서가 이미 있는 경우에 가져오기를 수행하면 기존 문서를 덮어씁니다.

  • 가져오기의 영향을 받지 않는 데이터베이스의 문서는 가져오기 후에도 데이터베이스에 남아있게 됩니다.

  • 가져오기 작업은 Cloud Functions를 트리거하지 않습니다. 스냅샷 리스너는 가져오기 작업과 관련된 업데이트를 받습니다.

  • .overall_export_metadata 파일 이름은 상위 폴더 이름과 일치해야 합니다.

    gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadata

    내보내기의 출력 파일을 이동하거나 복사하는 경우 PARENT_FOLDER_NAME.overall_export_metadata 파일 이름을 동일하게 유지합니다.

내보내기에서 모든 문서 가져오기

Google Cloud Console

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 가져오기를 클릭합니다.

  5. 파일 이름 필드에 완료된 내보내기 작업에서 .overall_export_metadata 파일의 파일 이름을 입력합니다. 찾아보기 버튼을 사용하면 파일을 선택할 수 있습니다.

  6. 가져오기를 클릭합니다.

Console이 가져오기/내보내기 페이지로 돌아갑니다. 작업이 성공적으로 시작되면 최근 가져오기/내보내기 페이지에 항목이 추가됩니다. 실패하면 페이지에 오류 메시지가 표시됩니다.

gcloud

이전 내보내기 작업에서 문서를 가져오려면 firestore import 명령어를 사용합니다.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]

다음을 바꿉니다.

  • BUCKET_NAME/EXPORT_PREFIX: 내보내기 파일의 위치입니다.

  • DATABASE: 데이터베이스 이름입니다. 기본 데이터베이스에는 --database='(default)'를 사용합니다.

예를 들면 다음과 같습니다.

gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'

다음에서 내보내기 파일의 위치를 확인할 수 있습니다. Cloud Storage 브라우저:

Cloud Storage 브라우저 열기

가져오기 작업을 시작하면 터미널을 닫아도 작업이 취소되지 않습니다. 작업 취소를 참조하세요.

특정 컬렉션 가져오기

Google Cloud Console

Console에서 특정 컬렉션을 선택할 수 없습니다. 대신 gcloud를 사용하세요.

gcloud

내보내기 파일 집합에서 특정 컬렉션 그룹을 가져오려면 --collection-ids 플래그를 사용합니다. 이 작업은 컬렉션 ID가 지정된 컬렉션 그룹만 가져옵니다. 컬렉션 그룹에는 컬렉션 ID가 지정된 모든 경로의 컬렉션 및 하위 컬렉션이 모두 포함됩니다. --database 플래그를 사용하여 데이터베이스 이름을 지정합니다. 기본 데이터베이스에는 --database='(default)'를 사용합니다.

특정 컬렉션 그룹의 내보내기만 특정 컬렉션 그룹 가져오기를 지원합니다. 모든 문서 내보내기에서는 특정 컬렉션을 가져올 수 없습니다.

  gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \
  --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
  --database=[DATABASE]

PITR 내보내기 가져오기

모든 문서 가져오기의 단계에 따라 내보낸 데이터베이스를 가져옵니다. 데이터베이스에 이미 문서가 있으면 덮어쓰게 됩니다.

내보내기/가져오기 작업 관리

내보내기 또는 가져오기 작업을 시작하면 Cloud Firestore에서 고유 이름을 지정합니다 이 작업 이름을 사용하면 작업을 삭제 또는 취소하거나 상태를 확인할 수 있습니다.

작업 이름은 다음 예시와 같이 projects/[PROJECT_ID]/databases/(default)/operations/로 시작합니다.

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

describe, cancel, delete 명령어에 작업 이름을 지정할 때 프리픽스는 제외할 수 있습니다.

내보내기/가져오기 작업 모두 나열

Google Cloud Console

Google Cloud 콘솔의 가져오기/내보내기 페이지에서 최근 내보내기 및 가져오기 작업 목록을 볼 수 있습니다.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

gcloud

operations list 명령어를 사용하면 모든 실행 중인 작업과 최근에 완료된 내보내기/가져오기 작업을 볼 수 있습니다.

gcloud firestore operations list

작업 상태 확인

Google Cloud Console

Google Cloud 콘솔의 가져오기/내보내기 페이지에서 최근 내보내기 또는 가져오기 작업의 상태를 볼 수 있습니다.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

gcloud

내보내기 또는 가져오기 작업의 상태를 표시하려면 operations describe 명령어를 사용하세요.

gcloud firestore operations describe [OPERATION_NAME]

완료 시간 예상

장기 실행 작업의 상태를 요청하면 workEstimatedworkCompleted 측정항목이 반환됩니다. 이러한 각 측정항목은 바이트 수와 항목 수 단위로 반환됩니다.

  • workEstimated는 작업에서 처리할 것으로 예상되는 총 바이트 및 문서 수를 나타냅니다. 다음과 같은 경우 Cloud Firestore에서 이 측정항목을 생략할 수 있습니다. 추정할 수 없습니다.

  • workCompleted는 지금까지 처리된 바이트 및 문서 수를 나타냅니다. 작업이 완료된 후 이 값은 실제로 처리된 총 바이트 및 문서 수를 나타내며 workEstimated 값보다 클 수 있습니다.

workCompletedworkEstimated로 나누면 예상 진행도를 대략적으로 추정할 수 있습니다. 이 예상치는 통계 수집이 지연되어 정확하지 않을 수 있습니다.

작업 취소

Google Cloud Console

Google Cloud 콘솔의 가져오기/내보내기 페이지에서 실행 중인 내보내기 또는 가져오기 작업을 취소할 수 있습니다.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

최근 내보내기/가져오기 테이블의 현재 실행 중인 작업에는 완료 열에 취소 버튼이 포함됩니다. 작업을 중지하려면 취소 버튼을 클릭합니다. 버튼이 취소 중 메시지로 변경된 다음 작업이 완전히 중지되면 취소됨으로 변경됩니다.

gcloud

operations cancel 명령어를 사용하면 진행 중인 작업을 중지할 수 있습니다.

gcloud firestore operations cancel [OPERATION_NAME]

실행 중인 작업을 취소해도 이미 진행된 작업은 취소되지 않습니다. 취소된 내보내기 작업을 수행하면 Cloud Storage에 이미 내보낸 문서가 유지되고 가져오기 작업은 데이터베이스에 이미 수행된 업데이트를 그대로 둡니다. 일부만 완료된 내보내기는 가져올 수 없습니다.

작업 삭제

최근 작업 목록에서 작업을 삭제하려면 gcloud firestore operations delete 명령어를 사용하세요. 이 명령어는 Cloud Storage에서 파일 내보내기

gcloud firestore operations delete [OPERATION_NAME]

내보내기/가져오기 작업 결제 및 가격 책정

Google Cloud 프로젝트를 사용하려면 먼저 결제를 사용 설정해야 합니다. 내보내기/가져오기 관리 서비스를 제공합니다

내보내기 및 가져오기 작업에는 요금이 청구됩니다. 다음 표에 명시된 속도로 문서 읽기 및 쓰기를 Cloud Firestore 가격 내보내기 작업은 내보낸 문서당 읽기 작업이 1회 발생합니다. 가져오기 작업은 가져온 문서당 쓰기 작업이 1회 발생합니다.

Cloud Storage에 저장된 출력 파일은 저장용량 계산에 포함됩니다. Cloud Storage 데이터 스토리지 비용.

내보내기/가져오기 작업 비용은 지출 한도에 포함되지 않습니다. 내보내기 또는 가져오기 작업은 완료 후까지 예산 Google Cloud 알림이 제공됩니다. 마찬가지로 내보내기 또는 가져오기 작업 중에 수행된 읽기 및 쓰기는 일일 할당량을 변경할 수 있습니다. 내보내기/가져오기 작업은 Console의 사용량 섹션에 표시되는 사용량에는 영향을 미치지 않습니다.

내보내기/가져오기 비용 보기

내보내기/가져오기 작업은 청구 작업에 goog-firestoremanaged:exportimport 라벨을 적용합니다. Cloud Billing 보고서 페이지에서 이 라벨을 사용하여 가져오기/내보내기 작업과 관련된 비용을 볼 수 있습니다.

필터 메뉴에서 goog-firestoremanaged 라벨에 액세스합니다.

BigQuery로 내보내기

Cloud Firestore 내보내기에서 BigQuery로 데이터를 로드할 수 있습니다. collection-ids 필터를 지정한 경우에만 가능합니다. 자세한 내용은 Cloud Firestore 내보내기에서 데이터 로드

열 한도 BigQuery

BigQuery는 테이블당 열 수를 10,000개로 제한합니다. Cloud Firestore 내보내기 작업은 BigQuery 테이블을 생성합니다. 각 컬렉션 그룹의 스키마를 정의합니다 이 스키마에서 컬렉션 그룹 내 각 고유 필드 이름은 스키마 열이 됩니다.

컬렉션 그룹의 BigQuery 스키마가 10,000개를 초과하면 내보내기 작업 Cloud Firestore개가 열 한도를 넘지 않으려고 합니다. 지도 필드를 바이트로 처리하여 저장할 수 있습니다 이 전환을 통해 열 수가 10,000개 미만인 경우 해당 데이터를 BigQuery. 맵 필드 내의 하위 필드를 쿼리할 수 없습니다. 열 수가 여전히 10,000개를 초과하면 내보내기 작업이 수행되지 않습니다. 컬렉션 그룹에 대한 BigQuery 스키마를 생성한 다음 이 스키마에서 BigQuery로 변환합니다.

내보내기 형식 및 메타데이터 파일

관리형 내보내기의 출력은 LevelDB 로그 형식을 사용합니다.

메타데이터 파일

내보내기 작업으로 지정한 컬렉션 그룹마다 메타데이터 파일이 생성됩니다. 일반적으로 메타데이터 파일의 이름은 ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata입니다.

메타데이터 파일은 프로토콜 버퍼이며 protoc 프로토콜 컴파일러로 디코딩할 수 있습니다. 예를 들어 메타데이터 파일을 디코딩하면 내보내기 파일에 포함된 컬렉션 그룹을 확인할 수 있습니다.

protoc --decode_raw < export0.export_metadata

서비스 에이전트 마이그레이션

Cloud Firestore이(가) Cloud Firestore 서비스 에이전트를 사용하여 가져오기를 승인합니다. 내보내기 작업을 비롯한 App Engine 서비스 계정을 사용할 수 있습니다. 서비스 에이전트와 서비스 계정은 다음 이름 지정 규칙을 사용합니다.

Cloud Firestore 서비스 에이전트
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

이전에 Cloud Firestore에서 App Engine 기본 서비스를 사용했습니다. 서비스 에이전트 대신 Cloud Firestore 계정 사용 데이터베이스가 여전히 App Engine 서비스 계정을 사용하여 데이터를 가져오거나 내보내는 경우 이 섹션의 안내에 따라 Cloud Firestore 서비스 에이전트를 사용하는 것입니다

서비스 계정 App Engine
PROJECT_ID@appspot.gserviceaccount.com

Cloud Firestore 서비스 에이전트가 구체적이므로 더 적합합니다. Cloud Firestore님에게 전송됩니다. App Engine 서비스 계정이 공유됨 두 개 이상의 서비스에서 사용할 수 있습니다

승인 계정 보기

Google Cloud 콘솔의 가져오기/내보내기 페이지에서 가져오기 및 내보내기 작업이 요청을 승인하는 데 사용하는 계정을 볼 수 있습니다. 그 외에 데이터베이스에서 이미 Cloud Firestore를 사용하는지 확인합니다. 서비스 에이전트입니다.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.
  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 가져오기/내보내기 작업 실행 계정 라벨 옆에 있는 승인 계정을 확인합니다.

프로젝트에서 Cloud Firestore 서비스 에이전트를 사용하지 않는 경우 다음 중 하나를 사용하여 Cloud Firestore 서비스 에이전트로 마이그레이션할 수 있습니다. 이 기법은 다음과 같습니다.

이 기법들 중 첫 번째 기법이 바람직한 이유는 이 기법이 단일 Cloud Firestore 프로젝트에 적용됩니다. 두 번째 기법은 기존 Cloud Storage 버킷을 마이그레이션하지 않으므로 선호됨 권한을 부여할 수 있습니다 하지만 조직 수준의 보안 규정 준수를 제공합니다.

버킷 권한 Cloud Storage개를 확인하고 업데이트하여 마이그레이션

마이그레이션 프로세스는 두 단계로 구성됩니다.

  1. 버킷 권한 Cloud Storage개를 업데이트합니다. 자세한 내용은 다음 섹션을 참조하세요.
  2. Cloud Firestore 서비스 에이전트로의 이전을 확인합니다.

서비스 에이전트 버킷 권한

다음 위치에서 Cloud Storage 버킷을 사용하는 내보내기 또는 가져오기 작업 다른 프로젝트의 경우 Cloud Firestore 서비스 에이전트 해당 버킷에 대한 것입니다 예를 들어 데이터를 다른 프로젝트로 이동하는 작업은 해당 프로젝트의 버킷에 액세스해야 합니다. 그렇지 않은 경우 Cloud Firestore 서비스로 이전 후 작업 실패 있습니다.

같은 프로젝트 내에 있는 가져오기 및 내보내기 워크플로에서는 권한을 변경할 필요가 없습니다. Cloud Firestore 서비스 에이전트는 액세스할 수 있습니다. 기본적으로 같은 프로젝트에 있는 버킷을 만들 수 있습니다

다른 프로젝트의 버킷 Cloud Storage개에 대한 권한을 업데이트하여 부여하기 service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com 서비스 에이전트입니다. 서비스 에이전트에 Firestore Service Agent 역할을 부여합니다.

Firestore Service Agent 역할은 Cloud Storage 버킷에 대한 읽기 및 쓰기 권한을 부여합니다. 읽기 전용 또는 쓰기 전용 권한을 부여해야 하는 경우 사용하려면 커스텀 역할을 사용할 수 있습니다.

다음 섹션에 설명된 마이그레이션 프로세스 Cloud Storage을(를) 식별하는 데 도움이 됨 권한 업데이트가 필요할 수 있는 버킷을 만들 수 있습니다

Firestore 서비스 에이전트로 프로젝트 마이그레이션

App Engine 서비스 계정에서 Cloud Firestore 서비스 에이전트 완료하면 마이그레이션을 취소할 수 없습니다.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.
  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 프로젝트가 아직 Cloud Firestore 서비스로 이전되지 않은 경우 마이그레이션을 설명하는 배너가 표시되고 버킷 상태 확인 버튼 다음 단계는 잠재적 권한 오류를 식별하고 수정하는 데 도움이 됩니다.

    버킷 상태 확인을 클릭합니다.

    이전을 완료할 수 있는 옵션과 버킷 Cloud Storage개의 목록입니다. 목록 로드가 완료되는 데 몇 분 정도 걸릴 수 있습니다.

    이 목록에는 최근에 생성된 버킷이 포함되어 있습니다. 가져오기 및 내보내기 작업에서 사용되지만 현재 읽기 및 내보내기 권한은 Cloud Firestore 서비스 에이전트에 대한 쓰기 권한

  5. 프로젝트 Cloud Firestore의 기본 이름을 기록해 둡니다. 서비스 에이전트입니다. 서비스 에이전트 이름은 액세스 권한을 부여할 서비스 에이전트 라벨입니다.
  6. 나중에 가져오기 또는 내보내기 작업에 사용할 목록의 버킷에 다음 단계를 완료합니다.

    1. 이 버킷의 테이블 행에서 수정을 클릭합니다. 그러면 새 탭에 버킷의 권한 페이지가 열립니다.

    2. 추가를 클릭합니다.
    3. 새 주 구성원 필드에 주 구성원 이름을 입력합니다. Cloud Firestore 서비스 에이전트입니다.
    4. 역할 선택 필드에서 서비스 에이전트 > Firestore 서비스 에이전트를 선택합니다.
    5. 저장을 클릭합니다.
    6. Cloud Firestore 가져오기/내보내기 페이지가 있는 탭으로 돌아갑니다.
    7. 목록의 다른 버킷에 이 단계를 반복합니다. 목록의 모든 페이지를 확인해야 합니다.
  7. Firestore 서비스 에이전트로 마이그레이션을 클릭합니다. 권한 확인에 실패한 버킷이 아직 있으면 마이그레이션을 클릭하여 마이그레이션을 확인해야 합니다.

    마이그레이션이 완료되면 알림이 표시됩니다. 마이그레이션을 취소할 수 없습니다.

마이그레이션 상태 보기

프로젝트의 마이그레이션 상태를 확인하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 데이터베이스 페이지로 이동합니다.

    데이터베이스로 이동

  2. 데이터베이스 목록에서 필요한 데이터베이스를 선택합니다.
  3. 탐색 메뉴에서 가져오기/내보내기를 클릭합니다.

  4. 가져오기/내보내기 작업 실행 주 구성원 라벨 옆에 있는 주 구성원을 찾습니다.

    주 구성원이 service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com인 경우 프로젝트가 이미 Cloud Firestore 서비스 에이전트입니다. 마이그레이션을 취소할 수 없습니다.

    프로젝트가 마이그레이션되지 않으면 버킷 상태 확인 버튼이 있는 페이지 상단에 배너가 표시됩니다. 마이그레이션을 완료하려면 Firestore 서비스 에이전트로 마이그레이션을 참조하세요.

조직 전체 정책 제약조건 추가

  • 조직 정책에 다음 제약조건을 설정합니다.

    가져오기/내보내기에 Firestore 서비스 에이전트 필요(firestore.requireP4SAforImportExport)

    이 제약조건은 요청을 승인하는 Cloud Firestore 서비스 에이전트 이 제약조건을 설정하려면 다음을 참조하세요. 조직 정책 만들기 및 관리 를 참고하세요.

이 조직 정책 제약조건을 적용해도 다음 권한이 자동으로 부여되지는 않습니다. 적절한 Cloud Storage 버킷 권한을 사용하여 Cloud Firestore 서비스 에이전트입니다.

제약조건이 가져오기 또는 내보내기 워크플로에 대한 권한 오류를 만드는 경우 중지하여 기본 서비스 계정을 다시 사용할 수 있습니다. 버킷 Cloud Storage개 확인 및 업데이트 후 권한이 있는 경우 제약조건을 다시 사용 설정할 수 있습니다.