設定 object enrichments

如要為 Cloud Storage bucket 中的圖片和 PDF 文件生成結構化中繼資料,請建立功能設定 (FeatureConfig) 資源。您也必須授權 object enrichments 服務代理存取您的資料。設定 object enrichments 後,Cloud Storage 會使用您選擇的機器學習模型,以非同步方式評估相符的物件,並將結果直接附加至物件,做為物件情境。

本頁面說明如何建立、列出、查看、更新及刪除功能設定。並說明如何將必要的 Identity and Access Management (IAM) 權限授予服務代理。

完整工作流程包含下列步驟:

  1. 建立功能設定 (FeatureConfig) 資源,定義範圍並選取模型。
  2. 授權服務代理存取儲存空間 bucket。
  3. 查看及管理物件的擴充中繼資料。
  4. 在 BigQuery 中使用 SQL 大量分析擴充資料。
  5. 隨著工作負載變化,更新或刪除功能設定。

如要瞭解概念詳情和支援的用途,請參閱「物件擴充功能總覽」。

事前準備

設定物件擴充功能前,請先完成下列設定步驟:

取得必要角色

如要取得建立及管理功能設定所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立及管理功能設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立及管理功能設定,必須具備下列權限:

  • storage.featureConfigs.create
  • storage.featureConfigs.list
  • storage.featureConfigs.get
  • storage.featureConfigs.update
  • storage.featureConfigs.delete

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

(選用) 準備「儲存空間洞察」資料集,以進行 SQL 分析

如果您打算在 BigQuery 中使用 SQL 查詢及分析數百萬個物件的擴充中繼資料,必須先設定儲存空間分析資料集。儲存空間分析資料集會自動將物件內容直接匯出至可查詢的 BigQuery 資料表。

如果只想使用 Cloud de Confiance 控制台、Google Cloud CLI 或 API 檢查個別物件,可以略過這個步驟。

建立功能設定

特徵設定 (FeatureConfig) 會指定 Cloud Storage 監控的儲存空間 bucket,以及評估物件的機器學習模型。請在設定中指定確切的值區名稱,object enrichments 不支援規則運算式或萬用字元。如果您在建立設定後,建立、重新建立 (刪除並再次建立) 或重新定位 bucket,則必須更新功能設定,將這些 bucket 納入其中。詳情請參閱「設定和範圍管理」。

您可以使用 Cloud de Confiance 控制台、Google Cloud CLI 或 JSON API 建立功能設定。

控制台

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。

    前往「Object enrichments」

  2. 點選「建立」。

  3. 在「定義來源」步驟中,指定設定名稱和目標 bucket:

    1. 在「Name」(名稱) 欄位中,輸入功能設定的專屬名稱。名稱長度必須介於 1 到 63 個字元,且只能包含小寫英文字母、數字或連字號。開頭須為小寫英文字母,結尾不得為連字號。設定建立後即無法變更名稱。
    2. 選用:在「Description」(說明) 欄位中輸入說明 (最多 256 個字元),以便識別設定。
    3. 如要指定要擴充的 bucket,請在「Bucket Names」(Bucket 名稱) 欄位中輸入一或多個 bucket 名稱,並以半形逗號或空格分隔。或者,按一下「瀏覽」,選取 bucket,然後按一下「選取」。
    4. 按一下「繼續」。
  4. 在「選取模型」步驟中,勾選要啟用的一或多個機器學習模型,然後按一下「繼續」:

    • 圖片物件偵測 (object-detector):辨識及找出圖片中的多個物件。
    • 圖像臉部偵測 (face-detector):偵測圖像中的人臉和臉部特徵。
    • 圖片標籤 (label-detector):根據圖片內容指派標籤。
    • 圖像露骨內容偵測 (content-safety):偵測成人、暴力或其他敏感內容。
    • PDF 分類 (pdf-classification):識別文件主題類別。

    如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。

  5. 在「選取處理位置」步驟中,從「處理位置」選單選取多區域位置 (us、eu 或 asia),然後按一下「繼續」。

  6. 在「Grant required permissions」(授予必要權限) 步驟中,選擇如何將必要的 IAM 角色授予物件擴充服務代理:

    • 授予專案層級權限:自動向服務代理授予必要角色 (roles/storage.annotationGeneratorService 和 roles/storage.bucketViewer),以便處理專案中現有和未來的所有 Cloud Storage bucket。如要選取這個選項,您必須具備專案的 resourcemanager.projects.setIamPolicy 權限。如果沒有這項權限,就無法使用這個選項。
    • 「Manually provide grant permission later」:建立設定,但不立即授予權限。您必須授予服務代理權限,Cloud Storage 才能處理物件。
  7. 點選「建立」。

    建立功能設定會啟動長時間執行的作業。作業完成後, Cloud de Confiance 控制台會開啟設定詳細資料頁面。如果您選取「授予專案層級權限」, Cloud de Confiance 控制台會在建立設定後套用 IAM 政策繫結。

