タグを使用してログバケットを管理する

このドキュメントでは、タグを使用して Cloud Logging ログバケットを管理する方法について説明します。組織レベルまたはプロジェクト レベルで作成されるタグを使用すると、リソースにアノテーションを付けることができます。また、リソースに特定のタグが設定されているかどうかに応じて、Identity and Access Management(IAM)のロールを条件付きで付与したり、IAM の権限を条件付きで拒否したりすることもできます。タグについては、タグの概要をご覧ください。

たとえば、BigQuery を使用して Cloud Billing データを分析する場合は、本番環境リソースのログデータを保存するログバケットに project:production タグを適用し、開発リソースのログデータを保存するログバケットに project:development タグを適用できます。その後、タグを使用して Cloud Billing データをクエリし、開発環境と本番環境の費用の内訳を確認できます。

タグは、ログバケットに明示的に適用することも、親の組織、フォルダ、プロジェクトから継承することもできます。

始める前に

タグを使用してログバケットの管理を開始する手順は次のとおりです。

  1. タグを作成して値を設定していることを確認します。タグの定義を管理するには、Resource Manager を使用します。タグの作成と管理方法については、タグの作成と管理をご覧ください。
  2. タグを使用してログバケットを管理するために必要な権限を取得するには、プロジェクトまたは組織に対する次の IAM ロールを付与するよう管理者に依頼してください。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    これらの事前定義ロールには、タグを使用してログバケットを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

    必要な権限

    タグを使用してログバケットを管理するには、次の権限が必要です。

    • ログバケットにタグを追加または削除します。
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • ログバケットに適用されているタグを表示します。
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

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

  3. ログバケットの管理に必要な権限を取得するには、プロジェクトに対するログ構成書き込み roles/logging.configWriter)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    この事前定義ロールには、ログバケットの管理に必要な logging.buckets.list 権限が含まれています。

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

ログバケットにタグを適用する

ログバケットにタグを適用する手順は次のとおりです。

Google Cloud コンソール

  1. Google Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

  2. タグを適用するログバケットを見つけます。

  3. ログバケットで、[その他] をクリックし、[タグを編集] をクリックします。

  4. ダイアログの [直接タグ] セクションで、タグが作成されたリソースを選択してタグを探します。たとえば、プロジェクト レベルで作成されたタグを使用するには、スコープとして [現在のプロジェクトを選択] を選択します。

    [手動入力] オプションを選択して、プロジェクト ID、組織 ID、タグ ID を手動で検索することもできます。

  5. 適切な Key-Value ペアを選択し、[保存] をクリックします。

  6. 変更内容を確認するダイアログが表示されます。[確認] をクリックして変更を確定します。

gcloud

ログバケットにタグを適用するには、gcloud resource-manager tags bindings create コマンドを実行してタグ バインディングを作成します。

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

前述のコマンドで、次のように置き換えます。

  • TAG_VALUE_ID: タグ値の永続 ID または名前空間付きの名前。例: tagValues/4567890123タグ識別子の詳細については、タグの定義と識別子をご覧ください。

  • BUCKET_NAME: ログバケットの名前(例: logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:ログバケットのロケーション。

API

ログバケットにタグを適用するには、tagBindings.create メソッドを使用します。

ログバケットに適用されているタグを表示する

ログバケットに適用されているタグを表示するには、次の操作を行います。

Google Cloud コンソール

  1. Google Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

  2. タグを表示するログバケットを見つけます。

    [タグ] 列に、ログバケットに関連付けられたタグが一覧表示されます。ログバケットに関連付けられているすべてのタグを表示するには、 [その他] ボタンをクリックしてタグのリストを展開します。

gcloud

gcloud resource-manager tags bindings list コマンドを実行します。

gcloud resource-manager tags bindings list \
--parent=BUCKET_NAME \
--location=LOCATION

前述のコマンドで、次のように置き換えます。

  • TAG_VALUE_ID: タグ値の永続 ID または名前空間付きの名前。例: tagValues/4567890123タグ識別子の詳細については、タグの定義と識別子をご覧ください。

  • BUCKET_NAME: ログバケットの名前(例: logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:ログバケットのロケーション。

省略可: ログバケットに継承されたタグを表示するには、--effective フラグを追加します。このフラグを追加すると、次のようなレスポンスが返されます。

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

すべてのタグがログバケットに明示的に接続され、タグが継承されていない場合、inherited フィールドは false になり省略されます。

API

バケットのタグ バインディングのリストを取得するには、tagBindings.list メソッドを使用します。

ログバケットのタグを削除する

ログバケットに適用されているタグを削除するには、ログバケットに適用されているタグ バインディングを削除する必要があります。タグを削除するには、接続されているすべてのリソースからタグを削除する必要があります。

Google Cloud コンソール

  1. Google Cloud コンソールで、[ログストレージ] ページに移動します。

    [ログストレージ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。

  2. タグを削除するログバケットを見つけます。

  3. ログバケットで、[その他] をクリックし、[タグを編集] をクリックします。

  4. ダイアログで、削除するタグの上にポインタを置き、[ 項目を削除] をクリックします。[保存] をクリックして、変更を保存します。

  5. 変更内容を確認するダイアログが表示されます。[確認] をクリックして変更を確定します。

gcloud

gcloud resource-manager tags bindings delete コマンドを実行します。

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

前述のコマンドで、次のように置き換えます。

  • TAG_VALUE_ID: タグ値の永続 ID または名前空間付きの名前。例: tagValues/4567890123タグ識別子の詳細については、タグの定義と識別子をご覧ください。

  • BUCKET_NAME: ログバケットの名前(例: logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION:ログバケットのロケーション。

API

ログバケットのタグを削除するには、tagBindings.delete メソッドを使用します。

制限事項

  • IAM ロールの付与を使用して、Google Cloud プロジェクトのログバケットを一覧表示するときにプリンシパルが表示するログバケットを制御することはできません。プリンシパルには、完全なリストまたは空のリストが表示されます。ただし、IAM 条件で IAM ロールの付与を使用すると、プリンシパルがログバケットに対して実行できるアクションを制限できます。たとえば、プリンシパルが特定のログバケットを削除できるかどうかを制限できます。

  • BigQuery で Cloud Billing データのエクスポートを使用する場合、タグがエクスポートで使用されるまでに最大 1 時間かかることがあります。1 時間以内にタグが追加または削除された場合、あるいはログバケットの存在時間が 1 時間未満の場合は、エクスポートに表示されないことがあります。

IAM 条件を使用したカスタムロールとロール付与

カスタム IAM ロールを使用する予定で、ロールの付与に IAM 条件を適用する場合は、複数のカスタムロールを作成する必要がある場合があります。一部の IAM 権限は、IAM 条件がロールの付与に適用されると無効になります。

Cloud Logging の場合、ロール付与に IAM 条件が含まれていると、次の IAM 権限が無効になります。

  • logging.buckets.list
  • logging.buckets.create

そのため、list 権限と create 権限を持つロールと、他のバケット固有の権限を含むロールを 1 つずつ作成する必要があります。たとえば、logging.buckets.delete 権限と logging.buckets.update 権限を含むロールを作成できます。

list 権限と create 権限を含むロールを付与する場合は、ロールの付与に IAM 条件を適用しないでください。delete 権限と update 権限を含むロールを付与する場合は、特定のタグを持つリソースへの付与を制限する IAM 条件を追加できます。

次のステップ