Макрос кросс-аккаунта Cloudformation - PullRequest
2 голосов
/ 14 февраля 2020

Я пытаюсь создать макрос для кросс-аккаунта, который будет использоваться в Cloudformation. В соответствии с do c - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html мы должны создавать макросы в разных учетных записях, но базовую лямбду можно использовать повторно, сделав ее доступной для нескольких учетных записей.

Пример примера:

Учетная запись A

В Account_A (2 22222222222) я создал лямбда-функцию "TestMacroFunction", которая используется в макросе.

У меня есть добавлена ​​следующая политика доверия:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com",
        "AWS": "arn:aws:iam::483427547108:role/service-role/TestLambdaInvoker-role-lu7aa94t"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Учетная запись B

В Account_B (111111111111), которая будет иметь стек облачной информации для макроса и другой стек, который будет использовать макрос.

CFN для макроса

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
    "SageMakerEndpointAlarmsMacro": {
      "Type": "AWS::CloudFormation::Macro",
      "Properties": {
        "Name": "ExternalMacro",
        "FunctionName": "arn:aws:lambda:us-east-2:111111111111:function:TestMacroFunction",
        "LogGroupName": "MacroLogGroup"
      }
    }
  }
}

CFN для стека с использованием макроса:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": [
    "ExternalMacro"
  ],
  "Resources": {
    "TestBucket": {
      "Type": "AWS::S3::Bucket",
      "Properties": {}
    }
  }
}

При запуске стека CFN я предоставляю роль, к которой прикреплена следующая политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": "arn:aws:lambda:us-east-2:111111111111:function:TestMacroFunction",
            "Effect": "Allow"
        }
    ]
}

Но все же я получаю ошибку в облачной информации. Преобразование в не выполняется. Также не вызывается лямбда-функция.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...