指令列

如要建立功能設定,請使用 gcloud alpha storage feature-configs create 指令:

gcloud alpha storage feature-configs create FEATURE_CONFIG_ID \
    --description="DESCRIPTION" \
    --auto-annotate-models=MODELS \
    --auto-annotate-processing-location=PROCESSING_LOCATION \
    --include-bucket-id-regexes=BUCKET_NAME

其中:

  • FEATURE_CONFIG_ID 是功能設定的專屬 ID。長度必須介於 1 至 63 個半形字元之間,只能使用小寫英文字母、數字或連字號,開頭須為小寫英文字母。結尾不得為連字號。
  • DESCRIPTION 是功能設定的選用說明。例如:Scan invoices and receipts。
  • MODELS 是以半形逗號分隔的清單,列出要啟用的機器學習模型:face-detector、object-detector、label-detector、content-safety 或 pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。
  • PROCESSING_LOCATION 是資料處理發生的多區域處理位置。支援的值為 us、eu 或 asia。
  • BUCKET_NAME 是要納入這項設定的 bucket 確切名稱。您可以指定以半形逗號分隔的確切 bucket 名稱清單。

JSON API

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 建立包含功能設定的 JSON 檔案:

    {
      "description": "DESCRIPTION",
      "autoAnnotateConfig": {
        "models": [
          { "name": "MODEL_NAME" }
        ],
        "processingLocation": "PROCESSING_LOCATION"
      },
      "filter": {
        "includedCloudStorageBuckets": {
          "bucketIdRegexes": [
            "BUCKET_NAME"
          ]
        }
      }
    }

    其中:

    • DESCRIPTION 是功能設定的選用說明。例如:Scan invoices and receipts。

    • MODEL_NAME 是要啟用的機器學習模型名稱:face-detector、object-detector、label-detector、content-safety 或 pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。如要啟用多個模型,請在 models 陣列中新增其他模型物件。

    • PROCESSING_LOCATION 是資料處理發生的多區域處理位置。支援的值為 us、eu 或 asia。

    • BUCKET_NAME 是要納入設定的 bucket 確切名稱。例如:my-bucket。如要納入多個 bucket,請在 bucketIdRegexes 陣列中指定其他 bucket 名稱字串。

  3. 使用 cURL 將 featureConfigs.create 要求傳送至 JSON API:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs?featureConfigId=FEATURE_CONFIG_ID"

    其中:

    • JSON_FILE_NAME 是您在上一步建立的 JSON 檔案路徑。例如:config.json。
    • PROJECT_ID 是您的 Cloud de Confiance 專案 ID。例如:my-project。
    • FEATURE_CONFIG_ID 是功能設定的專屬 ID。例如,my-feature-config。長度必須介於 1 至 63 個半形字元之間,只能使用小寫英文字母、數字或連字號,開頭須為小寫英文字母。結尾不得為連字號。
  4. 選用:如要檢查建立功能設定的長時間執行作業狀態,請使用 cURL 將 operations.get 要求傳送至 JSON API:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"

    其中:

    • PROJECT_ID 是您的 Cloud de Confiance 專案 ID。例如:my-project。
    • OPERATION_ID 是建立回應中傳回的作業 ID。
  5. 選用:如要列出所有現行和歷來作業,請使用 cURL 將 operations.list 要求傳送至 JSON API:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/operations"

    其中 PROJECT_ID 是您的 Cloud de Confiance專案 ID。例如:my-project。

將權限授予服務代理

建立功能設定時, Cloud de Confiance 會為專案佈建專屬服務代理:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com。

如要允許這個服務代理掃描 bucket、讀取非結構化物件,以及附加充實中繼資料,您必須授予必要的 IAM 角色。

控制台

如果您在建立功能設定時選取「Manually provide grant permission later」(稍後手動授予權限),或需要重新套用專案層級權限,可以透過設定詳細資料頁面授予權限:

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。

    前往「Object enrichments」

  2. 在「Configuration Name」(設定名稱) 欄中,按一下功能設定的名稱。

  3. 在動作列中,按一下「授予權限」。

  4. 在「授予權限」窗格中,按一下「授予專案層級權限」。

    這項操作會將專案的 Storage Annotation Generator Service (roles/storage.annotationGeneratorService) 和 Storage Bucket 檢視者 (roles/storage.bucketViewer) 角色授予服務代理。如要在 Cloud de Confiance 控制台中授予專案層級權限,您必須具備專案的 resourcemanager.projects.setIamPolicy 權限。

    如要將 roles/storage.annotationGeneratorService 角色授予個別 bucket,而非整個專案,請使用 Google Cloud CLI。

