AWS CloudTrail Create API for Go SDK выдает сообщение об ошибке НедостаточноS3BucketPolicyException: для сегмента обнаружена неправильная политика сегмента S3:

Я пытаюсь создать облачный трейл с помощью Go SDK. Успешно подключился к AWS без каких-либо проблем, следуя документу AWS.

Я выполнил следующие шаги для создания следа

Шаг 1 - Создан сегмент S3, чтобы в него можно было поместить все файлы журнала трейлов.

CreateS3Bucket: Код

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
}

Успешный ответ:

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

Шаг 2 - Создайте CloudTrail

CreateCloudTrail: Код

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
}

Ответ

"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" 

Кто-нибудь может сказать мне, где я делаю не так. какую политику S3 мне нужно указать при создании трейла

Любая помощь / предложение действительно приветствуется

Ссылка: 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.


person ruman hassan    schedule 24.07.2016    source источник


Ответы (2)


В вашем Cloud Trail должна быть эта политика для корзины S3. Следуйте этому руководству, на шаге есть разные варианты.

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"
                }
            }
        }
    ]
}
person error2007s    schedule 24.07.2016
comment
Спасибо за ответ. В предоставленном вами Руководстве показаны шаги, которые необходимо выполнить через консоль AWS. Есть ли что-то подобное, что я могу сделать с помощью aws-go-sdk. Я имею в виду добавление / указание политики ведра S3 через Go-SDK - person ruman hassan; 25.07.2016
comment
Проверьте это github.com/aws/aws-sdk-go/ tree / master / service / iam есть файл с примером, куда вы можете прикрепить различные политики, проверьте файл examples_test.go. - person error2007s; 25.07.2016
comment
Спасибо большое, у меня это сработало, теперь я могу успешно создать Trail. - person ruman hassan; 25.07.2016

Убедитесь, что после добавления политики, упомянутой в принятом ответе, есть соответствие между name, prefix и accountID вашего сегмента и указанными здесь значениями:

"Resource": "arn:aws:s3:::myBucketName/<prefix>/AWSLogs/myAccountID/*"

Также убедитесь, что постфикс "*" существует.

Неправильная конфигурация приведет к той же ошибке.

person RtmY    schedule 12.08.2020