本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立、更新和刪除 CloudFormation 堆疊時,使用者可以選擇性地指定 IAM 角色 ARN。如果未提供角色,CloudFormation 會使用其預設服務機制與其他 AWS 服務互動。在這種情況下,發起人必須擁有管理中資源的必要許可。或者,當使用者提供自己的 IAM 角色時,CloudFormation 將擔任該角色以代表他們執行服務互動。
無論使用者是否提供 IAM 角色,CloudFormation 都會為每個資源操作產生新的縮小範圍 FAS 權杖。因此,FAS 相關條件索引鍵,包括 aws:ViaAWSService
,會在兩種情況下填入。
使用 FAS 會影響在 CloudFormation 操作期間評估 IAM 政策的方式。使用包含受 FAS 相關條件金鑰影響之資源的範本建立堆疊時,可能會發生許可拒絕。
IAM 政策範例
請考慮下列 IAM 政策。 Statement2
會一致防止在 CloudFormation 中建立AWS::KMS::Key
資源。無論在堆疊操作期間是否提供 IAM 角色,都會一致地強制執行限制。這是因為aws:ViaAWSService
條件索引鍵一律因使用 FAS true
而設為 。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"*"
],
"Resource": [
"*"
]
},
{
"Sid": "Statement2",
"Effect": "Deny",
"Action": [
"kms:CreateKey"
],
"Resource": [
"*"
],
"Condition": {
"Bool": {
"aws:ViaAWSService": "true"
}
}
}
]
}
堆疊範本範例
例如,當使用者使用下列範例範本建立堆疊時, aws:ViaAWSService
會設定為 true
,而 FAS 政策會覆寫角色許可。堆疊建立會受到 IAM Statement2
政策的影響,該政策會拒絕該CreateKey
動作。這會導致許可遭拒錯誤。
Resources:
myPrimaryKey:
Type: AWS::KMS::Key
Properties:
Description: An example multi-Region primary key
KeyPolicy:
Version: '2012-10-17'
Id: key-default-1
Statement:
- Sid: Enable IAM User Permissions
Effect: Allow
Principal:
AWS: !Join
- ''
- - 'arn:aws:iam::'
- !Ref AWS::AccountId
- ':root'
Action: kms:*
Resource: '*'
如需 FAS 的詳細資訊,請參閱《IAM 使用者指南》中的轉送存取工作階段。
注意
大多數資源都遵守此行為。不過,如果您在建立、更新或刪除資源時遇到意外的成功或失敗,且您的 IAM 政策包含 FAS 相關條件金鑰,則相關資源可能屬於不遵循此標準模式的一小部分資源。