在 AMS 中使用 CFN 采集或堆栈更新 CTs 自动部署 IAM - AMS 高级应用程序开发者指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 AMS 中使用 CFN 采集或堆栈更新 CTs 自动部署 IAM

您可以使用这些 AMS 变更类型在多账户着陆区 (MALZ) 和单账户着陆区 (SALZ) 中部署 IAM 角色(AWS::IAM::Role资源):

  • 部署 | 摄取 | 从 CloudFormation 模板堆栈 | 创建 (ct-36cn2avfrrj9v)

  • 管理 | 自定义堆栈 | 来自 CloudFormation 模板的堆栈 | 更新 (ct-361tlo1k7339x)

  • 管理 | 自定义堆栈 | 来自 CloudFormation 模板的堆栈 | 批准和更新 (ct-1404e21baa2ox)

对您的 CFN 模板中的 IAM 角色执行的验证:

  • ManagedPolicyArns: 该属性ManagedPolicyArns不得存在于中AWS::IAM::Role。该验证不允许将托管策略附加到正在置备的角色。相反,可以通过属性 Policies 使用内联策略来管理角色的权限。

  • 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 ingest 创建或更新的任何 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 通信和附件(控制台)。如有任何其他问题,请提交服务请求。有关操作方法,请参阅创建服务请求

注意

作为我们的 IAM 验证的一部分,我们目前不强制执行任何 IAM 最佳实践。有关 IAM 最佳实践,请参阅 IAM 中的安全最佳实践

创建具有更宽松操作的 IAM 角色或执行 IAM 最佳实践

使用以下手动更改类型创建您的 IAM 实体:

  • 部署 | 高级堆栈组件 | 身份和访问管理 (IAM) Management | 创建实体或策略 (ct-3dpd8mdd9jn1r)

  • 管理 | 高级堆栈组件 | 身份和访问管理 (IAM) | 更新实体或策略 (ct-27tuth19k52b4)

我们建议您在提交这些手册之前阅读并理解我们的技术标准 RFCs。有关访问权限,请参阅如何访问技术标准

注意

使用这些手动更改类型直接创建的每个 IAM 角色都属于自己的单独堆栈,并且不位于通过 CFN Ingest CT 创建其他基础设施资源的同一个堆栈中。

当无法通过自动更改类型进行更新时,通过手动更改类型更新使用 CFN 提取创建的 IAM 角色

使用管理 | 高级堆栈组件 | 身份和访问管理 (IAM) | 更新实体或策略 (ct-27tuth19k52b4) 更改类型。

重要

通过手动 CT 对 IAM 角色的更新不会反映在 CFN 堆栈模板中,这会导致堆栈偏移。通过手动请求将角色更新到未通过我们验证的状态后,只要角色仍然不符合我们的验证,就无法再次使用堆栈更新 CT (ct-361tlo1k7339x) 对其进行进一步更新。只有当 CFN 堆栈模板符合我们的验证标准时,才能使用更新 CT。但是,只要不更新不符合我们验证的 IAM 资源并且 CFN 模板通过我们的验证,仍然可以通过堆栈更新 CT (ct-361tlo1k7339x) 更新堆栈。

删除通过 AWS CloudFormation 采集创建的 IAM 角色

如果要删除整个堆栈,请使用以下自动删除堆栈更改类型。有关说明,请参阅删除堆栈

  • 更改类型 ID:ct-0q0bic0ywqk6c

  • 分类:管理 | 标准堆栈 | 堆栈 | 删除和管理 | 高级堆栈组件 | 堆栈 | 删除

如果您想在不删除整个堆栈的情况下删除 IAM 角色,则可以从 CloudFormation 模板中移除 IAM 角色,然后使用更新的模板作为自动堆栈更新更改类型的输入:

  • 更改类型 ID:ct-361tlo1k7339x

  • 分类:管理 | 自定义堆栈 | 来自 CloudFormation 模板的堆栈 | 更新

有关说明,请参阅更新 AWS CloudFormation 采集堆栈