Utilisation des politiques basées sur l'identité (politiques IAM) pour CloudWatch Logs - Amazon CloudWatch Logs

Utilisation des politiques basées sur l'identité (politiques IAM) pour CloudWatch Logs

Cette rubrique fournit des exemples de politiques basées sur une identité dans lesquelles un administrateur de compte peut attacher des politiques d'autorisation aux identités IAM (c'est-à-dire aux utilisateurs, groupes et rôles).

Important

Nous vous recommandons tout d'abord d'examiner les rubriques de présentation qui détaillent les concepts de base et les options disponibles pour gérer l'accès à vos ressources CloudWatch Logs. Pour plus d'informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources CloudWatch Logs.

Note

CloudWatch Logs ne prend pas en charge les politiques IAM qui empêchent les utilisateurs d'attribuer des identifications spécifiées à des groupes de journaux à l'aide des clés de condition aws:ResourceTag/key-name ou aws:TagKeys. En outre, vous ne pouvez pas contrôler l'accès à l'action DescribeLogGroups en utilisant la clé de condition aws:ResourceTag/key-name . Les autres actions CloudWatch Logs prennent en charge l'utilisation de la clé de condition aws:ResourceTag/key-name pour contrôler l'accès. Pour plus d'informations sur l'utilisation d'identifications pour contrôler l'accès, consultez Contrôle de l'accès aux ressources Amazon Web Services à l'aide d'identifications.

Cette rubrique aborde les points suivants :

Un exemple de stratégie d'autorisation est exposé ci-dessous :

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

Cette stratégie comporte une instruction qui accorde des autorisations pour créer des groupes et des flux de journaux, pour télécharger des événements de journaux et pour répertorier des détails sur les flux de journaux.

Le caractère générique (*) à la fin de la valeur Resource signifie que l'instruction permet l'autorisation des actions logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents et logs:DescribeLogStreams sur tout groupe de journaux. Pour limiter cette autorisation à un groupe de journaux spécifique, remplacez le caractère générique (*) de l'ARN de la ressource par l'ARN du groupe de journaux spécifique. Pour plus d'informations sur les éléments d'une déclaration de politique IAM, consultez Références des éléments de politique IAM dans le Guide de l'utilisateur IAM. Pour une liste de toutes les actions CloudWatch Logs, consultez Référence des autorisations CloudWatch Logs.

Autorisations requises pour utiliser la console CloudWatch

Pour qu'un utilisateur puisse travailler avec CloudWatch Logs dans la console CloudWatch, il doit disposer d'un ensemble minimal d'autorisations qui lui permet de décrire d'autres ressources AWS de son compte AWS. Afin d'utiliser CloudWatch Logs dans la console CloudWatch, vous devez disposer des autorisations des services suivants :

  • CloudWatch

  • CloudWatch Logs

  • OpenSearch Service

  • IAM

  • Kinesis

  • Lambda

  • Simple Storage Service (Amazon S3)

Si vous créez une politique IAM plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les utilisateurs dotés de cette politique IAM. Pour garantir que ces utilisateurs puissent continuer à utiliser la console CloudWatch, attachez également la politique gérée CloudWatchReadOnlyAccess à l'utilisateur, comme décrit dans Politiques AWS gérées (prédéfinies) pour CloudWatch Logs.

Vous n'avez pas besoin d'accorder les autorisations minimales de console pour les utilisateurs qui effectuent des appels uniquement à l'interface AWS CLI ou API CloudWatch Logs.

Voici l'ensemble complet d'autorisations requises par la console CloudWatch pour un utilisateur qui ne se sert pas de la console pour gérer les abonnements aux journaux :

  • 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

Pour un utilisateur qui se servira également de la console pour gérer les abonnements aux journaux, les autorisations suivantes sont requises :

  • 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

Politiques AWS gérées (prédéfinies) pour CloudWatch Logs

AWS est approprié pour de nombreux cas d'utilisation courants et fournit des politiques IAM autonomes qui sont créées et administrées par AWS. Les politiques gérées octroient les autorisations requises dans les cas d'utilisation courants et vous évitent d'avoir à réfléchir aux autorisations qui sont requises. Pour plus d'informations, consultez Politiques gérées par AWS dans le Guide de l'utilisateur IAM.

Les politiques gérées AWS suivantes, que vous pouvez attacher aux utilisateurs et aux rôles de votre compte, sont propres à CloudWatch Logs :

  • CloudWatchLogsFullAccess : Accorde un accès complet à CloudWatch Logs.

  • CloudWatchLogsReadOnlyAccess : Accorde l'accès en lecture seule à CloudWatch Logs.

CloudWatchLogsFullAccess

La politique CloudWatchLogsFullAccess accorde un accès complet à CloudWatch Logs. Le contenu est le suivant :

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

CloudWatchLogsReadOnlyAccess

La politique CloudWatchLogsReadOnlyAccess accorde l'accès en lecture seule à CloudWatch Logs. Le contenu est le suivant :

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

Exemples de politiques gérées par le client

Vous pouvez créer vos propres politiques IAM personnalisées, afin d'accorder des autorisations pour les actions et les ressources CloudWatch Logs. Vous pouvez attacher ces politiques personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations.

Dans cette section, vous trouverez des exemples de politiques utilisateur qui accordent des autorisations pour diverses actions CloudWatch Logs. Ces politiques fonctionnent lorsque vous utilisez les API CloudWatch Logs, les kits SDK AWS ou la AWS CLI.

Exemple 1 : Autoriser l'accès complet à CloudWatch Logs

La politique suivante permet à un utilisateur d'accéder à toutes les actions CloudWatch Logs.

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

Exemple 2 : Autoriser l'accès en lecture seule à CloudWatch Logs

AWS fournit une politique CloudWatchLogsReadOnlyAccess qui permet l'accès en lecture seule aux données CloudWatch Logs. Cette politique inclut les autorisations suivantes.

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

Exemple 3 : Autoriser l'accès à un groupe de journaux

La stratégie suivante permet à un utilisateur de lire et d'écrire des événements de journaux dans un groupe de journaux spécifié.

Important

Le :* à la fin du nom du groupe de journaux dans la ligne Resource est obligatoire pour indiquer que la stratégie s'applique à tous les flux de journaux de ce groupe de journaux. Si vous omettez :*, la politique ne sera pas appliquée.

{ "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:*" } ] }

Utilisation de l'étiquetage, et des politiques IAM pour le contrôle au niveau du groupe de journaux

Vous pouvez accorder aux utilisateurs l'accès à certains groupes de journaux tout en leur empêchant d'accéder à d'autres groupes de journaux. Pour ce faire, étiquetez vos groupes de journaux et utilisez les politiques IAM qui font référence à ces identifications.

Pour plus d'informations sur le balisage des groupes de journaux, consultez Étiquetage des groupes de journaux dans Amazon CloudWatch Logs.

Lorsque vous étiquetez les groupes de journaux, vous pouvez ensuite accorder une politique IAM à un utilisateur pour autoriser l'accès uniquement aux groupes de journaux associés à une identification particulière. Par exemple, la déclaration de stratégie suivante accorde l'accès uniquement aux groupes de journaux avec la valeur de Green pour la clé de balise Team.

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

Pour plus d'informations sur l'utilisation des instructions de politique IAM, consultez Contrôle de l'accès à l'aide des politiques dans le Guide de l'utilisateur IAM.