CloudWatch Logs でのアイデンティティベースのポリシー (IAM ポリシー) の使用 - Amazon CloudWatch Logs

CloudWatch Logs でのアイデンティティベースのポリシー (IAM ポリシー) の使用

このトピックでは、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、ロール) へのアクセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。

重要

初めに、CloudWatch Logs リソースへのアクセスを管理するための基本概念と使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「CloudWatch Logs リソースへの許可の管理の概要」を参照してください。

このトピックでは次の内容について説明します。

以下は、アクセス権限ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }

このポリシーには、ロググループとログストリームを作成して、ログストリームにログイベントをアップロードし、ログストリームの詳細を一覧表示する権限を付与する 1 つのステートメントがあります。

このステートメントで Resource 値の末尾のワイルドカード文字 (*) は、任意のロググループに対して logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEvents、および logs:DescribeLogStreams アクションを実行するためのアクセス権限を付与することを意味します。このアクセス権限を特定のロググループに制限するには、リソース ARN 内のワイルドカード文字 (*) を特定のロググループ ARN に置き換えます。IAM ポリシーステートメント内のセクションの詳細については、IAM ユーザーガイドの「IAM JSON ポリシーの要素のリファレンス」を参照してください。すべての CloudWatch Logs アクションを示すリストについては、「CloudWatch Logs の許可リファレンス」を参照してください。

CloudWatch コンソールの使用に必要な許可

CloudWatch コンソールで CloudWatch Logs を使用して作業するユーザーの場合、そのユーザーは、他の AWS リソースを AWS アカウントで記述できる、最小限の許可を持っている必要があります。CloudWatch Logs コンソールで CloudWatch Logs を使用するには、次のサービスからのアクセス許可が必要になります。

  • CloudWatch

  • CloudWatch Logs

  • OpenSearch Service

  • IAM

  • Kinesis

  • Lambda

  • Amazon S3

これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。CloudWatch Logs の AWS マネージド (事前定義) ポリシー で説明されているとおり、ユーザーが CloudWatch コンソールを使用できること、および、CloudWatchReadOnlyAccess 管理ポリシーがユーザーにアタッチされていることを確認してください。

AWS CLI または CloudWatch Logs API のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。

CloudWatch コンソールを使用してログのサブスクリプションを管理していないユーザーが、コンソールを使用するために必要なフルセットのアクセス許可は、次のとおりです。

  • cloudwatch:getMetricData

  • cloudwatch:listMetrics

  • logs:cancelExportTask

  • logs:createExportTask

  • logs:createLogGroup

  • logs:createLogStream

  • logs:deleteLogGroup

  • logs:deleteLogStream

  • logs:deleteMetricFilter

  • logs:deleteQueryDefinition

  • logs:deleteRetentionPolicy

  • logs:deleteSubscriptionFilter

  • logs:describeExportTasks

  • logs:describeLogGroups

  • logs:describeLogStreams

  • logs:describeMetricFilters

  • logs:describeQueryDefinitions

  • logs:describeQueries

  • logs:describeSubscriptionFilters

  • logs:filterLogEvents

  • logs:getLogEvents

  • logs:getLogGroupFields

  • logs:getLogRecord

  • logs:getQueryResults

  • logs:putMetricFilter

  • logs:putQueryDefinition

  • logs:putRetentionPolicy

  • logs:startQuery

  • logs:stopQuery

  • logs:putSubscriptionFilter

  • logs:testMetricFilter

コンソールを使用してログのサブスクリプションを管理するユーザーには、以下のアクセス許可も必要です。

  • es:describeElasticsearchDomain

  • es:listDomainNames

  • iam:attachRolePolicy

  • iam:createRole

  • iam:getPolicy

  • iam:getPolicyVersion

  • iam:getRole

  • iam:listAttachedRolePolicies

  • iam:listRoles

  • kinesis:describeStreams

  • kinesis:listStreams

  • lambda:addPermission

  • lambda:createFunction

  • lambda:getFunctionConfiguration

  • lambda:listAliases

  • lambda:listFunctions

  • lambda:listVersionsByFunction

  • lambda:removePermission

  • s3:listBuckets

CloudWatch Logs の AWS マネージド (事前定義) ポリシー

AWS は、AWS によって作成され管理されるスタンドアロンの IAM ポリシーを提供することで、多くの一般的ユースケースに対応します。マネージドポリシーは、一般的ユースケースに必要な許可を付与することで、どの許可が必要なのかをユーザーが調査する必要をなくすることができます。詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」を参照してください。

アカウントのユーザーとロールにアタッチ可能な以下の AWS マネージドポリシーは、CloudWatch Logs に固有のものです。

  • CloudWatchLogsFullAccess – CloudWatch Logs へのフルアクセスを付与します。

  • CloudWatchLogsReadOnlyAccess – CloudWatch Logs への読み取り専用アクセスを付与します。

CloudWatchLogsFullAccess

CloudWatchLogsFullAccess ポリシーは、CloudWatch Logs へのフルアクセスを付与します。これには、このポリシーを持つユーザーがコンソールを使用して、CloudWatch のクロスアカウントオブザーバビリティでソースアカウントから共有されたデータを表示できるようにするための oam:ListSinks および oam:ListAttachedLinks 許可が含まれます。内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:*", "oam:ListSinks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "oam:ListAttachedLinks" ], "Resource": "arn:aws:oam:*:*:sink/*" } ] }

[CloudWatchLogsReadOnlyAccess]

