arrow_back

Google Cloud Storage - バケットロック

ログイン 参加
700 以上のラボとコースにアクセス

Google Cloud Storage - バケットロック

ラボ 40分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP297

Google Cloud セルフペース ラボのロゴ

概要

このラボでは、Cloud Storage のバケットロック機能の使用方法について学習します。この機能を使用すると、Cloud Storage バケットのデータ保持ポリシーを構成して、バケット内のオブジェクトの保持期間を管理できます。また、データ保持ポリシーをロックして、ポリシーの変更や削除を防止することもできます。

バケットロックは、Cloud Storage のリクエストとレスポンスの詳細をログに記録する Cloud Storage の詳細な監査ロギングモードや、オブジェクトのライフサイクル管理と組み合わせることで、FINRA、SEC、CFTC などの規制やコンプライアンス要件への対応に役立ちます。また、バケットロックを使用して、医療業界の特定の保持規制に対応することもできます。

学習内容

このラボでは、次の操作を行う方法について学びます。

  • バケットを作成する
  • オブジェクト保持ポリシーを定義する
  • 保持ポリシーを削除する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

このラボのリージョンを設定する

gcloud config set compute/region {{{project_0.default_region | "REGION"}}}

Cloud Storage のユーティリティ ツール gsutil がインストールされ、Google Cloud で使用できるようになっています。このラボでは、Cloud Shell で gsutil を使用します。

タスク 1. 新しいバケットを作成する

  1. Cloud Storage_BUCKET という名前の環境変数を定義し、バケット名としてプロジェクト ID を使用します。プロジェクト ID を取得するには、次のコマンドで Cloud SDK を使用します。
export BUCKET=$(gcloud config get-value project)
  1. 次の gsutil コマンドを使用して新しいバケットを作成します。
gsutil mb "gs://$BUCKET"
  1. [承認] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Storage バケットを作成する

タスク 2. 保持ポリシーを定義する

金融機関の支店で、金融取引の記録を 6 年間保持するという SEC Rule 17a-4 の要件があるとします(このラボでは 10 秒間とします)。支店内で日々の記録の管理と保持を担当する技術管理者(「支店の IT 管理者」)が、この要件を満たすために、10 秒間の保持ポリシーを持つ Cloud Storage バケットを作成したいと考えています。

バケットに保持ポリシーを設定する方法を確認しましょう。

  1. 保持ポリシーは、Cloud Storage の gsutil ツールを使用して、秒、日、月、年単位で定義できます。たとえば、10 秒間の保持ポリシーを作成するには、次のようにします。
gsutil retention set 10s "gs://$BUCKET" 注: 10 日間の場合は 10d、10 か月間の場合は 10m、10 年間の場合は 10y とします。詳細については、gsutil help retention set コマンドで確認してください。
  1. バケットの保持ポリシーを確認します。
gsutil retention get "gs://$BUCKET"

出力例:

Retention Policy (UNLOCKED): Duration: 10 Second(s) Effective Time: Tue, 23 Jan 2018 01:04:05 GMT

Effective Time」(実効日時)は、ポリシーがバケットに適用された日時です。

  1. バケットに保持ポリシーが設定されたので、取引記録オブジェクトを追加してテストします。
gsutil cp gs://spls/gsp297/dummy_transactions "gs://$BUCKET/"
  1. 保持期限を確認します。
gsutil ls -L "gs://$BUCKET/dummy_transactions"

出力例:

gs://YOUR_BUCKET_NAME/dummy_transactions: Creation time: Tue, 23 Jan 2018 00:45:21 GMT Update time: Thu, 25 Jan 2018 20:14:49 GMT Retention Expiration: Thu, 25 Jan 2018 20:14:59 GMT

特定のオブジェクトの保持ポリシーの期限が切れると、そのオブジェクトを削除できるようになります。

保持ポリシーを延長するには、gsutil retention set コマンドを使用して保持ポリシーを更新します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 保持ポリシーを設定する

タスク 3. 保持ポリシーをロックする

ロックされていない状態の保持ポリシーは、バケットからの削除や、保持期間の短縮ができます。保持ポリシーをロックすると、バケットからの削除や、保持期間の短縮ができなくなります。

  1. 保持ポリシーをロックします。
gsutil retention lock "gs://$BUCKET/"

ロックを確認する出力例:

This will PERMANENTLY set the Retention Policy on gs://YOUR-BUCKET-NAME to: Retention Policy (UNLOCKED): Duration: 10 Second(s) Effective Time: Wed, 07 Feb 2018 01:37:52 GMT This setting cannot be reverted! Continue? [y|N]:
  1. y」と入力して確定します。
注: バケットの保持ポリシーを表示するには、次のコマンドを呼び出します。

gsutil retention get "gs://$Cloud Storage_BUCKET/"

一度ロックした保持ポリシーは、ロック解除ができず、延長のみが可能になります。実効日時は、設定または最終更新から経過した時間が保持ポリシーの期間を超えると更新されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 保持ポリシーをロックする

タスク 4. 一時保留を設定する

上記の例の続きとして、10 秒間の保持ポリシー(ロック済み)がバケットに設定されているとします。

金融規制当局が支店の顧客の監査を実施することを決定し、監査期間中、これらの記録を保持することを要求しました。この顧客の Cloud Storage オブジェクトの一部は有効期限が近づいており、まもなく自動的に削除されます。

