クラウド管理者は、Google Cloud Platform (GCP) プラグインを利用して、インフラストラクチャの構築時にプラグイン ベースのストレージ バケットをプロビジョニングできます。割り当てヘルパーを使用して、ストレージ バケットの割り当てロジックを提供することもできます。プラグインベース ストレージ バケットのサポートには、マルチリージョンまたはデュアルリージョンのバケット リソースの作成、パブリック アクセスの制限、および暗号化が含まれます。

VMware Aria Automation でのプラグインと割り当ての詳細については、「Automation Assembler のプラグイン ベースのデザインと展開」を参照してください。

ストレージ バケットのプロパティ

プラグイン ベースのストレージ バケット リソースには、次のプロパティが必要です。インスタンス プロパティの完全なリストについては、「Google Cloud REST のドキュメント」を参照してください。GCP ドキュメントのリソース プロパティはキャメルケースで記述されており、Automation Assembler のリソース プロパティはスネークケースで記述されています。

プロパティ 説明
name ストレージ バケットの名前。バケットに関連付けられた名前を作成後に変更することはできないため、一意の、人間が判読できる名前を付ける必要があります。

バケット名の要件については、Google Cloud ドキュメントの「バケット名」を参照してください。

account チームがクラウド テンプレートを展開するアカウント リージョンの GCP クラウド アカウント。

詳細については、「VMware Aria Automation での Google Cloud Platform クラウド アカウントの作成」を参照してください。

次のセクションには、Automation Assembler でプラグイン ベースのストレージ バケットをプロビジョニングするためのクラウド テンプレートの例がいくつか含まれています。

単一リージョンのストレージ バケットのプロビジョニング

次の例に示すように、クラウド テンプレートでリージョンをハードコーディングすることで、単一リージョンのストレージ バケットをプロビジョニングできます。

formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test
      account: gcp-account
      location: us-central1

必要に応じて、enum プロパティを使用して、ユーザーが選択できるリージョンのリストを作成できます。この例では、バケットのバージョン管理の有効化、バケット ラベルの使用、ユーザーによるストレージ クラスの選択についても許可します。

formatVersion: 1
inputs:
  region:
    type: string
    title: Region
    description: Google region
    # This enumeration is used to simplify the choosing of a region. You can just hardcode the region in the "region" section.
    enum:
      - europe-central2
      - europe-north1
      - europe-southwest1
      - europe-west1
      - europe-west2
      - europe-west3
      - europe-west4
      - europe-west6
      - europe-west8
      - europe-west9
      - europe-west12
  loc:
    type: string
    title: Location label
  bucket:
    type: string
    title: Bucket name
  storage_class:
    type: string
    title: Storage class
    enum:
      - STANDARD
      - NEARLINE
      - COLDLINE
      - ARCHIVE
  versioning:
    type: string
    title: Enable versioning
    enum:
      - 'Yes'
      - 'No'
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: ${input.bucket}
      account: gcp-account
      labels:
        location: ${input.loc}
      location: ${input.region}
      storage_class: ${input.storage_class}
      versioning:
        enabled: ${input.versioning=="Yes"?true:false}

デュアルリージョン ストレージ バケットのプロビジョニング

次のクラウド テンプレートは、デュアルリージョン ストレージ バケットの作成方法を示しています。このテンプレートを使用するには、次の手順を実行します。
  1. GCP クラウド アカウントを作成し、バケットが展開されるリージョンに対応するクラウド ゾーンを 2 つ以上設定します。この例では、ゾーンは europe-central2 および europe-north1 です。
  2. 新しいプロジェクトを作成し、クラウド ゾーンを追加します。
  3. 機能タグを使用してゾーンにタグを付けます。この例では、europe-central2 のタグは location:eu1、europe-north1 のタグは location:eu2 です。
  4. ブループリントを展開します。
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 1
    properties:
      name: bucket-dual-region-idem
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      labels:
        a: b
        c: d
      custom_placement_config:
        data_locations: ${[resource.Allocations_Compute_1.selectedRegion.name, resource.Allocations_Compute_2.selectedRegion.name]}
      location: EU
  Allocations_Compute_1:
    type: Allocations.Compute
    metadata:
      layoutPosition:
        - 1
        - 0
    properties:
      groupId: 1
      constraints:
        - tag: location:eu1
  Allocations_Compute_2:
    type: Allocations.Compute
    metadata:
      layoutPosition:
        - 1
        - 2
    properties:
      groupId: 2
      constraints:
        - tag: location:eu2
注: バケット ラベルを削除する必要がある場合は、ラベルの値を null に変更し、テンプレートを再展開します。Google Cloud コンソールでラベルが削除されたことを確認できます。

マルチリージョン ストレージ バケットのプロビジョニング

次のクラウド テンプレートは、マルチリージョン ストレージ バケットの作成方法を示しています。デフォルトでは、バケットはマルチリージョンであり、リージョンは米国の場所に含まれます。
formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test-1
      account: gcp-account
次のクラウド テンプレートは、暗号化を使用したマルチリージョン ストレージ バケットの作成方法を示しています。
formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test-0
      account: gcp-account
      labels:
        a: b
        c: d
      encryption:
        default_kms_key_name: projects/gcp-account/locations/us/keyRings/gcp-test-1/cryptoKeys/key-2
パブリック アクセスが制限されている、CMEK によって暗号化されたストレージ バケットを作成する場合は、いくつかの前提条件があります。説明については、次のリンクを参照してください: https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys
注: ユーザーが管理する暗号化キーは、ストレージ バケットと同じリージョンに配置する必要があります。