Étape 1 : mettre à jour les filtres d'abonnement - Amazon CloudWatch Logs

Étape 1 : mettre à jour les filtres d'abonnement

Note

Cette étape est nécessaire uniquement pour les abonnements entre comptes pour les journaux créés par les services répertoriés dans Activation de la journalisation à partir de certains services AWS. Si vous ne travaillez pas avec les journaux créés par l'un de ces groupes de journaux, vous pouvez passer à Étape 2 : mettre à jour la stratégie d'accès de la destination existante.

Dans certains cas, vous devez mettre à jour les filtres d'abonnement dans tous les comptes d'expéditeur qui envoient des journaux au compte de destination. La mise à jour ajoute un rôle IAM, que CloudWatch peut remplir et vérifier que le compte de l'expéditeur est autorisé à envoyer des journaux au compte du destinataire.

Suivez les étapes de cette section pour chaque compte d'expéditeur que vous souhaitez mettre à jour, afin qu'il utilise l'ID d'organisation pour les autorisations d'abonnement entre comptes.

Dans les exemples présentés dans cette section, deux comptes, 111111111111 et 222222222222, disposent de filtres d'abonnement pour envoyer des journaux au compte 999999999999. Les valeurs de filtre d'abonnement existantes sont les suivantes :

## Existing Subscription Filter parameter values \ --log-group-name "my-log-group-name" \ --filter-name "RecipientStream" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination"

Si vous devez rechercher les valeurs actuelles des paramètres de filtre d'abonnement, saisissez la commande suivante.

aws logs describe-subscription-filters \ --log-group-name "my-log-group-name"

Pour mettre à jour un filtre d'abonnement et commencer à utiliser des ID d'organisations pour les autorisations de journaux entre comptes

  1. Créez la politique de confiance suivante dans un fichier /TrustPolicyForCWL.json. Utilisez un éditeur de texte pour créer ce fichier de politique, n'utilisez pas la console IAM.

    { "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  2. Créez le rôle IAM qui utilise cette politique. Notez la valeur Arn de la valeur Arn qui est renvoyée par la commande ; vous en aurez besoin ultérieurement dans cette procédure. Dans cet exemple, nous utilisons CWLtoSubscriptionFilterRole pour connaître le nom du rôle que nous créons.

    aws iam create-role \ --role-name CWLtoSubscriptionFilterRole \ --assume-role-policy-document file://~/TrustPolicyForCWL.json
  3. Créez une politique d'autorisations pour définir les actions que CloudWatch Logs peut réaliser sur votre compte.

    1. Utilisez d'abord un éditeur de texte pour créer la politique d'autorisations suivante dans un fichier nommé /PermissionsForCWLSubscriptionFilter.json.

      { "Statement": [ { "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:region:111111111111:log-group:LogGroupOnWhichSubscriptionFilterIsCreated:*" } ] }
    2. Saisissez la commande suivante pour associer la politique d'autorisations que vous venez de créer au rôle que vous avez créé à l'étape 2.

      aws iam put-role-policy \ --role-name CWLtoSubscriptionFilterRole \ --policy-name Permissions-Policy-For-CWL-Subscription-filter \ --policy-document file://~/PermissionsForCWLSubscriptionFilter.json
  4. Saisissez la commande suivante pour mettre à jour le filtre d'abonnement.

    aws logs put-subscription-filter \ --log-group-name "my-log-group-name" \ --filter-name "RecipientStream" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination" \ --role-arn "arn:aws:iam::111111111111:role/CWLtoSubscriptionFilterRole"