指令列

  1. 在每個受監控的 bucket 或專案層級,將「Storage Annotation Generator Service」(roles/storage.annotationGeneratorService) 角色授予服務代理:

    • 如要授予特定 bucket 的角色,請使用 gcloud storage buckets add-iam-policy-binding 指令:

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
          --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \
          --role=roles/storage.annotationGeneratorService

      其中:

      • BUCKET_NAME 是要授予權限的值區名稱。
      • PROJECT_NUMBER 是您的 Cloud de Confiance專案編號。
    • 如要將角色授予專案中的所有 bucket,請使用 gcloud projects add-iam-policy-binding 指令:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \
          --role=roles/storage.annotationGeneratorService

      其中:

      • PROJECT_ID 是您的 Cloud de Confiance專案 ID。
      • PROJECT_NUMBER 是您的 Cloud de Confiance專案編號。
  2. 如要在專案層級授予「Storage Bucket 檢視者」 (roles/storage.bucketViewer) 角色,讓服務代理檢查 bucket 設定,請使用 gcloud projects add-iam-policy-binding 指令:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-autoannotate.s3ns-system.iam.gserviceaccount.com \
        --role=roles/storage.bucketViewer

    其中:

    • PROJECT_ID 是您的 Cloud de Confiance 專案 ID。
    • PROJECT_NUMBER 是您的 Cloud de Confiance專案編號。

授予角色後,IAM 權限可能需要幾分鐘才會生效,然後非同步處理作業才會開始。

列出所有功能設定

如要列出專案中的所有功能設定,請完成下列步驟:

控制台

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。

    前往「Object enrichments」

    「設定」分頁會列出專案中的所有功能設定,包括已啟用的模型、處理位置、範圍、值區篩選器、建立日期和上次更新日期。

  2. 選用步驟:如要篩選清單,請在「Filter」(篩選條件) 欄位中輸入屬性名稱或值。

指令列

使用 gcloud alpha storage feature-configs list 指令:

gcloud alpha storage feature-configs list

JSON API

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 將 featureConfigs.list 要求傳送至 JSON API:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Accept: application/json" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs"

    其中 PROJECT_ID 是Cloud de Confiance 專案的 ID。例如:my-project。

查看功能設定詳細資料

如要檢查特定功能設定的模型、目標 bucket 和處理位置,請完成下列步驟:

控制台

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。

    前往「Object enrichments」

  2. 在「Configuration Name」(設定名稱) 欄中,按一下要檢查的功能設定名稱。

    設定詳細資料頁面會顯示設定名稱、說明、範圍、納入的 bucket、處理位置、啟用的模型、建立日期和上次更新日期。

指令列

使用 gcloud alpha storage feature-configs describe 指令:

gcloud alpha storage feature-configs describe FEATURE_CONFIG_ID

將 FEATURE_CONFIG_ID 替換為功能設定的 ID。

JSON API

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 將 featureConfigs.get 要求傳送至 JSON API:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Accept: application/json" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID"

    其中:

    • PROJECT_ID 是Cloud de Confiance 專案的 ID。例如:my-project。
    • FEATURE_CONFIG_ID 是功能設定的 ID。例如:my-feature-config。

更新功能設定

您可以更新現有的功能設定,新增或移除機器學習模型、變更目標值區、修改處理位置,或更新說明。

控制台

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」(物件擴充功能) 頁面。

    前往「Object enrichments」

  2. 在「Configuration Name」(設定名稱) 欄中,按一下要更新的功能設定名稱。

  3. 在設定詳細資料頁面中,更新要變更的設定:

    • 如要更新說明,請按一下「Configuration description」(設定說明) 旁邊的 「Edit configuration description」(編輯設定說明)。在「編輯說明」窗格中,更新「說明」欄位中的文字,然後按一下「儲存」。
    • 如要更新 bucket 範圍,請按一下「Configuration scope」(設定範圍) 旁邊的 「Edit configuration scope」(編輯設定範圍)。在「Define scope」(定義範圍) 步驟中,在「Bucket Names」(值區名稱) 欄位中新增或移除目標值區,然後按一下「Continue」(繼續)。在「Grant required permissions」(授予必要權限) 步驟中,選取服務代理的權限選項,然後按一下「Save」(儲存)。
    • 如要更新處理位置,請按一下「Processing location」(處理位置) 旁的 「Edit configuration processing location」(編輯設定處理位置)。在「Edit processing location」(編輯處理位置) 窗格中,從「Processing location」(處理位置) 選單中選取多區域位置 (「us」、「eu」或「asia」),然後按一下「Save」(儲存)。
    • 如要更新已啟用的模型,請按一下「Enabled models」(已啟用的模型) 旁邊的 「Edit configuration enabled models」(編輯已啟用設定的模型)。在「編輯模型」窗格中, 選取或取消選取要更新的模型核取方塊, 然後按一下「儲存」。

