Storage Insights 데이터 세트 구성

이 문서에서는 Storage Insights 데이터 세트를 구성하는 방법을 보여줍니다.

시작하기 전에

데이터 세트를 구성하기 전에 다음 단계를 완료하세요.

필요한 역할 가져오기

데이터 세트를 구성하는 데 필요한 권한을 얻으려면 관리자에게 소스 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 데이터 세트를 구성하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

데이터 세트를 구성하려면 다음 권한이 필요합니다.

  • 데이터 세트 구성:
    • storageinsights.datasetConfigs.create
    • storage.buckets.getObjectInsights
  • BigQuery 데이터 세트 링크: storageinsights.datasetConfigs.linkDataset

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

Storage Insights API 사용 설정

콘솔

storageinsights.googleapis.com API 사용 설정

명령줄

현재 프로젝트에서 Storage Insights API를 사용 설정하려면 gcloud services enable 명령어를 실행합니다.

gcloud services enable storageinsights.googleapis.com

Google Cloud 프로젝트의 서비스를 사용 설정하는 방법에 대한 자세한 내용은 서비스 사용 설정 및 사용 중지를 참고하세요.

Storage Intelligence 구성

데이터 세트로 분석하려는 프로젝트, 폴더 또는 조직에 Storage Intelligence가 구성되어 있는지 확인합니다.

데이터 세트 구성 만들기

데이터 세트 구성을 만들려면 다음 단계를 따르세요. 데이터 세트 구성에 지정할 수 있는 필드에 관한 자세한 내용은 데이터 세트 구성 속성을 참고하세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud Storage Storage Insights 페이지로 이동합니다.

    Storage Insights로 이동

  2. 데이터 세트 구성을 클릭합니다.

  3. 데이터 세트 이름 지정 섹션에 데이터 세트 이름을 입력합니다. 원하는 경우 데이터 세트에 대한 설명도 입력할 수 있습니다. 이름은 데이터 세트 구성을 식별하며 변경할 수 없습니다. 이름은 문자, 숫자, 밑줄을 포함하여 최대 128자(영문 기준)까지 사용할 수 있으며 문자로 시작해야 합니다.

  4. 데이터 세트 범위 정의 섹션에서 다음을 수행합니다.

    • 다음 옵션 중 하나를 선택합니다.

      • 현재 조직의 모든 프로젝트에 대한 스토리지 메타데이터를 가져오려면 조직 포함을 선택합니다.

      • 선택한 폴더의 모든 프로젝트에 대한 스토리지 메타데이터를 가져오려면 폴더 (하위 조직/부서) 포함을 선택합니다. 폴더 ID를 가져오는 방법에 대한 자세한 내용은 폴더 및 프로젝트 보기 또는 나열을 참고하세요. 폴더를 추가하려면 다음 단계를 따르세요.

        1. 폴더 1 필드에 폴더 ID를 입력합니다.
        2. 원하는 경우 + 폴더 추가를 클릭하여 여러 개의 폴더 ID를 추가할 수 있습니다.
      • 선택한 프로젝트의 스토리지 메타데이터를 가져오려면 프로젝트 번호를 제공하여 프로젝트 포함을 선택합니다. 프로젝트 번호를 찾는 방법은 프로젝트 이름, 번호, ID 찾기를 참고하세요. 프로젝트를 추가하려면 다음 단계를 따르세요.

        1. 프로젝트 1 필드에 프로젝트 번호를 입력합니다.
        2. 원하는 경우 + 프로젝트 추가를 클릭하여 프로젝트 번호를 여러 개 추가할 수 있습니다.
      • 프로젝트 또는 폴더를 일괄 추가하려면 CSV 파일을 통해 프로젝트/폴더 목록 업로드를 선택합니다. CSV 파일에는 데이터 세트에 포함할 프로젝트 번호 또는 폴더 ID가 포함되어야 합니다. 하나의 데이터 세트 구성에서 최대 10,000개의 프로젝트 또는 폴더를 지정할 수 있습니다.

    • 선택한 리소스에 향후 버킷을 자동으로 포함할지 지정합니다.

    • 원하는 경우 리전 및 버킷 프리픽스를 기준으로 버킷에 필터를 지정하려면 필터(선택사항) 섹션을 펼칩니다. 필터는 버킷에 추가적으로 적용됩니다.

      특정 리전의 버킷을 포함하거나 제외할 수 있습니다. 예를 들어 me-central1me-central2 리전의 버킷을 제외할 수 있습니다. 프리픽스로 버킷을 포함하거나 제외할 수도 있습니다. 예를 들어 my-bucket으로 시작하는 버킷을 제외하려면 my-bucket* 프리픽스를 입력합니다.

  5. 계속을 클릭합니다.

  6. 보관 기간 선택 섹션에서 데이터 세트의 데이터에 대한 보관 기간을 선택합니다.

  7. 활동 데이터는 기본적으로 데이터 세트에 포함되며 데이터 세트의 보관 기간을 상속합니다. 데이터 세트 보관 기간을 재정의하려면 활동 데이터의 보관 기간 지정을 선택한 다음 활동 데이터를 보관할 일수를 선택합니다. 활동 데이터를 사용 중지하려면 보관 기간을 0일로 설정하세요.

  8. 구성된 데이터 세트를 저장할 위치 선택 섹션에서 데이터 세트를 저장할 위치를 선택합니다. 예를 들면 us-central1입니다.

  9. 서비스 계정 유형 선택 섹션에서 데이터 세트의 서비스 에이전트 유형을 선택합니다. 데이터 세트에 구성 범위 또는 프로젝트 범위 서비스 에이전트를 선택합니다.

  10. 구성을 클릭합니다.

