CloudWatch Logs でのアイデンティティベースのポリシー (IAM ポリシー) の使用
このトピックでは、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、ロール) へのアクセス権限ポリシーをアタッチする、アイデンティティベースのポリシーの例を示します。
初めに、CloudWatch Logs リソースへのアクセスを管理するための基本概念と使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「CloudWatch Logs リソースへの許可の管理の概要」を参照してください。
CloudWatch Logs は、aws:Resource/
または key-name
aws:TagKeys
条件キーを使用してユーザーが指定したタグをロググループに割り当てることを禁止する IAM ポリシーをサポートしていません。さらに、DescribeLogGroups
条件キーを使用して aws:ResourceTag/
アクションへのアクセスを制御することはできません。他の CloudWatch Logs アクションでは、key-name
aws:ResourceTag/
条件キーを使用してアクセスを制御できます。リソースへのアクセスを制御するタグの使用の詳細については、タグを使用した Amazon Web Services のリソースへのアクセスの制御を参照してください。key-name
このトピックでは次の内容について説明します。
以下は、アクセス権限ポリシーの例です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
このポリシーには、ロググループとログストリームを作成して、ログストリームにログイベントをアップロードし、ログストリームの詳細を一覧表示する権限を付与する 1 つのステートメントがあります。
このステートメントで Resource
値の末尾のワイルドカード文字 (*) は、任意のロググループに対して logs:CreateLogGroup
、logs:CreateLogStream
、logs: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 ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。AWSCloudWatch Logs の マネージド (事前定義) ポリシー で説明されているとおり、ユーザーが 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:describeSubscriptionFilters
logs:filterLogEvents
logs:getLogEvents
logs:putMetricFilter
logs:putQueryDefinition
logs:putRetentionPolicy
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
AWSCloudWatch Logs の マネージド (事前定義) ポリシー
AWS は、 によって作成され管理されるスタンドアロンの IAM ポリシーを提供することで、多くの一般的ユースケースに対応します。AWS管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすることができます。詳細については、IAM ユーザーガイドの「AWS 管理ポリシー」を参照してください。
アカウントのユーザーとロールにアタッチ可能な以下の AWS マネージドポリシーは、CloudWatch Logs に固有のものです。
CloudWatchLogsFullAccess – CloudWatch Logs へのフルアクセスを付与します。
CloudWatchLogsReadOnlyAccess – CloudWatch Logs への読み取り専用アクセスを付与します。
CloudWatchLogsFullAccess
CloudWatchLogsFullAccess ポリシーは、CloudWatch Logs へのフルアクセスを付与します。内容は次のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*" } ] }
[CloudWatchLogsReadOnlyAccess]
CloudWatchLogsReadOnlylAccess ポリシーは、CloudWatch Logs への読み取り専用のアクセス権限を付与します。内容は次のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:Describe*", "logs:Get*", "logs:List*", "logs:StartQuery", "logs:StopQuery", "logs:TestMetricFilter", "logs:FilterLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }
お客様のマネージドポリシーの例
独自のカスタム IAM ポリシーを作成して、CloudWatch Logs アクションとリソースのためのアクセス権限を許可することができます。これらのカスタムポリシーは、それらのアクセス許可が必要な IAM ユーザーまたはグループにアタッチできます。
このセクションでは、さまざまな 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 つのロググループのログイベントの読み取りと書き込みをユーザーに許可します。
{ "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 ポリシーを使用してそれらのタグを参照します。
ロググループのタグ付けの詳細については、「Amazon CloudWatch Logs のロググループにタグを付ける」を参照してください。
ロググループにタグを付けるときは、特定のタグを持つロググループのみにアクセスを許可する IAM ポリシーをユーザーに付与できます。たとえば、以下のポリシーステートメントでは、タグキー Green
の値が Team
のロググループにのみアクセス権が付与されます。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/Team": "Green" } } } ] }
IAM ポリシーステートメントの詳細については、IAM ユーザーガイドのポリシーを使用したアクセス制御を参照してください。