Stratégies IAM pour utiliser CloudWatch RUM - Amazon CloudWatch

Stratégies IAM pour utiliser CloudWatch RUM

Pour pouvoir gérer entièrement CloudWatch RUM, vous devez être connecté en tant qu'utilisateur IAM ou à un rôle disposant de la stratégie IAM AmazonCloudWatchRUMFullAccess. En outre, vous aurez peut-être besoin d'autres stratégies ou autorisations :

  • Pour créer un moniteur d'application qui génère un nouveau groupe d'identités Amazon Cognito à des fins d'autorisation, vous devez disposer du rôle IAM Admin (Administrateur) ou de la stratégie IAM AdministratorAccess.

  • Pour créer un moniteur d'application qui envoie des données à CloudWatch Logs, vous devez être connecté à un rôle ou à une stratégie IAM disposant de l'autorisation suivante :

    { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "*" ] }
  • Pour activer les fichiers de sourçage JavaScript dans un moniteur d’application, vous devez charger vos fichiers de carte de sources dans un compartiment Amazon S3. Votre rôle ou votre politique IAM nécessite des autorisations Amazon S3 spécifiques qui permettent de créer des compartiments Amazon S3, de définir des politiques de compartiment et de gérer les fichiers du compartiment. Pour des raisons de sécurité, limitez ces autorisations à des ressources spécifiques. L’exemple de politique ci-dessous restreint l’accès aux compartiments dont le nom contient rum, et utilise la clé de condition aws:ResourceAccount pour limiter les autorisations au compte principal uniquement.

    { "Sid": "AllowS3BucketCreationAndListing", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "AllowS3BucketActions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*rum*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "AllowS3BucketPolicyActions", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::*rum*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "AllowS3ObjectActions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::*rum*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }
  • Pour utiliser vos propres clés AWS KMS pour le chiffrement côté serveur dans votre compartiment destiné aux fichiers de sourçage, votre rôle IAM doit inclure des autorisations AWS KMS spécifiques, permettant la création d’une clé, la mise à jour de sa stratégie de clé, l’utilisation de la clé AWS KMS avec Amazon S3 et la configuration du chiffrement du compartiment Amazon S3. Pour des raisons de sécurité, limitez ces autorisations à des usages précis. L’exemple ci-dessous restreint l’accès aux clés d’une région et d’un accountId spécifiques, et applique des restrictions S3 similaires à celles de l’exemple précédent.

    { "Sid": "AllowKMSKeyCreation", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:CreateAlias" ], "Resource": "*" }, { "Sid": "KMSReadPermissions", "Effect": "Allow", "Action": [ "kms:ListAliases" ], "Resource": "*" }, { "Sid": "AllowUpdatingKeyPolicy", "Effect": "Allow", "Action": [ "kms:PutKeyPolicy", "kms:GetKeyPolicy", "kms:ListKeyPolicies" ], "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*" }, { "Sid": "AllowUseOfKMSKeyForS3", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/*" }, { "Sid": "AllowS3EncryptionConfiguration", "Effect": "Allow", "Action": [ "s3:PutEncryptionConfiguration", "s3:GetEncryptionConfiguration" ], "Resource": "arn:aws:s3:::*rum*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }

Pour les autres utilisateurs qui ont besoin de consulter les données CloudWatch RUM, mais qui n'ont pas besoin de créer des ressources CloudWatch RUM, il est possible de leur accorder la stratégie AmazonCloudWatchRUMReadOnlyAccess.