AWS лямбда-функция до l oop и выполняется во всех аккаунтах - PullRequest
0 голосов
/ 24 января 2020

У нас есть основная учетная запись и несколько дополнительных учетных записей. Я написал лямбда-код, который ищет предупреждения об облаке в главной учетной записи и отправляет сведения о них в Amazon Chime Webhook.

В настоящее время требуется использовать лямбда-код для l oop через все учетные записи и поиск аварийных сигналов соответствующих учетных записей.

Ответы [ 2 ]

1 голос
/ 24 января 2020

Если вам нужен только доступ к событиям / журналам CloudWatch, вы можете включить кросс-аккаунт, позволяющий запускать все из учетной записи мониторинга (рекомендуется для большей безопасности) или из вашей основной учетной записи.

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html

Если вам нужен доступ к каждой учетной записи, вам нужно будет сделать следующее: - Создать роль IAM в каждой учетной записи, которую Lambda может принять в качестве основной учетной записи

  • В вашей лямбде ваш главный l oop будет выглядеть примерно так.
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
0 голосов
/ 24 января 2020

Вы можете прикрепить "sts: AssumeRole" к роли, связанной с вашей лямбда-функцией, и настроить вашу функцию таким образом, чтобы она использовала это разрешение для переключения на другие учетные записи.

Ниже приведена ссылка, по которой вам может быть полезна информация о том, как вы можете поменяться ролями:

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html

Но чтобы работать над прецедентом, вы ' У главной учетной записи должна быть роль, созданная для переключения на другие учетные записи.

Надеюсь, что ссылка ниже поможет вам:

AWS: Boto3: пример AssumeRole, который включает использование роли

...