本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
轉送存取工作階段 (FAS) 請求和許可評估
建立、更新和刪除 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 角色,都會一致地強制執行該限制。這是因為由於使用 FAS,aws:ViaAWSService 條件金鑰始終設為 true。
堆疊範本範例
例如,當使用者使用下列範例範本建立堆疊時,aws:ViaAWSService 會設定為 true,而 FAS 政策會覆寫角色許可。堆疊建立會受到拒絕 CreateKey 動作的 IAM 政策的 Statement2 的影響。這會導致許可遭拒錯誤。
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 相關條件金鑰,則相關資源可能屬於不遵循此標準模式的小部分資源。