我已经在AWS控制台中创建了一个用户,该用户只能仅访问Lambda服务。
我的问题是,使用无服务器框架,在我的 serverless.yaml 中,是否可以向用户以及可能的任何其他服务添加S3完全访问权限? 谢谢。
handler.js
'use strict';
const aws = require('aws-sdk');
const s3 = new aws.S3({ apiVersion: '2006-03-01' });
module.exports.helloWorld = (event, context, callback) => {
const params = {};
s3.listBuckets(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
const response = {
statusCode: 200,
message: JSON.stringify({message: 'Success!'})
};
callback(null, response);
};
serverless.yaml
provider:
name: aws
runtime: nodejs8.10
region: eu-blah-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:ListBucket"
- "s3:PutObject"
- "s3:GetObject"
Resource: "arn:aws:s3:::examplebucket/*"
functions:
helloWorld:
handler: handler.helloWorld
events:
- http:
path: hello-world
method: get
cors: true
答案 0 :(得分:1)
如果您要引用的是Lambda函数在执行时所拥有的权限,那么在无服务器框架对其进行部署之后,您可以在serverless.yaml
文件的{ {1}}部分。
以下是Lambda与S3交谈,执行其他Lambda和使用SES发送电子邮件的权限示例:
provider