Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda函数在所有帐户中循环和执行_Amazon Web Services_Aws Lambda_Aws Sdk_Amazon Cloudwatch_Cloudwatch Alarms - Fatal编程技术网

Amazon web services AWS Lambda函数在所有帐户中循环和执行

Amazon web services AWS Lambda函数在所有帐户中循环和执行,amazon-web-services,aws-lambda,aws-sdk,amazon-cloudwatch,cloudwatch-alarms,Amazon Web Services,Aws Lambda,Aws Sdk,Amazon Cloudwatch,Cloudwatch Alarms,我们有一个主帐户和几个子帐户。 我已经编写了一个lambda代码,它正在主帐户中搜索cloud watch警报,并将警报的详细信息发送到Amazon Chime Webhook 当前的要求是使用lambda代码在所有帐户中循环并搜索相应帐户的警报。您可以向附加到lambda函数的角色附加“sts:AssumeRole”权限,并以这种方式对函数进行授权,以便它使用该权限切换到其他帐户 下面是一个链接,您可以从中获取有关如何切换角色的信息: 但要完成以上用例工作,您的主帐户应该创建角色以切换到其他

我们有一个主帐户和几个子帐户。 我已经编写了一个lambda代码,它正在主帐户中搜索cloud watch警报,并将警报的详细信息发送到Amazon Chime Webhook

当前的要求是使用lambda代码在所有帐户中循环并搜索相应帐户的警报。

您可以向附加到lambda函数的角色附加“sts:AssumeRole”权限,并以这种方式对函数进行授权,以便它使用该权限切换到其他帐户

下面是一个链接,您可以从中获取有关如何切换角色的信息:

但要完成以上用例工作,您的主帐户应该创建角色以切换到其他帐户

希望下面的链接能帮助您:


如果您只需要访问CloudWatch事件/日志,您可以启用跨帐户访问,允许您运行监控帐户(建议使用更好的安全性)或主帐户的所有内容

如果您需要访问每个帐户,则需要执行以下操作: -在主帐户中Lambda可以承担的每个帐户中创建IAM角色

  • 在lambda中,主循环看起来像这样
中的accountId的

地区
awsConfig=getAssumeCroleCredationals(accountId,region)//这是一个AWS.Config
ec2=新的AWS.ec2(awsConfig)
结果=ec2.describeInstances()
结束
结束

那么问题是什么?
for accountId in <list of accounts>
  for region in <region list>
     awsConfig = getAssumeRoleCredtionals(accountId, region)  // This is an AWS.Config
     ec2 = new AWS.EC2(awsConfig)
     results = ec2.describeInstances()
  end for
end for