Как избежать зависимостей IAM, предотвращающих удаление CFT, когда на роль ссылаются Профиль IAM и Политика EC2

У меня есть CFT, который имеет эти 5 ресурсов:

MasterAsg:
  Type: AWS::AutoScaling::AutoScalingGroup
  Properties:
    ...
    LaunchConfigurationName:
      Ref: MasterLaunchConfig
MasterLaunchConfig:
  Type: AWS::AutoScaling::LaunchConfiguration
  Properties:
    ...
    IamInstanceProfile:
      Ref: MasterIntanceProfile
MasterIntanceProfile:
  Type: AWS::IAM::InstanceProfile
  Properties:
    Roles:
      - Ref: MasterIamRole
MasterIamRole:
  Type: AWS::IAM::Role
  Properties:
    ...
MasterIamPolicy:
  Type: AWS::IAM::Policy
  Properties:
    Roles:
      - Ref: MasterIamRole
    ...

Ниже приведен чертеж того, как они зависят друг от друга.

График зависимостей ресурсов ЦФТ

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

[MasterIamRole] Cannot delete entity, must detach all policies first. (Service: AmazonIdentityManagement; Status Code: 409; Error Code: DeleteConflict

Как я могу либо изменить способ создания этих ресурсов, либо добавить в этот стек правильный атрибут DependsOn, чтобы в будущем этого не произошло?

1 ответ

Решение

Я подключил политику к роли напрямую, как показано в следующем примере:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html

Другие вопросы по тегам