背景:
クロスアカウントロールを介してsomeaccountrole
awsアカウントにアクセスできますxyz
。
ケース1
アカウントにスタックを作成するには、xyz
コンソールから Cloudformation ファイルをアップロードします。
タブでスタックを作成すると、Events
次のような最初のイベントが表示されます。
ケース2
xyz
アカウントにEC2インスタンスを作成します。
使用サム配布、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の場合、スタックを作成するための権限は必要ありません。しかし、ケース2の場合、AWS CLIを介してスタックを作成するには、なぜスタックを作成する権限が必要ですか?
i-0000000cc4
2)EC2の代わりに一時セッションリソース()にインラインポリシー(短期)を割り当てる方法は?