Google Cloud CLI でオブジェクト ストレージを検出する

このページでは、Google Cloud CLI を使用して Cloud Storage で基本的なタスクを実行する方法について説明します。

Cloud Storage で発生する費用は、使用するリソースによって異なります。このクイックスタートでは、ほとんどの場合、費用が $0.01 USD 未満の Cloud Storage リソースを使用します。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. Google Cloud CLI をインストールします。

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

  4. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  5. Google Cloud プロジェクトを作成または選択します。

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者のロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクト名に置き換えます。

  6. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。

  7. ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。 roles/storage.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID。
    • USER_IDENTIFIER: ユーザー アカウントの識別子。 例: myemail@example.com
    • ROLE: ユーザー アカウントに付与する IAM ロール。
  8. Google Cloud CLI をインストールします。

  9. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

  10. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  11. Google Cloud プロジェクトを作成または選択します。

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者のロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクト名に置き換えます。

  12. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。

  13. ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。 roles/storage.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID。
    • USER_IDENTIFIER: ユーザー アカウントの識別子。 例: myemail@example.com
    • ROLE: ユーザー アカウントに付与する IAM ロール。

バケットの作成

バケットは、Cloud Storage でデータを格納するための基本的なコンテナです。

バケットを作成するには:

  1. ターミナル ウィンドウを開きます。
  2. gcloud storage buckets create コマンドとグローバルに一意の名前を使用して、バケットを作成します。

    gcloud storage buckets create gs://BUCKET_NAME/ --uniform-bucket-level-access

    BUCKET_NAME をバケットの名前に置き換えます。

    成功した場合、コマンドは次のようなレスポンスを返します。

    Creating gs://my-awesome-bucket/...

    選択したバケット名がすでに自分または他のユーザーによって使用されている場合は、コマンドから ServiceException: 409 Bucket my-awesome-bucket already exists. 別のバケット名でもう一度お試しください。のようなレスポンスが返されます。

これで、データを保存できるバケットが作成されました。

バケットにオブジェクトをアップロードする

  1. 次の画像をパソコンに保存します(デスクトップなど)。

    前足を伸ばした子猫。

  2. gcloud storage cp コマンドを使用して、画像を保存した場所から作成したバケットにコピーします。

    gcloud storage cp OBJECT_LOCATION gs://BUCKET_NAME

    OBJECT_LOCATION は、イメージを保存したロケーション(Desktop/kitten.png など)に置き換えます。

    成功した場合、コマンドは次のようなレスポンスを返します。

    Copying file://Desktop/kitten.png to gs://my-awesome-bucket/kitten.png
      Completed files 1/1 | 8.6kiB/8.6kiB

    これで、オブジェクトをバケットに保存できました。

バケットからのオブジェクトのダウンロード

  1. gcloud storage cp コマンドを使用して、バケットに保存した画像をパソコンのデスクトップなどの場所にダウンロードします。

    gcloud storage cp gs://BUCKET_NAME/kitten.png Desktop/kitten2.png

    成功した場合、コマンドは次のようなレスポンスを返します。

    Copying gs://my-awesome-bucket/kitten.png to file://Desktop/kitten2.png
      Completed files 1/1 | 8.6kiB/8.6kiB 

    これで、バケットからオブジェクトをダウンロードできました。

バケット内のシミュレートされたフォルダにオブジェクトをコピーする

  1. gcloud storage cp コマンドを使用して、シミュレートされたフォルダを作成し、画像をそこにコピーします。

    gcloud storage cp gs://BUCKET_NAME/kitten.png gs://BUCKET_NAME/quickstart-folder/kitten3.png

    成功した場合、コマンドは次のようなレスポンスを返します。

    Copying gs://my-awesome-bucket/kitten.png to gs://my-awesome-bucket/quickstart-folder/kitten3.png
      Completed files 1/1 | 8.6kiB/8.6kiB 

    これで、バケット内の新しいシミュレートされたフォルダに画像がコピーされました。

バケットの内容の一覧表示

  1. gcloud storage ls コマンドを使用して、トップレベルのバケットの内容を一覧表示します。

    gcloud storage ls gs://BUCKET_NAME

    成功した場合、コマンドは次のようなレスポンスを返します。

    gs://my-awesome-bucket/kitten.png
    gs://my-awesome-bucket/quickstart-folder/

    これで、トップレベルのバケットの内容を表示できました。

オブジェクトの詳細を表示する

  1. gcloud storage ls コマンドに --long フラグを指定して、画像の 1 つに関するいくつかの詳細を取得します。

    gcloud storage ls gs://BUCKET_NAME/kitten.png --long

    成功した場合、コマンドは次のようなレスポンスを返します。

    8775  2026-01-21T01:22:17Z  gs://srs-bucketcli/kitten.png
    TOTAL: 1 objects, 8775 bytes (8.57kiB)

    これで、画像のサイズと作成日に関する情報が取得されました。

オブジェクトの一般公開

  1. gcloud storage buckets add-iam-policy-binding コマンドを使用して、バケットに保存されているイメージの読み取り権限をすべてのユーザーに付与します。

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer

    レスポンスに次のものが含まれている場合、コマンドは成功です。

    bindings:
      - members:
        - allUsers
        role: roles/storage.objectViewer
    

    これで、誰でも画像を取得できるようになりました。

  2. このアクセス権を削除するには、次のコマンドを使用します。

    gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer

    エラーが返されなければ、コマンドは成功です。

    バケット内の画像への公開アクセス権が削除されました。

バケットへのアクセス権の付与

  1. gcloud storage buckets add-iam-policy-binding コマンドを使用して、特定のメールアドレスにバケットへのオブジェクトを追加する権限を付与します。

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

    レスポンスに次のものが含まれている場合、コマンドは成功です。

    bindings:
      - members:
        - user:jeffersonloveshiking@gmail.com
        role: roles/storage.objectCreator
    

    これで、このユーザーがバケットにアイテムを追加できるようになりました。

  2. この権限を削除するには、次のコマンドを使用します。

    gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

    エラーが返されなければ、コマンドは成功です。

    このバケットへのユーザーのアクセス権を削除しました。

オブジェクトを削除する

  1. 画像のいずれかを削除するには、gcloud storage rm コマンドを使用します。

    gcloud storage rm gs://BUCKET_NAME/kitten.png

    成功した場合、コマンドは次のようなレスポンスを返します。

    Removing gs://my-awesome-bucket/kitten.png...

    画像のコピーは Cloud Storage に保存されなくなりました(ただし、シミュレートされたフォルダ quickstart-folder/ に作成したコピーはまだ存在します)。

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。

  1. gcloud storage rm コマンドで --recursive フラグを指定して、バケットとその中のすべてのものを削除します。

    gcloud storage rm gs://BUCKET_NAME --recursive

    成功した場合、コマンドは次のようなレスポンスを返します。

    Removing objects:
    Removing gs://my-awesome-bucket/quickstart-folder/kitten3.png#1768960201129254
      Completed 1/1
    Removing buckets:
    Removing gs://my-awesome-bucket/...
      Completed 1/1

    バケットとその内容が削除されました。

次のステップ