2016-02-22 4 views
7

Come posso trovare il mio ID account AWS utilizzando JavaScript/NodeJS?Trovare il mio ID account AWS utilizzando JavaScript

Dovrebbe funzionare quando si forniscono esplicitamente chiavi per un account root o utente IAM. Dovrebbe funzionare anche quando viene richiamato all'interno di un'istanza ec2 configurata con profilo di istanza (nessuna chiave).

risposta

2

Il seguente frammento stamperà l'ID account utilizzando nodejs e ultima AWS-sdk:

var AWS = require('aws-sdk'); 
var iam = new AWS.IAM(); 
var metadata = new AWS.MetadataService() 

var _ = iam.getUser({}, (err, data) => { 
    if (err) 
    metadata.request('/latest/meta-data/iam/info/', (err, data) => { 
     if (err) console.log(err, err.stack); 
     else console.log(JSON.parse(data).InstanceProfileArn.split(':')[4]); 
    }); 
    else 
    console.log(data.User.Arn.split(':')[4]); 
}); 
3

Il modo migliore è tramite "Security Token Service":

var AWS = require('aws-sdk'); 
// Load credentials and set region from JSON file 
AWS.config.loadFromPath('./config.json'); 

var sts = new AWS.STS(); 
sts.getCallerIdentity({}, function(err, data) { 
    if (err) { 
     console.log("Error", err); 
    } else { 
     console.log(JSON.stringify(data.Account)); 
    } 
}); 

Questo sarebbe stampare l'ID account con un semplice chiamata.