当我添加了AWS IAM角色“ AdministratorAccess”时,下面的代码可以工作-但这是有风险的,并且有些过分了……但是我怎么知道并仅找到必要的角色...它是当我查看控制台中所有可能的角色时,会感到非常困惑和难以理解吗?
try {
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'us-east-2'});
var instanceParams = {
ImageId: 'ami-xxxxxxxxxxxx',
InstanceType: 't2.micro',
KeyName: 'xxxxxxxxxx',
SecurityGroups: ['xxxxxxxxxxxxxxx'],
MinCount: 1,
MaxCount: 1
};
// Create a promise on an EC2 service object
var instancePromise = new AWS.EC2({apiVersion: '2016-11-15'}).runInstances(instanceParams).promise();
// Handle promise's fulfilled/rejected states
instancePromise.then(
function (data) {
console.log(data);
var instanceId = data.Instances[0].InstanceId;
console.log("Created instance", instanceId);
// Add tags to the instance
var tagParams = {
Resources: [instanceId], Tags: [
{
Key: 'Name',
Value: 'SDK Sample'
}
]
};
// Create a promise on an EC2 service object
var tagPromise = new AWS.EC2({apiVersion: '2016-11-15'}).createTags(tagParams).promise();
// Handle promise's fulfilled/rejected states
tagPromise.then(
function (data) {
console.log("Instance tagged");
}).catch(
function (err) {
console.error(err, err.stack);
});
}).catch(
function (err) {
console.error(err, err.stack);
});
}
catch(e){
wl.info('Error: ' + e);
}
答案 0 :(得分:0)
首先,您可以看到通过sdk调用的api,以提示您需要哪些权限,即ec2:RunInstance和ec2:CreateTags。
您首先创建一个策略,然后选择服务,然后附加权限(RunInstances和CreateTag)
然后您创建一个附加了该策略的角色。
然后,您可以将角色附加到Lambda