2017-07-10 3 views
0

Je n'arrive pas à essayer de créer des notifications d'événement s3. Est-ce que quelqu'un connaît les résolutions à cela?Erreur de notification d'événement Terraform s3

erreur est:

*Error applying plan: 
1 error(s) occurred: 
* module.Test-S3-Bucket.aws_s3_bucket_notification.s3-notification: 1 error(s) occurred: 
* aws_s3_bucket_notification.s3-notification: Error putting S3 notification configuration: InvalidArgument: Unable to validate the following destination configurations 
status code: 400, request id: AD9B5BF2FF84A6CB, host id: ShUVJ+TdkpqAZfpeDM3grkF9Vue3Q/AF0LydchperKTF6XdQyDM6BisZi/38pGAh/ZqS+gNyrSM=* 

est le code ci-dessous qui me donne l'erreur:

resource "aws_s3_bucket" "s3-bucket" { 
    bucket = "${var.bucket_name}" 
    acl = "" 

    lifecycle_rule { 
    enabled = true 
    prefix = "" 

    expiration { 
     days = 45 
    } 
    } 

    tags { 
    CostC = "${var.tag}" 
    } 
} 


resource "aws_s3_bucket_notification" "s3-notification" { 

    bucket = "${var.bucket_name}" 

    topic { 
    topic_arn  = "arn:aws:sns:us-east-1:1223445555:Test" 
    events  = [ "s3:ObjectCreated:*", "s3:ObjectRemoved:*" ] 
    filter_prefix = "test1/" 
    } 
} 
+0

Comme je l'ai expliqué dans votre autre question, l'erreur est liée au problème décrit dans https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-destination-s3/, et si vous le pouvez ' Pour le faire fonctionner en suivant les résolutions de ce document, veuillez contacter AWS pour obtenir de l'aide. – BMW

Répondre

0

Si vous ne l'avez pas déjà fait, vous devez spécifier une politique sur le sujet qui accorde l'autorisation SNS:Publish à S3 (uniquement à partir du compartiment spécifié dans l'attribut Condition) - si vous fournissez également le sujet via Terraform, alors quelque chose comme ça devrait le faire (nous savons, car il nous a également surpris il y a quelques jours!):

resource "aws_sns_topic" "my-sns-topic" { 
    name = "Test" 
    policy = <<POLICY 
{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
     "Effect": "Allow", 
     "Principal": { 
      "Service": "s3.amazonaws.com" 
      }, 
     "Action": "SNS:Publish", 
     "Resource": "arn:aws:sns:us-east-1:1223445555:Test", 
     "Condition":{ 
      "ArnLike":{"aws:SourceArn":"${aws_s3_bucket.s3-bucket.arn}"} 
     } 
    }] 
} 
POLICY 
} 

Espérons que ça aide.