ログおよびログ・グループ

Oracle Cloud Infrastructure Loggingを使用して、ログおよびログ・グループを管理します。

ログには、リソースのパフォーマンスおよびアクセス方法を説明するクリティカルな診断情報が含まれます。サポートされるリソースでロギングを有効にできます。サービス別にグループ化されたサポートされるリソースのリストを表示するには、サポートされるサービスを参照してください。

ログ・グループは、ログを編成するための論理コンテナです。ログは、常にログ・グループ内に存在する必要があります。ログを有効にするには、ログ・グループを作成する必要があります。

ログ・グループを使用して、IAMポリシーで機密ログへのアクセスを制限します。ログ・グループでは、ログを保護するために複雑なコンパートメント階層に依存する必要はありません。たとえば、1つのコンパートメントのデフォルト・ログ・グループが、テナンシ全体のログを格納する場所であるとします。通常の場合と同様に、IAMポリシーでログ管理者にコンパートメントへのアクセス権を付与します。ただし、一部のプロジェクトには個人を特定できる情報(PII)が含まれており、これらのログは選択したログ管理者グループのみが表示できるとします。ログ・グループを使用すると、PIIを含むログを個別のログ・グループに配置し、IAMポリシーを使用して、選択したログ管理者のセットのみが昇格されたアクセス権を持つようにアクセスを制限できます。

ログ・グループのIAMポリシー

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者からポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。

管理者: ログおよびログ・グループに固有のポリシー・サンプルについては、ログおよびログ・グループの作業に必要な権限を参照してください。

ポリシーを初めて使用する場合は、ポリシーの開始および共通ポリシーを参照してください。ロギングでのポリシー記述の詳細は、ロギングの詳細を参照してください。

ログおよびログ・グループの作業に必要な権限

リソースのサービス・ログを有効にするには、ログ・グループに対するmanageアクセス権とリソースへのアクセス権をユーザーに付与する必要があります。通常は、リソースに対する検査アクセス権で十分ですが、具体的なリソースを確認してください。検査アクセス権によって、リソースを更新する権限およびログを含むログ・グループに対する権限が提供されます。

ログおよびログ・グループは、log-groupリソース・タイプを使用しますが、ログの内容を検索するには、別のリソース・タイプを使用する必要があります。

ログ・グループおよびログ・オブジェクトの管理

グループまたはオブジェクトを管理するには、log-groupsに対して動詞を使用します:

Allow group A to use log-groups in compartment C
Allow group B to manage log-groups in compartment C
Allow group D to read log-groups in compartment C

これにより、グループAのユーザーは、コンパートメントCのログ・グループおよびログ・オブジェクトを作成、更新または削除できます。

エージェント構成をプロビジョニングするには

3つの異なるタイプのアクセス権が必要です:

  1. 構成を操作するためのアクセス権。
  2. ログ・グループを操作するためのアクセス権。
  3. 動的グループまたはグループに対する検査機能。
構成に対するアクセス権を付与するには、ポリシーを次のようにします:
Allow group B to use unified-configuration in compartment X
構成の宛先として使用されるカスタム・ログを作成、更新または削除するには

このポリシーにより、コンパートメントBのユーザーは、コンパートメントXの構成を作成、更新または削除できます。

構成から受信するログの宛先を指定するには、log-groupsのアクセス権が必要です:
Allow group B to use log-groups in compartment X
インスタンスのセットに構成を割り当てるには
インスタンスのセットに構成を割り当てるには、インスタンスを識別する動的グループまたはグループに対する検査アクセス権が必要です:
Allow group B {IDENTITY_DYNAMIC_GROUP_INSPECT} in tenancy  / Allow group B {IDENTITY_GROUP_INSPECT} in tenancy
インスタンスがロギング・サービスにログをプッシュできるようにするには
インスタンスがログをプッシュできるようにするには、構成を取得してログをプッシュするためのアクセス権をインスタンスが持っている必要があります。log-contentはこの権限を制御します(Xは構成が存在するコンパートメントです):
Allow dynamic-group production-fleet to use log-content in compartment X
ログを表示するには
コンソール(検索)でログを表示するには、次が必要です:
Allow group Searchers to read log-content in compartment X
ログ検索ポリシーの例

グループが索引付けされたログの内容を読み取ることができるようにするには:

allow group GroupA to read log-groups in tenancy
allow group GroupA to read log-content in tenancy
ログおよびログ・グループのポリシーの例

これらの例のポリシー・ステートメントでは、グループの名前としてGroupAを使用します。

グループがテナンシ(またはコンパートメント)のログ・グループを表示できるようにするには、inspectアクセス権が必要です:

allow group GroupA to inspect log-groups in tenancy

グループがログまたはログ・グループのメタデータを読み取ることができるようにするには、readアクセス権が必要です:

allow group GroupA to read log-groups in tenancy

グループがログ・グループまたはその中のログを更新できるようにするには、useアクセス権が必要です:

allow group GroupA to use log-groups in tenancy

リソースでログを有効にする(または、ログ・グループとその中のログを作成および削除する)には、manageアクセス権が必要です:

allow group GroupA to manage log-groups in tenancy

特定のログ・グループまたはグループの使用を許可するには、where句とtarget.loggroup.id変数を組み合せて使用します。例:

Allow group GroupA to manage loggroups in tenancy where 
target.loggroup.id='ocid1.loggroup.oc1.phx.<uniqueID>'

複数のログ・グループを指定するには:

Allow group GroupA to manage log-groups in tenancy where any {target.loggroup.id='ocid1.loggroup'}
カスタム・ログ

カスタム・ログでは、次が必要です。このポリシーは、ユーザーがコンソールの「検索」ページでログを検索できるようにするために必要です:

allow group userGroup1 to read log-content in compartment c
ノート

このポリシーは、カスタム・ログでの使用に関して記述されていますが、すべてのログにも当てはまります。LOG_CONTENT_READにより、カスタム・ログとOCIサービス・ログの両方からログを読み取ることができます。このポリシーの動作は同じです:
allow group GroupA to read log-content in tenancy

仮想マシンのインスタンス・プリンシパルを使用してログを送信するエージェントには、次が必要です:

allow dynamic-group dynamicgroup1 to use log-content in compartment c
ノート

カスタム・ログをプッシュするために動的グループではなくユーザー・グループが使用されている場合は、これらのポリシーで動的グループ名をユーザー・グループ名に置き換えます。

カスタム・ログで、allow dynamic-group dynamicGroup1 to use log-content in compartment cを使用すると、その動的グループ内のインスタンスは、構成のダウンロード、ログの送信およびログの検索を行う権限を取得します。

リソースのIAMポリシー要件

ログ・グループを操作する権限に加えて、リソースにサービス・ログを追加するには、リソースの更新権限が必要です。多くのリソースでは、更新権限はuse動詞で付与されます。たとえば、CompartmentAのバケットを使用できるユーザーは、CompartmentAのバケットでロギングを有効にすることもできます。

ただし、一部のリソースには、use動詞でリソースを更新する権限が含まれていません。たとえば、イベント・サービスのルールを更新するには、完全なmanage権限が必要です。イベント・ルール(またはuse動詞での更新権限を含まないその他のリソース)でログを有効にするには、manage権限が必要です。

manageの完全な権限を付与せずに、グループがこれらのリソースのロギングを有効にできるようにするには、manage動詞から<RESOURCE>_UPDATE権限(または、イベント・サービスの場合は<RESOURCE>_MODIFY)のみを付与するポリシー・ステートメントを追加できます。たとえば、グループEventUsersがCompartmentAのイベント・ルールでログを有効にできるようにするには、次のようなポリシーを記述します:

Allow group EventUsers to read cloudevents-rules in compartment CompartmentA
Allow group EventUsers to manage cloudevents-rules in compartment CompartmentA 
 where request.permission='EVENTRULE_MODIFY'

リソース権限の詳細は、ポリシー・リファレンスを参照してください。

VCNフロー・ログのIAMポリシー

ログおよびログ・グループの作業に必要な権限に加えて、VCNフロー・ログの管理にはサブネットの読取りおよび更新権限が必要です。

サブネットの権限を提供するには、次のポリシーのいずれかを使用します(広い権限から狭い権限へと向かう順序で示します):

Allow group FlowLogsEnablers to manage virtual-network-family in tenancy 

または:

Allow group FlowLogsEnablers to manage subnets in tenancy

または:

Allow group FlowLogsEnablers to {SUBNET_READ, SUBNET_UPDATE} in tenancy

このグループは、リソースのIAMポリシー要件EventUsersに関して説明されていたものと似ています。

シナリオの例

会社に事業部があります。事業部内に複数のコスト・センターがあります。適切なコスト・センターを持つ事業部に属するリソースに、タグを付けたいと考えています。

  1. "confidential"というログ・グループを作成します。機密情報を入力しないでください。
  2. 機密データを含むログを"confidential"ログ・グループに追加します。

Aliceという名前の従業員は、すでにグループBucketManagersに属しています。Aliceは、CompartmentAのバケットを管理できます。AliceとBucketManagersグループの他のメンバーが、CompartmentAのバケットでログを有効にできるようにします。

BucketManagersグループに機密データ・ログ・グループ(および機密データ・ログ・グループのみ)へのアクセス権を付与するには、BucketManagersポリシーに次のステートメントを追加します:

Allow group BucketManagers to manage log-groups in compartment CompartmentA where 
target.loggroups.id='ocid1.lumloggroup.oc1.phx.<uniqueID>'

これで、AliceはCompartmentAのバケット・リソースでログを有効にできます。

ログ名およびログ・グループ名

ログ・グループ名では、最初のキャラクタは文字で始まる必要があります。それ以外では、ログ名とログ・グループ名の両方に次のガイドラインが適用されます:

  • 1から256文字を使用します。
  • 有効な文字は、文字(大文字または小文字)、数字、ハイフン、アンダースコアおよびピリオドです。
  • ログ名とログ・グループ名では、大/小文字が区別されます。ロギングでは、write-logとWRITE-logは別々のログとして処理されます。
  • 機密情報を入力しないでください。