명령줄

  1. 데이터 세트 구성을 만들려면 필요한 플래그와 함께 gcloud storage insights dataset-configs create 명령어를 실행합니다.

    gcloud storage insights dataset-configs create DATASET_CONFIG_ID \
      --location=LOCATION \
      --organization=SOURCE_ORG_NUMBER \
      --retention-period-days=DATASET_RETENTION_PERIOD_DAYS \
      (SCOPE_FLAG)
    

    다음과 같이 바꿉니다.

    • DATASET_CONFIG_ID을 데이터 세트 구성의 이름으로 바꿉니다. 이름은 데이터 세트 구성을 식별하며 변경할 수 없습니다. 이름은 문자, 숫자, 밑줄을 포함하여 최대 128자(영문 기준)까지 사용할 수 있으며 문자로 시작해야 합니다.

    • LOCATION을 데이터 세트를 저장할 위치로 바꿉니다. 예를 들면 us-central1입니다.

    • 소스 프로젝트가 속한 조직의 ID로 SOURCE_ORG_NUMBER를 바꿉니다. 조직 ID를 찾는 방법은 조직 리소스 ID 가져오기를 참고하세요.

    • DATASET_RETENTION_PERIOD_DAYS: 데이터 세트의 데이터 보관 기간입니다.

    • 수집할 데이터의 범위를 정의하는 다음 플래그 중 하나가 있는 SCOPE_FLAG:

      • --enable-organization-scope: 데이터 세트가 조직 내 모든 버킷에서 통계를 수집할 수 있도록 지원합니다.
      • --source-folders=[SOURCE_FOLDER_NUMBERS,...]: 데이터 세트에 포함할 폴더 번호 목록을 지정합니다. 폴더 번호를 찾는 방법을 알아보려면 계층 구조의 모든 프로젝트 및 폴더 나열을 참조하세요.
      • --source-folders-file=FILE_PATH: 버킷에 CSV 파일을 업로드하여 여러 폴더 번호를 지정합니다.
      • --source-projects=[SOURCE_PROJECT_NUMBERS,...]: 데이터 세트에 포함할 프로젝트 번호 목록을 지정합니다. 예를 들면 464036093014입니다. 프로젝트 번호를 찾으려면 프로젝트 이름, 번호, ID 찾기를 참고하세요.
      • --source-projects-file=FILE_PATH: 버킷에 CSV 파일을 업로드하여 여러 프로젝트 번호를 지정합니다.

    원하는 경우 다음 추가 플래그를 사용하여 데이터 세트를 구성할 수 있습니다.

    • --include-buckets=BUCKET_NAMES_OR_REGEX를 사용하여 이름 또는 정규 표현식으로 특정 버킷을 포함합니다. --exclude-buckets와 함께 이 플래그를 사용할 수 없습니다.

    • --exclude-buckets=BUCKET_NAMES_OR_REGEX를 사용하여 이름 또는 정규 표현식으로 특정 버킷을 제외합니다. --include-buckets와 함께 이 플래그를 사용할 수 없습니다.

    • --project=DESTINATION_PROJECT_ID을 사용하여 데이터 세트 구성과 생성된 데이터 세트를 저장할 프로젝트를 지정합니다. 이 플래그를 사용하지 않으면 대상 프로젝트는 활성 프로젝트입니다. 프로젝트 ID에 관한 자세한 내용은 프로젝트 만들기 및 관리를 참조하세요.

    • --auto-add-new-buckets를 사용하여 향후 소스 프로젝트에 추가되는 버킷을 자동으로 포함합니다.

    • --skip-verification을 사용하여 필요한 IAM 권한 확인을 비롯한 인증 프로세스의 확인 및 실패를 건너뜁니다. 이 플래그를 사용하면 일부 또는 모든 버킷이 데이터 세트에서 제외될 수 있습니다.

    • --identity=IDENTITY_TYPE을 사용하여 데이터 세트 구성으로 생성된 서비스 에이전트의 범위를 지정합니다. 값은 IDENTITY_TYPE_PER_CONFIG 또는 IDENTITY_TYPE_PER_PROJECT입니다. 지정하지 않는 경우 기본값은 IDENTITY_TYPE_PER_CONFIG입니다. 자세한 내용은 서비스 에이전트 유형을 참고하세요.

    • --description=DESCRIPTION을 사용하여 데이터 세트 구성에 관한 설명을 추가합니다.

    • --activity-data-retention-period-days=ACTIVITY_RETENTION_PERIOD_DAYS를 사용하여 데이터 세트의 활동 데이터의 보관 기간을 지정합니다. 기본적으로 활동 데이터는 데이터 세트에 포함되며 데이터 세트의 보관 기간을 상속합니다. 데이터 세트 보관 기간을 재정의하려면 활동 데이터를 보관할 일수를 지정하세요. 활동 데이터를 제외하려면 ACTIVITY_RETENTION_PERIOD_DAYS0로 설정합니다.

    다음 예에서는 ID가 123456789인 조직에 대해 us-central1 리전에 my-dataset라는 데이터 세트 구성을 만듭니다. 보관 기간은 30일이며 범위는 987654321123123123 프로젝트로 제한됩니다.

    gcloud storage insights dataset-configs create my-dataset \
    --location=us-central1 \
    --organization=123456789 \
    --retention-period-days=30 \
    --source-projects=987654321,123123123
    

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. 다음 정보를 포함하는 JSON 파일을 만듭니다.

    {
      "sourceProjects": {
        "project_numbers": ["PROJECT_NUMBERS", ...]
      },
      "retentionPeriodDays": "RETENTION_PERIOD_DAYS",
      "activityDataRetentionPeriodDays": "ACTIVITY_DATA_RETENTION_PERIOD_DAYS",
      "identity": {
        "type": "IDENTITY_TYPE"
      }
    }

    다음과 같이 바꿉니다.

    • PROJECT_NUMBERS를 데이터 세트에 포함할 프로젝트 번호로 바꿉니다. 프로젝트는 하나 이상 지정할 수 있습니다. 프로젝트는 문자열 목록으로 지정해야 합니다.

      또는 메타데이터를 업데이트하려는 버킷과 객체가 포함된 조직이나 하나 이상의 폴더를 추가할 수 있습니다. 폴더 또는 조직을 포함하려면 sourceFolders 또는 organizationScope 필드를 사용합니다. 자세한 내용은 DatasetConfig 참조를 확인하세요.

    • RETENTION_PERIOD_DAYS: 데이터 세트 스냅샷에 캡처할 데이터의 기간(일 수)입니다. 예를 들면 90입니다.

    • ACTIVITY_DATA_RETENTION_PERIOD_DAYS: 데이터 세트 스냅샷에 캡처할 활동 데이터의 기간(일 수)입니다. 기본적으로 활동 데이터는 데이터 세트에 포함되며 데이터 세트의 보관 기간을 상속합니다. 데이터 세트 보관 기간을 재정의하려면 활동 데이터를 보관할 일수를 지정하세요. 활동 데이터를 제외하려면 ACTIVITY_RETENTION_PERIOD_DAYS0로 설정합니다.

    • IDENTITY_TYPE을 데이터 세트 구성과 함께 생성되는 서비스 계정의 유형으로 바꿉니다. 값은 IDENTITY_TYPE_PER_CONFIG 또는 IDENTITY_TYPE_PER_PROJECT입니다. 자세한 내용은 서비스 에이전트 유형을 참고하세요.

  3. 데이터 세트 구성을 만들려면 cURL을 사용하여 Create DatasetConfig 요청으로 JSON API를 호출합니다.

    curl -X POST --data-binary @JSON_FILE_NAME \
    "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigs?datasetConfigId=DATASET_CONFIG_ID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json"

    다음과 같이 바꿉니다.

    • JSON_FILE_NAME을 이전 단계에서 만든 JSON 파일 경로로 바꿉니다. 또는 요청 본문에 DatasetConfig 인스턴스를 전달할 수 있습니다.

    • PROJECT_ID를 데이터 세트 구성 및 데이터 세트가 속할 프로젝트의 ID로 바꿉니다.

    • LOCATION을 데이터 세트 및 데이터 세트 구성이 상주할 위치로 바꿉니다. 예를 들면 us-central1입니다.

    • DATASET_CONFIG_ID을 데이터 세트 구성의 이름으로 바꿉니다. 이름은 데이터 세트 구성을 식별하며 변경할 수 없습니다. 이름은 문자, 숫자, 밑줄을 포함하여 최대 128자(영문 기준)까지 사용할 수 있으며 문자로 시작해야 합니다.

    • SERVICE_ACCOUNT을 서비스 계정으로 바꿉니다. 예를 들면 test-service-account@test-project.iam.gserviceaccount.com입니다.