これに対応するため、支店の IT 管理者は、規制当局の調査が開始されたときに、監査に関連する各オブジェクトに一時保留フラグを設定します。このフラグが設定されている間は、オブジェクトが 10 秒より古くても、削除から保護されます。

  1. 取引オブジェクトに一時保留を設定します。
gsutil retention temp set "gs://$BUCKET/dummy_transactions"
  1. オブジェクトに一時保留を設定すると、保留が解除されない限り、削除オペレーションを実行できません。試しにオブジェクトを削除してみます。
gsutil rm "gs://$BUCKET/dummy_transactions"

次のエラー メッセージが表示されます。

AccessDeniedException: 403 Object 'YOUR-BUCKET-NAME/dummy_transactions is under active Temporary hold and cannot be deleted, overwritten or archived until hold is removed.
  1. 規制当局の監査が完了したら、支店の IT 管理者が一時保留を解除できます。保留を解除するには、次のコマンドを使用します。
gsutil retention temp release "gs://$BUCKET/dummy_transactions"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 一時保留を設定する

  1. ファイルの保持ポリシーが期限に達していない場合を除き、ファイルを削除できるようになりました。削除できない場合は、しばらくしてからもう一度お試しください。
gsutil rm "gs://$BUCKET/dummy_transactions"

タスク 5. イベントベースの保留を設定する

上記の例の続きとして、10 秒間の保持ポリシー(ロック済み)がバケットに設定されているとします。

支店では、金融取引の記録を 10 秒間保持するだけでなく、ローンの記録も返済日から 10 秒間保持する必要があるとします。これを実現するために、支店の IT 管理者は、イベントベースの保留フラグを設定して、ローンの記録を新しい Cloud Storage オブジェクトとしてアップロードします。

支店の IT 管理者は毎日、ローンが返済されたら、対応する Cloud Storage オブジェクトのイベントベースの保留フラグを解除します。Cloud Storage により、その日から 10 秒後を期限とする新しい保持ポリシーが自動的に計算されるため、これ以上の操作は必要ありません。

イベントベースの保留を使用すると、保留が解除されるまで保持ポリシーのカウントダウンを遅らせることができます。イベントベースの保留はオブジェクトごとに管理でき、バケット プロパティによって、新しいオブジェクトがバケットに追加されたときにデフォルトで設定できます。

ローンに対してイベントベースの保留を有効にする方法を確認しましょう。

  1. 次のコマンドを使用して、バケットに対してデフォルトのイベントベースの保留を有効にします。
gsutil retention event-default set "gs://$BUCKET/"
  1. 次のコマンドを使用して、バケットにローンの例を追加します。
gsutil cp gs://spls/gsp297/dummy_loan "gs://$BUCKET/"
  1. 次のコマンドを使用して、新しく追加したローンに対してイベントベースの保留が有効になっていることを確認します。
gsutil ls -L "gs://$BUCKET/dummy_loan"

出力は次のようになります。

gs://YOUR-BUCKET-NAME/dummy_loan: Creation time: Fri, 26 Jan 2018 07:40:28 GMT Update time: Fri, 26 Jan 2018 07:40:28 GMT Event-Based Hold: Enabled

Retention Expiration(保持期限)が定義されていないことに注意してください。保持期限は、オブジェクトに対するイベントベースの保留が解除されるまで確認できません。

  1. ローンが返済されたら、支店の IT 管理者が次のコマンドを使用してイベントベースの保留を解除します。
gsutil retention event release "gs://$BUCKET/dummy_loan"

出力は次のようになります。

Releasing Event-Based Hold on gs://YOUR-BUCKET-NAME/dummy_loan...
  1. イベントベースの保留が解除されると、バケットの保持ポリシーが有効になります。次のコマンドを使用して、ローンの例に「Retention Expiration」フィールドが追加されることを確認します。
gsutil ls -L "gs://$BUCKET/dummy_loan"

出力は次のようになります。

dummy_loan: Creation time: Fri, 26 Jan 2018 08:14:16 GMT Update time: Fri, 26 Jan 2018 08:14:25 GMT Retention Expiration: Fri, 26 Jan 2018 08:14:45 GMT 注: 次のコマンドを使用して、特定のオブジェクトにイベントベースの保留を設定することもできます。

gsutil retention event set "gs://bucket-name/object-name"
  1. バケットからファイルを削除してみます。
gsutil rm "gs://$BUCKET/dummy_loan"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 イベントベースの保留を作成する

タスク 6. 保持ポリシーを削除する方法

残念ながら、この支店は融資業務を停止することになりました。支店の IT 管理者は引き続き、既存の記録をその全期間にわたって維持する必要がありますが、バケットに記録を生成する必要はなくなります。最後のローンの保持期間が終了し、保持の対象ではなくなった後、支店の IT 管理者は空のバケットを削除できます。バケットには保持の対象となるデータが含まれていないため、ロックされた保持ポリシーが設定されていても削除できます。

  • 次のコマンドを使用して、空のバケットを削除します。
gsutil rb "gs://$BUCKET/"

お疲れさまでした

このラボでは、時間を定めたポリシー、一時保留、イベントベースの保留を使用してオブジェクトの保持を管理する方法と、最後に、ロックされた保持ポリシーが設定されたバケットを削除する方法を学習しました。

次のラボを受講する

Cloud Storage に関する詳細

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 9 月 30 日

ラボの最終テスト日: 2025 年 9 月 30 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。