Я пытаюсь выполнить модульное тестирование моего приложения CDK. У меня создана роль, и я хочу убедиться, что в ней назначены все политики. Поскольку роли и политики - это разные ресурсы, политики недоступны из ресурса Cloud Formation Role. Роль имеет только ссылку на политику:
"MyRole4CBCE4C9": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [
{
...
}
],
"Version": "2012-10-17"
},
"ManagedPolicyArns": [
{
"Ref": "MyPolicyC18AB378"
}
]
},
В тесте у меня есть:
expectCDK(stack).to(haveResource("AWS::IAM::Role", {
AssumeRolePolicyDocument: {
Statement: [
...
],
Version: "2012-10-17",
},
}
));
Как я могу проверить правильность политики этой роли? Шаги, которые у меня в голове, следующие:
- Получить «Ref» из свойств роли
- Найти политику по этой ссылке
- Подтвердить все необходимые данные в Политика
Однако кажется, что CDK не предоставляет функций для получения элемента по его логическому идентификатору и получения ресурса из haveResource
как объекта.
Что такое способ CDK подойти к такому тестированию?
UPD: похоже, я могу подойти к нему с помощью StackInspector
, хотя мне все еще интересно, что это за истинный способ.