

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 轉送存取工作階段 (FAS) 請求和許可評估
<a name="fas-requests-and-permission-evaluation"></a>

建立、更新和刪除 CloudFormation 堆疊時，使用者可以選擇性地指定 IAM 角色 ARN。如果未提供任何角色，CloudFormation 會使用其預設服務機制與其他 AWS 服務互動。在此案例中，呼叫者必須擁有所管理資源的必要許可。或者，當使用者提供自己的 IAM 角色時，CloudFormation 將擔任該角色以代表他們執行服務互動。

無論使用者是否提供 IAM 角色，CloudFormation 都會為每個資源操作產生新的範圍縮小的 FAS 權杖。因此，在這兩種情況下都會填入 [FAS 相關條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html#access_fas_policy_conditions)`aws:ViaAWSService`，包括 。

使用 FAS 會影響 CloudFormation 操作期間的 IAM 政策評估方式。使用範本 (該範本包含受 FAS 相關條件金鑰影響的資源) 建立堆疊時，可能會發生許可拒絕。

**IAM 政策範例**  
請考慮下列 IAM 政策。`Statement2` 會持續阻止在 CloudFormation 中建立 `AWS::KMS::Key` 資源。無論堆疊操作期間是否提供 IAM 角色，都會一致地強制執行該限制。這是因為由於使用 FAS，`aws:ViaAWSService` 條件金鑰始終設為 `true`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "kms:CreateKey"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Statement2",
            "Effect": "Deny",
            "Action": [
                "kms:CreateKey"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Bool": {
                    "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 使用者指南**》中的[轉送存取工作階段](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。

**注意**  
大多數資源都遵循此行為。不過，如果在建立、更新或刪除資源時遇到意外的成功或失敗，且 IAM 政策包含 FAS 相關條件金鑰，則相關資源可能屬於不遵循此標準模式的小部分資源。