Фон:
С ролью перекрестной учетной записи someaccountrole
у меня есть доступ к учетной записи aws xyz
.
Случай 1
Чтобы создать стек в учетной записи xyz
, мы загружаем файл Cloudformation через консоль.
При создании стека на вкладке Events
мы видим самое первое событие, как показано ниже:
Случай 2
Создаем экземпляр EC2 в xyz
аккаунте.
Использование sam deploy, где sam deploy
- это оболочка aws cloudformation deploy
, мы запускаем следующую команду из EC2 для создания стека:
aws cloudformation deploy --template-file cfntemplate.yml --stack-name somestack-test --region us-east-1
Во время создания стека мы видим создание аналогичного события (как показано ниже):
В случае 2 пользователь: arn:aws:sts::${AccountId}:assumed-role/Autodeploy/i-0000000cc4
, где мы создали роль Autodeploy
и назначили ее EC2. Этот пользователь исчезает после завершения создания стека.
Но в случае 2 пользователю (i-0000000cc4
) требуется разрешение на выполнение следующих операций, в отличие от случая 1:
{
"Action": [
"cloudformation:CreateStack",
"cloudformation:CreateChangeSet",
"cloudformation:CreateUploadBucket",
"cloudformation:ExecuteChangeSet",
"cloudformation:DeleteStack",
"cloudformation:Describe*",
"cloudformation:UpdateStack"
],
"Resource": [
"arn:aws:cloudformation:us-east-1:${AccountId}:stack/somestack*”
],
"Effect": "Allow"
}
в противном случае вкладка Events
дает ошибку ниже в случае 2:
User: arn:aws:sts::${AccountId}:assumed-role/Autodeploy/i-0000000cc4
is not authorized to perform: cloudformation:CreateChangeSet on resource:
arn:aws:cloudformation:us-east-1:${AccountId}:stack/somestack-test
1) В случае 1 разрешения задаются как someaccountrole
для создания стека. но в случае 2, почему для создания стека с помощью интерфейса командной строки AWS требуется разрешение на создание стека?
2) Как назначить встроенную политику (недолговечность) такому временному ресурсу сеанса (i-0000000cc4
) вместо EC2 ??