ログおよびログ・グループ
Oracle Cloud Infrastructure Loggingを使用して、ログおよびログ・グループを管理します。
ログには、リソースのパフォーマンスおよびアクセス方法を説明するクリティカルな診断情報が含まれます。サポートされるリソースでロギングを有効にできます。サービス別にグループ化されたサポートされるリソースのリストを表示するには、サポートされるサービスを参照してください。
ログ・グループは、ログを編成するための論理コンテナです。ログは、常にログ・グループ内に存在する必要があります。ログを有効にするには、ログ・グループを作成する必要があります。
ログ・グループを使用して、IAMポリシーで機密ログへのアクセスを制限します。ログ・グループでは、ログを保護するために複雑なコンパートメント階層に依存する必要はありません。たとえば、1つのコンパートメントのデフォルト・ログ・グループが、テナンシ全体のログを格納する場所であるとします。通常の場合と同様に、IAMポリシーでログ管理者にコンパートメントへのアクセス権を付与します。ただし、一部のプロジェクトには個人を特定できる情報(PII)が含まれており、これらのログは選択したログ管理者グループのみが表示できるとします。ログ・グループを使用すると、PIIを含むログを個別のログ・グループに配置し、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つの異なるタイプのアクセス権が必要です:
- 構成を操作するためのアクセス権。
- ログ・グループを操作するためのアクセス権。
- 動的グループまたはグループに対する検査機能。
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
に関して説明されていたものと似ています。
シナリオの例
会社に事業部があります。事業部内に複数のコスト・センターがあります。適切なコスト・センターを持つ事業部に属するリソースに、タグを付けたいと考えています。
- "confidential"というログ・グループを作成します。機密情報を入力しないでください。
- 機密データを含むログを"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は別々のログとして処理されます。
- 機密情報を入力しないでください。