Функции AWS SDK runinstance и IAM - PullRequest
       26

Функции AWS SDK runinstance и IAM

0 голосов
/ 15 января 2019

Приведенный ниже код работает, когда я добавил роль 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);
        }

1 Ответ

0 голосов
/ 15 января 2019

Во-первых, вы можете увидеть API-интерфейсы, которые вы вызываете через SDK, как подсказку о том, какие разрешения вам нужны, то есть ec2: RunInstance и ec2: CreateTags.

Сначала вы создаете политику, затем выбираете службу, затем прикрепляете разрешения (RunInstances и CreateTags)

Затем вы создаете роль с этой политикой.

Тогда вы можете прикрепить роль к своей лямбде

...