Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
É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 Activer la journalisation à partir AWS des services. 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 IAM rôle, qui CloudWatch peut supposer et valider que le compte expéditeur est autorisé à envoyer des journaux au compte 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 { "DestinationArn": "arn:aws:logs:region:999999999999:destination:testDestination", "FilterPattern": "{$.userIdentity.type = Root}", "Distribution": "Random" }
Si vous devez rechercher les valeurs actuelles des paramètres de filtre d'abonnement, saisissez la commande suivante.
aws logs describe-account-policies \ --policy-type "SUBSCRIPTION_FILTER_POLICY" \ --policy-name "CrossAccountStreamsExamplePolicy"
Pour mettre à jour un filtre d'abonnement afin de commencer à utiliser l'organisation IDs pour les autorisations de journalisation entre comptes
Créez la politique de confiance suivante dans un fichier
~/TrustPolicyForCWL.json
. Utilisez un éditeur de texte pour créer ce fichier de règles ; n'utilisez pas la IAM console.{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } }
Créez le IAM rôle qui utilise cette politique. Notez la valeur
Arn
de la valeurArn
qui est renvoyée par la commande ; vous en aurez besoin ultérieurement dans cette procédure. Dans cet exemple, nous utilisonsCWLtoSubscriptionFilterRole
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
Créez une politique d'autorisation pour définir les actions que CloudWatch Logs peut effectuer sur votre compte.
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:*" } ] }
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
Entrez la commande suivante pour mettre à jour la politique de filtrage des abonnements.
aws logs put-account-policy \ --policy-name "CrossAccountStreamsExamplePolicy" \ --policy-type "SUBSCRIPTION_FILTER_POLICY" \ --policy-document '{"DestinationArn":"arn:aws:logs:region:999999999999:destination:testDestination", "FilterPattern": "{$.userIdentity.type = Root}", "Distribution": "Random"}' \ --selection-criteria 'LogGroupName NOT IN ["LogGroupToExclude1", "LogGroupToExclude2"]' \ --scope "ALL"