CloudWatchLogsReadOnlyAccess ポリシーは、CloudWatch Logs への読み取り専用のアクセス権限を付与します。これには、このポリシーを持つユーザーがコンソールを使用して、CloudWatch のクロスアカウントオブザーバビリティでソースアカウントから共有されたデータを表示できるようにするための oam:ListSinks アクセス許可が含まれます。内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:Describe*", "logs:Get*", "logs:List*", "logs:StartQuery", "logs:StopQuery", "logs:TestMetricFilter", "logs:FilterLogEvents", "oam:ListSinks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "oam:ListAttachedLinks" ], "Resource": "arn:aws:oam:*:*:sink/*" } ] }

CloudWatchLogsCrossAccountSharingConfiguration

CloudWatchCrossAccountSharingConfiguration ポリシーは、アカウント間で CloudWatch Logs リソースを共有するための Observability Access Manager リンクを作成、管理、および表示するためのアクセス許可を付与します。詳細については、「CloudWatch のクロスアカウントオブザーバビリティ」を参照してください。

内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:Link", "oam:ListLinks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "oam:DeleteLink", "oam:GetLink", "oam:TagResource" ], "Resource": "arn:aws:oam:*:*:link/*" }, { "Effect": "Allow", "Action": [ "oam:CreateLink", "oam:UpdateLink" ], "Resource": [ "arn:aws:oam:*:*:link/*", "arn:aws:oam:*:*:sink/*" ] } ] }

CloudWatch Logs の AWS マネージドポリシーへの更新

このサービスがこれらの変更の追跡を開始した後の、CloudWatch Logs の AWS マネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動通知を入手するには、CloudWatch Logs ドキュメントの履歴ページから、RSS フィードにサブスクライブしてください。

変更 説明 日付

CloudWatchCrossAccountSharingConfiguration – 新しいポリシー

CloudWatch Logs が、CloudWatch Logs ロググループを共有する CloudWatch クロスアカウントオブザーバビリティのリンクを管理できるようにする新しいポリシーを追加しました。

詳細については、「CloudWatch のクロスアカウントオブザーバビリティ」を参照してください。

2022 年 11 月 27 日

CloudWatchLogsFullAccess — 既存のポリシーへの更新

CloudWatch Logs が、CloudWatchFullAccess に対するアクセス許可を追加しました。

このポリシーを持つユーザーがコンソールを使用して、CloudWatch のクロスアカウントオブザーバビリティでソースアカウントから共有されたデータを表示できるようにするための oam:ListSinks および oam:ListAttachedLinks 許可が追加されました。

2022 年 11 月 27 日

CloudWatchLogsReadOnlyAccess — 既存のポリシーへの更新

CloudWatch Logs が、CloudWatchLogsReadOnlyAccess に対するアクセス許可を追加しました。

このポリシーを持つユーザーがコンソールを使用して、CloudWatch のクロスアカウントオブザーバビリティでソースアカウントから共有されたデータを表示できるようにするための oam:ListSinks および oam:ListAttachedLinks 許可が追加されました。

2022 年 11 月 27 日

カスタマーマネージドポリシーの例

独自のカスタム IAM ポリシーを作成して、CloudWatch Logs アクションとリソースのためのアクセス権限を許可することができます。こうしたカスタムポリシーは、該当するアクセス許可が必要な ユーザーまたはグループにアタッチできます。

このセクションでは、さまざまな CloudWatch Logs アクションのアクセス許可を付与するユーザーポリシー例を示しています。これらのポリシーは、CloudWatch Logs API、AWS SDK、または AWS CLI を使用しているときに機能します。

例 1: CloudWatch Logs へのフルアクセスを許可する

以下のポリシーでは、ユーザーにすべての CloudWatch Logs アクションへのアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*" } ] }

例 2: CloudWatch Logs への読み取り専用アクセスを許可する

AWS には、CloudWatch Logs データへの読み取り専用アクセスを有効にする CloudWatchLogsReadOnlyAccess ポリシーが用意されています。このポリシーには以下のアクセス許可が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:Describe*", "logs:Get*", "logs:List*", "logs:StartQuery", "logs:StopQuery", "logs:TestMetricFilter", "logs:FilterLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }

例 3: 1 つのロググループへのアクセスを許可する

次のポリシーでは、指定した 1 つのロググループのログイベントの読み取りと書き込みをユーザーに許可します。

重要

Resource 行のロググループ名の末尾にある :* は、ポリシーがこのロググループのすべてのログストリームに適用されることを示すために必要です。:* を省略すると、ポリシーは適用されません。

{ "Version":"2012-10-17", "Statement":[ { "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "arn:aws:logs:us-west-2:123456789012:log-group:SampleLogGroupName:*" } ] }

ロググループレベルでのコントロールのためにタグ付けと IAM ポリシーを使用する

他のロググループへのアクセスを防止しながら、特定のロググループへのアクセスをユーザーに許可することができます。これを行うには、ロググループにタグを付け、IAM ポリシーを使用してそれらのタグを参照します。タグをロググループに適用するには、logs:TagResource または logs:TagLogGroup のアクセス許可が必要です。これは、作成時にロググループにタグを割り当てる場合と、後で割り当てる場合の両方に当てはまります。

ロググループのタグ付けの詳細については、「Amazon CloudWatch Logs のロググループにタグを付ける」を参照してください。

ロググループにタグを付けるときは、特定のタグを持つロググループのみにアクセスを許可する IAM ポリシーをユーザーに付与できます。たとえば、以下のポリシーステートメントでは、タグキー Green の値が Team のロググループにのみアクセス権が付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/Team": "Green" } } } ] }

IAM ポリシーステートメントの詳細については、『IAM ユーザーガイド』の「ポリシーを使用したアクセス制御」を参照してください。