指令列

使用 gcloud alpha storage feature-configs update 指令更新說明、模型、處理位置或 bucket 篩選器:

gcloud alpha storage feature-configs update FEATURE_CONFIG_ID \
    --description="DESCRIPTION" \
    --auto-annotate-models=MODELS \
    --auto-annotate-processing-location=PROCESSING_LOCATION \
    --include-bucket-id-regexes=BUCKET_NAME

更改下列內容:

  • FEATURE_CONFIG_ID:要更新的功能設定 ID。
  • DESCRIPTION:功能設定的選用說明。例如:Scan invoices and receipts。
  • MODELS:以半形逗號分隔的清單,列出要啟用的機器學習模型:face-detector、object-detector、label-detector、content-safety 或 pdf-classification。
  • PROCESSING_LOCATION:資料處理發生的多區域處理位置。有效值為 us、eu 或 asia。
  • BUCKET_NAME:以半形逗號分隔的清單,列出要掃描的確切 bucket 名稱。物件擴充功能不支援萬用字元或規則運算式。如果您建立、重新建立或遷移值區,請務必更新這份清單,將這些值區納入其中。

JSON API

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 建立包含要更新設定的 JSON 檔案。 舉例來說,如要更新說明、已啟用的模型和目標值區,請執行下列操作:

    {
      "description": "DESCRIPTION",
      "autoAnnotateConfig": {
        "models": [
          { "name": "MODEL_NAME" }
        ],
        "processingLocation": "PROCESSING_LOCATION"
      },
      "filter": {
        "includedCloudStorageBuckets": {
          "bucketIdRegexes": [
            "BUCKET_NAME"
          ]
        }
      }
    }

    其中:

    • DESCRIPTION 是功能設定的選用說明。例如:Scan invoices and receipts。

    • MODEL_NAME 是要納入的機器學習模型:face-detector、object-detector、label-detector、content-safety 或 pdf-classification。如要進一步瞭解各個模型及其輸出結構定義,請參閱「支援的模型和結構定義」。如要啟用多個模型,請在 models 陣列中新增其他模型物件。

    • PROCESSING_LOCATION 是資料處理發生的多區域處理位置。有效值為 us、eu 或 asia。

    • BUCKET_NAME 是要納入掃描的 bucket 確切名稱。例如:my-bucket。物件擴充功能不支援規則運算式或萬用字元。如果您建立、重新建立或重新定位 bucket,則必須更新這份清單,將這些 bucket 納入其中。如要納入多個 bucket,請在 bucketIdRegexes 陣列中指定其他 bucket 名稱字串。

  3. 使用 cURL 將 featureConfigs.patch 要求傳送至 JSON API:

    curl -X PATCH --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "Accept: application/json" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID?updateMask=UPDATE_MASK"

    其中:

    • JSON_FILE_NAME 是您在步驟 2 建立的 JSON 要求檔案本機路徑。例如:update.json。
    • PROJECT_ID 是Cloud de Confiance 專案的 ID。例如:my-project。
    • FEATURE_CONFIG_ID 是要更新的功能設定 ID。例如:my-feature-config。
    • UPDATE_MASK 是以半形逗號分隔的清單,包含要更新的欄位,例如 description,filter 或 autoAnnotateConfig.models。如需語法規則,請參閱 FieldMask。

刪除功能設定

刪除功能設定後,Cloud Storage 就不會再為相符的值區產生新的擴充資料。刪除設定不會刪除已附加至儲存物件的現有擴充功能。

如要刪除功能設定,請完成下列步驟:

控制台

  1. 前往 Cloud de Confiance 控制台的 Cloud Storage「Object enrichments」頁面。

    前往「Object enrichments」

  2. 在「Configuration Name」(設定名稱) 欄中,按一下要刪除的功能設定名稱,然後按一下 「Delete」(刪除)。

  3. 在確認對話方塊中,點選「確認」。

指令列

使用 gcloud alpha storage feature-configs delete 指令:

gcloud alpha storage feature-configs delete FEATURE_CONFIG_ID

將 FEATURE_CONFIG_ID 替換為功能設定的 ID。

JSON API

  1. 安裝並初始化 gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 將 featureConfigs.delete 要求傳送至 JSON API:

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Accept: application/json" \
      "https://storage.s3nsapis.fr/v2/projects/PROJECT_ID/locations/global/featureConfigs/FEATURE_CONFIG_ID"

    其中:

    • PROJECT_ID 是Cloud de Confiance 專案的 ID。例如:my-project。
    • FEATURE_CONFIG_ID 是要刪除的功能設定 ID。例如:my-feature-config。

後續步驟