マネージド フォルダの作成と管理

このガイドでは、マネージド フォルダを作成、一覧表示、削除する方法について説明します。

始める前に

始める前に、マネージド フォルダの作成と管理、均一なバケットレベルのアクセスの有効化に必要な Identity and Access Management(IAM)ロールがあることを確認してください。

必要なロールを取得する

マネージド フォルダの作成と管理に必要な権限を取得するには、バケットに対するストレージ フォルダ管理者(roles/storage.folderAdmin)IAM ロールを付与するよう管理者に依頼してください。

この事前定義ロールには、マネージド フォルダの作成と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

  • storage.managedfolders.create
  • storage.managedfolders.delete
  • storage.managedfolders.get
  • storage.managedfolders.list
  • storage.objects.list
    • この権限は、新しく作成されたマネージド フォルダを一覧表示して検証する場合にのみ必要です。

これらの権限は、他の事前定義ロールカスタムロールを使用して取得することもできます。

バケットに対するロールの付与については、バケットで IAM を使用するをご覧ください。

均一なバケットレベルのアクセスを有効にする

まだ行っていない場合は、均一なバケットレベルのアクセスを有効にします

マネージド フォルダを作成する

コンソール

Google Cloud コンソールを使用する場合は、シミュレートされたフォルダを変換して、マネージド フォルダを作成します。次の手順では、シミュレートされたフォルダを作成してマネージド フォルダに変換する方法について説明します。

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、マネージド フォルダを作成するバケットの名前をクリックします。

  3. [バケットの詳細] ページで、[フォルダを作成] をクリックして新しいフォルダを作成します。マネージド フォルダに変換するフォルダがすでに存在する場合は、その他のオプション メニューを使う手順に進みます。

  4. [名前] フィールドに、フォルダの名前を入力します。命名に関する考慮事項については、マネージド フォルダ名をご覧ください。

  5. [作成] をクリックします。

    新しく作成したフォルダが [フォルダ ブラウザ] ペインに表示されます。

  6. [フォルダ ブラウザ] ペインで、マネージド フォルダに変換するフォルダの横にあるその他のオプション メニューをクリックし、[アクセス権の編集] をクリックします。

    [マネージド フォルダの作成] ダイアログが表示されます。

  7. [Attach managed folder] をクリックします。

    フォルダがマネージド フォルダに変換されます。[MANAGED_FOLDER_NAME の権限] ペインが表示され、フォルダの IAM ポリシーがプリンシパルとロール別に表示されます。新しい IAM ポリシーを作成するには、マネージド フォルダに IAM ポリシーを設定するをご覧ください。

コマンドライン

マネージド フォルダを作成するには、gcloud storage managed-folders create コマンドを実行します。

gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME

ここで

  • BUCKET_NAME は、マネージド フォルダを作成するバケットの名前です。例: my-bucket

  • MANAGED_FOLDER_NAME は、作成するマネージド フォルダの名前です。例: my-managed-folder/

マネージド フォルダが作成されたことを確認するには、gcloud storage managed-folders describe コマンドを実行します。

gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME

ここで

  • BUCKET_NAME は、マネージド フォルダを作成したバケットの名前です。

  • MANAGED_FOLDER_NAME は、作成したマネージド フォルダの名前です。

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して POST ManagedFolder リクエストで JSON API を呼び出します。

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -d '{ "name": "MANAGED_FOLDER_NAME" }' \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"

    ここで

    • BUCKET_NAME は、マネージド フォルダを作成するバケットの名前です。例: my-bucket

    • MANAGED_FOLDER_NAME は、作成するマネージド フォルダの名前です。例: my-managed-folder/

マネージド フォルダを一覧表示する

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. [フォルダ ブラウザ] ペインで、「ノードを切り替える」アイコン を使用して、バケット内のフォルダのリストを開きます。

バケット内のシミュレートされたフォルダとマネージド フォルダが表示されます。

コマンドライン

マネージド フォルダを一覧表示するには、gcloud storage managed-folders list コマンドを実行します。

gcloud storage managed-folders list gs://BUCKET_NAME

ここで

  • BUCKET_NAME は、一覧表示するマネージド フォルダを含むバケットの名前です。例: my-bucket

バケット名の代わりにフォルダパスを指定することもできます。次に例を示します。

gcloud storage managed-folders list gs://my-bucket/folder/

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して、マネージド フォルダを一覧表示するリクエストJSON API を呼び出します。

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"

    BUCKET_NAME は、一覧表示するマネージド フォルダを含むバケットの名前です。例: my-bucket

マネージド フォルダを移動する

コンソール

  1. 転送先のバケットに新しいマネージド フォルダを作成します。

  2. 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダに IAM ポリシーをコピーします。

  3. 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダにオブジェクトをコピーします。

  4. 転送元バケットから元のマネージド フォルダを削除します。

コマンドライン

マネージド フォルダとマネージド フォルダに含まれるオブジェクトを移動するには、--include-managed-folders オプションを指定して gcloud storage mv コマンドを実行します。

gcloud storage mv --include-managed-folders gs://SOURCE_BUCKET_NAME/MANAGED_FOLDER_NAME gs://DESTINATION_BUCKET_NAME/MANAGED_FOLDER_NAME

ここで

  • SOURCE_BUCKET は、元のバケットの名前です。例: my-source-bucket

  • DESTINATION_BUCKET は、マネージド フォルダの移動先となるバケットの名前です。例: my-destination-bucket

  • MANAGED_FOLDER_NAME は、移動するマネージド フォルダの名前です。例: my-managed-folder/

REST API

JSON API

マネージド フォルダを別のバケットに移動するには、次の操作を行います。

  1. 転送先のバケットに新しいマネージド フォルダを作成します。

  2. 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダに IAM ポリシーをコピーします。

  3. 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダにオブジェクトをコピーします。

  4. 転送元バケットから元のマネージド フォルダを削除します。

マネージド フォルダを削除する

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. [バケットの詳細] ページで、削除するマネージド フォルダの横にあるその他のオプション アイコン をクリックします。

  3. [フォルダを削除] をクリックします。

  4. マネージド フォルダの削除を確定するには、[削除] フィールドに「DELETE」と入力します。

  5. [削除] をクリックします。

    Cloud Storage バケットからマネージド フォルダとそのコンテンツ(保存されているオブジェクトやその他のマネージド フォルダを含む)が削除されます。

コマンドライン

マネージド フォルダとマネージド フォルダに含まれるオブジェクトを削除するには、gcloud storage rm コマンドを実行します。

gcloud storage rm -r gs://BUCKET_NAME/MANAGED_FOLDER_NAME

ここで

  • BUCKET_NAME は、削除するマネージド フォルダを含むバケットの名前です。例: my-bucket

  • MANAGED_FOLDER_NAME は、削除するマネージド フォルダの名前です。例: my-managed-folder/

REST API

JSON API

マネージド フォルダを削除する前に、マネージド フォルダ内のオブジェクトを削除する必要があります。

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して DELETE ManagedFolder リクエストで JSON API を呼び出します。

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"

    ここで

    • BUCKET_NAME は、削除するマネージド フォルダを含むバケットの名前です。例: my-bucket

    • MANAGED_FOLDER_NAME は、削除するマネージド フォルダの名前です。例: my-managed-folder/

    デフォルトでは、マネージド フォルダを削除する前にフォルダを空にする必要があります。空ではないマネージド フォルダを削除する場合は、リクエストに allowNonEmpty=true をクエリ パラメータとして含めます。

トラブルシューティング

マネージド フォルダの作成と管理については、トラブルシューティング ページをご覧ください。

次のステップ