Я создал вложенный стек IAM, который состоит из 3 шаблонов:
- iam-полисы
- роли
-iam пользователь / группы
шаблон мастер-стека выглядит так:
Resources:
Policies:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://s3.amazonaws.com/xxx/iam/iam_policies.yaml
UserGroups:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://s3.amazonaws.com/xxx/iam/iam_user_groups.yaml
Roles:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://s3.amazonaws.com/xxx/iam/iam_roles.yaml
ARN политики экспортируются через секцию Outputs, например:
Outputs:
StackName:
Description: Name of the Stack
Value: !Ref AWS::StackName
CodeBuildServiceRolePolicy:
Description: ARN of the managed policy
Value: !Ref CodeBuildServiceRolePolicy
в шаблоне роли политики ARN импортируются как
CodeBuildRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub ${EnvironmentName}-CodeBuildRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Action:
- 'sts:AssumeRole'
Effect: Allow
Principal:
Service:
- codebuild.amazonaws.com
Path: /
ManagedPolicyArns:
- !GetAtt
- Policies
- Outputs.CodeBuildServiceRolePolicy
Но когда я пытаюсь создать стек, он терпит неудачу, говоря, что стек ролей не может быть создан, потому что
Template error: instance of Fn::GetAtt references undefined resource Policies
Как я могу сначала принудительно создать политики, чтобы второй и третий шаблоны могли использовать политики для создания ролей и пользователей / групп? Или проблема в другом месте?
merci A