2017-09-07 32 views
0

我想通過一個lambda函數旋轉了一個新的堆棧,就像這樣:TemplateURL必須引用有效的S3對象,你可以訪問

var cloudformation = new AWS.CloudFormation(); 

cloudformation.createStack({ 
    StackName: 'example', 
    TemplateURL: 'https://s3-eu-west-1.amazonaws.com/my.s3bucket/cloudformationtemplate.yml', 
    Capabilities: ['CAPABILITY_IAM', 'CAPABILITY_NAMED_IAM'], 
    RoleARN: 'arn:aws:iam::1234567890AB:role/myRole' 
}) 

不過,我發現了以下錯誤:

TemplateURL must reference a valid S3 object to which you have access

到目前爲止,我已經嘗試添加...

{ 
    "Effect": "Allow", 
    "Action": [ 
     "s3:GetObject" 
    ], 
    "Resource": [ 
     "arn:aws:s3:::my.s3bucket" 
    ] 
} 

...將myRole(傳遞作爲創建堆棧的RoleARN PARAM ())以及鏈接到lambda本身的IAM執行角色。

然而,沒有運氣。

任何指針讚賞。

回答

0

您還需要添加ListBucket權限。

例:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": ["s3:ListBucket"], 
     "Resource": ["arn:aws:s3:::BUCKET_NAME"] 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:GetObject" 
     ], 
     "Resource": ["arn:aws:s3:::BUCKET_NAME/*"] 
    } 
    ] 
} 
+0

感謝。我會放棄這一點。這應該違反lambda角色或RoleARN角色。我會嘗試兩個。 – Luke

+0

根據你的情況,這應該是在'myRole' –

+0

謝謝@ PSJ - 工作。 – Luke

相關問題