Вызов пошаговой функции в учетной записи A из лямбды в учетной записи B с помощью cdk - PullRequest
0 голосов
/ 05 августа 2020

У меня есть стек лямбда-выражений, развернутый в учетной записи A, и средство развертывания стека пошаговых функций в учетной записи B. Как мне вызвать эту пошаговую функцию из лямбда-выражения с помощью python cdk? какие конкретно разрешения мне нужно им дать?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Лямбда (учетная запись A) имеет назначенную роль IAM (RoleA). Функция Step (учетная запись B) имеет назначенную роль IAM (RoleB).

Разрешения

  1. Роль IAM лямбда-выражения должна иметь разрешение на принятие роли от (Account B )

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": "*"
        }
      ]
    }
    
  2. Роль IAM функций Step (роль B) должна иметь надежную политику, которая позволяет роли IAM Lambda принимать ее. в следующей политике доверия 123456789012 - это номер счета A

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::123456789012:root"
            ]
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

Внутри лямбда

  1. Лямбда должна иметь код который принимает на себя роль (Роль B) от учетной записи B и получает временные учетные данные

  2. Используя эти учетные данные, лямбда-функция должна вызывать функцию step.

Как принять на себя роль IAM в другой учетной записи, отличной от лямбда

0 голосов
/ 05 августа 2020

Если вы хотите что-то запустить при развертывании cdk:

Кажется странным вариантом использования, но я думаю, что решение здесь - определить собственный ресурс. Как cdk, так и cloudformation поддерживают следующее:

https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html

Потому что вы используете настраиваемый ресурс вам нужно будет дополнительно обрабатывать события Create, Update, Delete самостоятельно. Точно так же отправляйте ответы о завершении, я бы посоветовал вам использовать cfnresponsemodule для отправки ответов о завершении, иначе cdk никогда не сможет определить, когда ваша пользовательская функция ресурса завершена:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html

...