error_attributes_view에 로깅된 스냅샷 처리 오류를 해결하려면 Storage Insights 데이터 세트 오류를 참조하세요.

서비스 계정에 필요한 권한 부여

Google Cloud 는 데이터 세트 구성을 만들 때 구성 범위 또는 프로젝트 범위 서비스 에이전트를 만듭니다. 서비스 에이전트는 service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com 이름 지정 형식을 사용하고 Google 제공 역할 부여 포함 체크박스를 선택할 때 Google Cloud 콘솔의 IAM 페이지에 표시됩니다. JSON API를 사용하여 DatasetConfig 리소스를 확인하여 서비스 에이전트의 이름을 찾을 수도 있습니다.

Storage Insights에서 데이터 세트를 생성하고 작성하도록 사용 설정하려면 소스 프로젝트가 포함된 조직에 대한 Storage Insights 수집기 서비스 역할(roles/storage.insightsCollectorService)을 서비스 에이전트에 부여해 달라고 요청하세요. 데이터를 가져오려는 각 데이터 세트 구성에서 생성된 모든 구성 범위 서비스 에이전트에 이 역할을 부여해야 합니다. 프로젝트 범위 서비스 에이전트를 사용하는 경우 프로젝트 내의 모든 데이터 세트 구성에 대한 데이터 세트를 읽고 쓸 수 있도록 서비스 에이전트에 이 역할을 한 번만 부여해야 합니다.

