AWS Cross Account

时间:2017-08-05 04:06:08

标签: amazon-dynamodb amazon-iam

我有2个AWS账户。

AccountA:

  • LambdaA假定在AccountB
  • 中创建了RoleB
  • LambdaA尝试在AccountB中创建DynamoDB表

AccountB:

  • RoleB设置为允许AccountA拥有对DynamoDB的完全访问权限

LambdaA顺利担任角色。 但DynamoDB表是在AccountA中创建的。

从语法上,您如何指定应在AccountB中创建DynamoDB表?

exports.handler= function(event, context, callback) {
  assumeRole(function(err, res) {
    if(err) { context.fail("ASSUME_ROLE::" + err.toString()); return; }
    createTable(function(err, res) {
      if(err) { context.fail("CREATE_TABLE::" + err.toString()); return; }
    });
  });
}

var assumeRole= function(callback) {
  var params= {
    RoleArn: "arn:aws:iam::123:role/Role",
    RoleSessionName: "role",
    ExternalId: "role"
  };
  sts.assumeRole(params, function(err, res) {
    err ? callback(err) : callback(null, res);
  });
}

var createTable= function(callback) {
  var params= {
    TableName: "TEST",
    KeySchema: [
      { AttributeName: "test", KeyType: "HASH"}
    ],
    AttributeDefinitions: [
      { AttributeName: "test", AttributeType: "S" },
    ],
    ProvisionedThroughput: {
      ReadCapacityUnits: 10,
      WriteCapacityUnits: 10
    }
  }
  dynamo.createTable(params, function(err, res) {
    err ? callback(err) : callback(null, res);
  });
}

0 个答案:

没有答案