

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

# 在 AMS 中使用 CFN 擷取或堆疊更新 CTs自動化 IAM 部署
<a name="cfn-ingest-iam-deploy"></a>

您可以使用這些 AMS 變更類型，在多帳戶登陸區域 (MALZ) 和單一帳戶登陸區域 (SALZ) 中部署 IAM 角色 (`AWS::IAM::Role`資源）：
+ 部署 \$1 擷取 \$1 CloudFormation 範本的堆疊 \$1 建立 (ct-36cn2avfrrj9v)
+ 管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新 (ct-361tlo1k7339x)
+ 管理 \$1 自訂堆疊 \$1 從 CloudFormation 範本堆疊 \$1 核准和更新 (ct-1404e21baa2ox)

**在 CFN 範本中的 IAM 角色上執行的驗證：**
+ **ManagedPolicyArns**： 屬性 **ManagedPolicyArns** 不得存在於 中`AWS::IAM::Role`。驗證不允許將受管政策連接至要佈建的角色。相反地，可以透過 屬性政策使用內嵌政策來管理角色的許可。
+ **PermissionsBoundary**：用於設定角色許可界限的政策只能是 AMS 支援的受管政策：`AWSManagedServices_IAM_PermissionsBoundary`。此政策可做為護欄，保護 AMS 基礎設施資源免於使用佈建的角色進行修改。使用此預設許可界限，可保留 AMS 提供的安全性優勢。

  `AWSManagedServices_IAM_PermissionsBoundary` （預設） 是必要項目，如果沒有，請求會遭到拒絕。
+ **MaxSessionDuration**：IAM 角色可設定的工作階段持續時間上限為 1 到 4 小時。AMS 技術標準要求在超過 4 小時的工作階段期間接受客戶風險。
+ **RoleName**：以下命名空間由 AMS 保留，不能用作 IAM 角色名稱字首：

  ```
  AmazonSSMRole,
  AMS,
  Ams,
  ams,
  AWSManagedServices,
  customer_developer_role,
  customer-mc-,
  Managed_Services,
  MC,
  Mc,
  mc,
  SENTINEL,
  Sentinel,
  sentinel,
  StackSet-AMS,
  StackSet-Ams,
  StackSet-ams,
  StackSet-AWS,
  StackSet-MC,
  StackSet-Mc,
  StackSet-mc
  ```
+ **政策**：內嵌在 IAM 角色中的內嵌政策只能包含一組由 AMS 預先核准的 IAM 動作。這是允許使用 （控制政策） 建立 IAM 角色的所有 IAM 動作的上限。控制政策包含：
  +  AWS 受管政策 ReadOnlyAccess 中的所有動作，提供對所有 AWS 服務 和 資源的唯讀存取權
  + 下列動作具有跨帳戶 S3 動作的限制，亦即，允許的 S3 動作只能對與建立的角色位於相同帳戶中的資源執行：

    ```
    amscm:*,
    amsskms:*,
    lambda:InvokeFunction,
    logs:CreateLogStream,
    logs:PutLogEvents,
    s3:AbortMultipartUpload,
    s3:DeleteObject,
    s3:DeleteObjectVersion,
    s3:ObjectOwnerOverrideToBucketOwner,
    s3:PutObject,
    s3:ReplicateTags,
    secretsmanager:GetRandomPassword,
    sns:Publish
    ```

    透過 CFN 擷取建立或更新的任何 IAM 角色都可以允許此控制政策中列出的動作，或從控制政策中列出的動作範圍縮小 （低於） 的動作。目前，我們允許這些可分類為唯讀動作的安全 IAM 動作，以及上述無法透過 CTs 完成且根據 AMS 技術標準預先核准的非唯讀動作。
+ **AssumeRolePolicyDocument**：下列實體已預先核准，並可包含在信任政策中，以擔任要建立的角色：
  + 相同帳戶中的任何 IAM 實體 （角色、使用者、根使用者、STS 擔任角色工作階段） 都可以擔任該角色。
  + 下列 AWS 服務 可以擔任 角色：

    ```
    apigateway.amazonaws.com,
    autoscaling.amazonaws.com,
    cloudformation.amazonaws.com,
    codebuild.amazonaws.com,
    codedeploy.amazonaws.com,
    codepipeline.amazonaws.com,
    datapipeline.amazonaws.com,
    datasync.amazonaws.com,
    dax.amazonaws.com,
    dms.amazonaws.com,
    ec2.amazonaws.com,
    ecs-tasks.amazonaws.com,
    ecs.application-autoscaling.amazonaws.com,
    elasticmapreduce.amazonaws.com,
    es.amazonaws.com,
    events.amazonaws.com,
    firehose.amazonaws.com,
    glue.amazonaws.com,
    lambda.amazonaws.com,
    monitoring.rds.amazonaws.com,
    pinpoint.amazonaws.com,
    rds.amazonaws.com,
    redshift.amazonaws.com,
    s3.amazonaws.com,
    sagemaker.amazonaws.com,
    servicecatalog.amazonaws.com,
    sns.amazonaws.com,
    ssm.amazonaws.com,
    states.amazonaws.com,
    storagegateway.amazonaws.com,
    transfer.amazonaws.com,
    vmie.amazonaws.com
    ```
  + 相同帳戶中的 SAML 供應商可以擔任該角色。目前，唯一支援的 SAML 供應商名稱為 `customer-saml`。

如果一或多個驗證失敗，RFC 會遭到拒絕。RFC 拒絕原因範例如下所示：

```
{"errorMessage":"[ 'LambdaRole: The maximum session duration (in seconds) should be a numeric value in the range 3600 to 14400 (i.e. 1 to 4 hours).', 'lambda-policy: Policy document is too permissive.']","errorType":"ClientError"}
```

如果您需要有關 RFC 驗證或執行失敗的協助，請使用 RFC 通訊來聯絡 AMS。如需說明，請參閱 [RFC 通訊和連接 （主控台）](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-rfc-correspondence.html)。如有任何其他問題，請提交服務請求。如需操作說明，請參閱[建立服務請求](https://docs.aws.amazon.com/managedservices/latest/userguide/gui-ex-create-service-request.html)。

**注意**  
作為 IAM 驗證的一部分，我們目前不會強制執行任何 IAM 最佳實務。如需 IAM 最佳實務，請參閱 [IAM 中的安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

**建立具有更寬鬆動作或強制執行 IAM 最佳實務的 IAM 角色**

使用下列手動變更類型建立 IAM 實體：
+ 部署 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 建立實體或政策 (ct-3dpd8mdd9jn1r)
+ 管理 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 更新實體或政策 (ct-27tuth19k52b4)

我們建議您在提交這些手動 RFCs之前，先閱讀並了解我們的技術標準。如需存取，請參閱[如何存取技術標準](https://docs.aws.amazon.com/managedservices/latest/ctref/rfc-security.html#rfc-sec-tech-standards-access)。

**注意**  
直接使用這些手動變更類型建立的每個 IAM 角色都屬於自己的個別堆疊，不會位於透過 CFN Ingest CT 建立其他基礎設施資源的相同堆疊中。

**當無法透過自動變更類型完成更新時，透過手動變更類型更新使用 CFN 擷取建立的 IAM 角色**

使用 管理 \$1 進階堆疊元件 \$1 Identity and Access Management (IAM) \$1 更新實體或政策 (ct-27tuth19k52b4) 變更類型。

**重要**  
透過手動 CT 的 IAM 角色更新不會反映在 CFN 堆疊範本中，並導致堆疊偏離。一旦透過手動請求將角色更新為未通過驗證的狀態，只要該角色持續不符合我們的驗證，就無法使用 Stack Update CT (ct-361tlo1k7339x) 再次更新該角色。只有在 CFN 堆疊範本符合我們的驗證時，才能使用更新 CT。不過，只要未更新不符合我們驗證的 IAM 資源，且 CFN 範本通過我們的驗證，堆疊仍可透過 Stack Update CT (ct-361tlo1k7339x) 進行更新。

**刪除透過擷取建立的 IAM AWS CloudFormation 角色**

如果您想要刪除整個堆疊，請使用下列自動刪除堆疊變更類型。如需說明，請參閱[刪除堆疊](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-stack-delete-col.html)：
+ 變更類型 ID：ct-0q0bic0ywqk6c
+ 分類：管理 \$1 標準堆疊 \$1 堆疊 \$1 刪除和管理 \$1 進階堆疊元件 \$1 堆疊 \$1 刪除

如果您想要刪除 IAM 角色而不刪除整個堆疊，您可以從 CloudFormation 範本中移除 IAM 角色，並使用更新後的範本做為自動堆疊更新變更類型的輸入：
+ 變更類型 ID：ct-361tlo1k7339x
+ 分類：管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新

如需說明，請參閱[更新 AWS CloudFormation 擷取堆疊](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-update-col.html)。