프로젝트에 역할을 부여하는 방법은 액세스 관리를 참고하세요.

데이터 세트를 BigQuery에 연결하려면 다음 단계를 완료합니다.

  1. Google Cloud 콘솔에서 Cloud Storage Storage Insights 페이지로 이동합니다.

    Storage Insights로 이동

  2. 연결하려는 데이터 세트를 생성한 데이터 세트 구성의 이름으로 바꿉니다.

  3. BigQuery 연결 데이터 세트 섹션에서 데이터 세트 연결을 클릭하여 데이터 세트를 연결합니다.

  1. 데이터 세트를 BigQuery에 연결하려면 gcloud storage insights dataset-configs create-link 명령어를 실행합니다.

    gcloud storage insights dataset-configs create-link DATASET_CONFIG_ID --location=LOCATION

    다음과 같이 바꿉니다.

    • DATASET_CONFIG_ID를 연결할 데이터 세트를 생성한 데이터 세트 구성의 이름으로 바꿉니다.

    • LOCATION을 데이터 세트의 위치로 바꿉니다. 예를 들면 us-central1입니다.

    전체 데이터 세트 구성 경로를 지정할 수도 있습니다. 예를 들면 다음과 같습니다.

    gcloud storage insights dataset-configs create-link projects/DESTINATION_PROJECT_ID/locations/LOCATION/datasetConfigs/DATASET_CONFIG_ID

    다음과 같이 바꿉니다.

    • DESTINATION_PROJECT_ID를 데이터 세트 구성이 포함된 프로젝트의 ID로 바꿉니다. 프로젝트 ID에 관한 자세한 내용은 프로젝트 만들기 및 관리를 참조하세요.

    • DATASET_CONFIG_ID를 연결할 데이터 세트를 생성한 데이터 세트 구성의 이름으로 바꿉니다.

    • LOCATION을 데이터 세트 및 데이터 세트 구성의 위치로 바꿉니다. 예를 들면 us-central1입니다.

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. cURL사용하여 linkDataset DatasetConfig 요청으로 JSON API를 호출합니다.

    curl -X POST \
      "https://storageinsights.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigsDATASET_CONFIG_ID:linkDataset?" \
        --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \
        --header "Accept: application/json" \
        --header "Content-Type: application/json"
    

    다음과 같이 바꿉니다.

    • JSON_FILE_NAME을 만든 JSON 파일의 경로로 바꿉니다.

    • PROJECT_ID를 데이터 세트 구성이 속한 프로젝트의 ID로 바꿉니다.

    • LOCATION을 데이터 세트 및 데이터 세트 구성이 있는 위치로 바꿉니다. 예를 들면 us-central1입니다.

    • DATASET_CONFIG_ID를 연결할 데이터 세트를 생성한 데이터 세트 구성의 이름으로 바꿉니다.

    • SERVICE_ACCOUNT을 서비스 계정으로 바꿉니다. 예를 들면 test-service-account@test-project.iam.gserviceaccount.com입니다.

다음 단계