1

J'essaie de créer un cloudtrail à l'aide de Go SDK. Vous avez réussi à vous connecter à AWS sans problème en suivant le document AWS.AWS CloudTrail Create API pour l'erreur de lancement du SDK Go mesage "InsufficientS3BucketPolicyException: Une stratégie de compartiment S3 incorrecte est détectée pour le compartiment:"

I ci-dessous Suivi étapes de création d'un sentier

Etape 1 - Création S3 Bucket, de sorte que tous les fichiers journaux de piste peuvent être placés dans ce seau.

CreateS3Bucket: Code

func CreateS3Bucket(bucketName string) error { 
bucketName := "s3-bucket-123" 
svc := s3.New(session.New(&aws.Config{Region: aws.String("us-east-1")})) 

params := &s3.CreateBucketInput{ 
    Bucket: aws.String(bucketName), // Required 
} 
resp, err1 := svc.CreateBucket(params) 

if err1 != nil { 
    // Print the error, cast err to awserr.Error to get the Code and 
    // Message from an error. 
    log.Errorf("S3 Bucket Creation Fails: %s", err1.Error()) 
    errs := errors.New("500") 
    return errs 
} 

// Pretty-print the response data. 
log.Infof("Bucket Successfully created: %s", resp) 
return nil 
} 

Réponse du succès:

{\n Location: \"/s3-bucket-123\"\n}" 

Etape 2 - Créer CloudTrail

CreateCloudTrail:code

func (ref *AwsCloudTrail) CreateCloudTrail(bucketName, trailName string) error { 
svc := cloudtrail.New(session.New(&aws.Config{Region: aws.String("us-east-1")})) 

//bucketName is "s3-bucket-123" and trailName is cloudtrail123 

params := &cloudtrail.CreateTrailInput{ 
    Name:      aws.String(trailName), // Required 
    S3BucketName:    aws.String(bucketName), // Required 
} 

resp, errs := svc.CreateTrail(params) 

if errs != nil { 
    // Print the error, cast err to awserr.Error to get the Code and 
    // Message from an error. 
    log.Errorf("Error while creating trail %v",errs.Error()) 
    err := errors.New("500") 
    return err 
} 

// Pretty-print the response data. 
log.Infof("create trail response: %s",resp) 

return nil 
} 

Réponse

"Error while creating trail InsufficientS3BucketPolicyException: Incorrect S3 bucket policy is detected for bucket: s3-bucket-123\n\tstatus code: 400, request id: 203d63d6-51ea-11e6-bb2c-b5d25b86e418" 

Quelqu'un peut-il s'il vous plaît me dire où je fais mal. ce S3 politique ai-je besoin de préciser lors de la création Trail

Toute aide/Suggestion est vraiment apprécié

Référence: https://docs.aws.amazon.com/sdk-for-go/api/service/cloudtrail/#CloudTrail.CreateTrail

https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#S3.CreateBucket

Répondre

0

votre Cloud Trail devrait avoir cette politique pour le seau S3 . Suivez ce guide il y a différentes options dans l'étape.

http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-s3-bucket-policy-for-cloudtrail.html

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "AWSCloudTrailAclCheck20150319", 
      "Effect": "Allow", 
      "Principal": { 
       "Service": "cloudtrail.amazonaws.com" 
      }, 
      "Action": "s3:GetBucketAcl", 
      "Resource": "arn:aws:s3:::myBucketName" 
     }, 
     { 
      "Sid": "AWSCloudTrailWrite20150319", 
      "Effect": "Allow", 
      "Principal": { 
       "Service": "cloudtrail.amazonaws.com" 
      }, 
      "Action": "s3:PutObject", 
      "Resource": "arn:aws:s3:::myBucketName/[optional prefix]/AWSLogs/myAccountID/*", 
      "Condition": { 
       "StringEquals": { 
        "s3:x-amz-acl": "bucket-owner-full-control" 
       } 
      } 
     } 
    ] 
} 
+0

Merci pour la réponse. Le guide que vous avez fourni indique les étapes à suivre via la console AWS. Est-ce qu'il y a quelque chose de similaire que je peux faire avec aws-go-sdk? Je veux dire ajouter/spécifier la politique de compartiment S3 par Go-SDK –

+0

Cochez cette https://github.com/aws/aws-sdk-go/tree/master/service/iam il y a un exemple de fichier où vous pouvez attacher différentes politiques vérifier fichier examples_test.go. – error2007s

+0

Merci beaucoup, cela a fonctionné pour moi, capable de créer Trail avec succès maintenant. –