title: AWS SDK runinstance and IAM roles
body: <p>The code below works when I have added the AWS IAM role "AdministratorAccess" - But it is risky and a bit of overkill... But how do I know and find only the necessary role(s)...It is very confusing and hard to know by when I look at all the possible roles in the console?</p>
  
  <pre><code>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);
          }
  </code></pre>