Autorisations du compartiment Amazon S3 pour les journaux de flux - Amazon Virtual Private Cloud

Autorisations du compartiment Amazon S3 pour les journaux de flux

Par défaut, les compartiments Amazon S3 et les objets qu'ils contiennent sont privés. Seul le propriétaire du compartiment peut accéder au compartiment et aux objets qui y sont stockés. Cependant, le propriétaire du compartiment peut accorder l'accès à d'autres ressources et à d'autres utilisateurs en créant une politique d'accès.

Si l'utilisateur qui crée le journal de flux est le propriétaire du compartiment et dispose des autorisations PutBucketPolicy et GetBucketPolicy pour le compartiment, nous attachons automatiquement la stratégie suivante au compartiment. Cette politique remplace toute politique existante attachée au compartiment.

Sinon, le propriétaire du compartiment doit ajouter cette stratégie au compartiment en spécifiant l'ID du compte AWS du créateur du journal de flux. Sinon, la création du journal de flux échoue. Pour plus d'informations, consultez Utilisation de stratégies de compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012", "s3:x-amz-acl": "bucket-owner-full-control" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }

L'ARN que vous spécifiez pour my-s3-arn varie selon que vous utilisez des préfixes S3 compatibles avec Hive.

  • Préfixes par défaut

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  • Préfixes S3 compatibles avec Hive

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*

Une bonne pratique consiste à accorder ces autorisations au principal du service de diffusion de journaux plutôt qu'à des ARN de Compte AWS individuels. Une autre bonne pratique consiste également à utiliser les clés de condition aws:SourceAccount et aws:SourceArn afin de vous protéger contre le problème du député confus. Le compte source est le propriétaire du journal de flux et l'ARN source est l'ARN à caractère générique (*) du service de journaux.

Notez que le service de livraison de journaux appelle l’action d’API Amazon S3 HeadBucket pour vérifier l’existence et l’emplacement du compartiment S3. Il n’est pas nécessaire d’accorder au service de livraison de journaux l’autorisation d’appeler cette action. Il transmettra les journaux de flux VPC même s’il ne peut pas confirmer l’existence et l’emplacement du compartiment S3. Cependant, si vous ne le faites pas, une erreur AccessDenied apparaîtra dans vos journaux CloudTrail pour l’appel de HeadBucket.