Как избежать зависимостей 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