亚马逊AWS官方博客

启用新的精细服务权限来更好地控制账单、成本管理和账户服务的访问权限

亚马逊云科技将在服务前缀 aws-portal 下停用账单、成本管理和账户控制台Amazon Identity and Access Management(IAM)操作,以及采购订单命名空间下的两个操作,即 purchase-orders:ViewPurchaseOrderspurchase-orders:ModifyPurchaseOrders。  我们将用新的精细服务权限取而代之。有了这些权限,您可以更好地控制账单、成本管理和账户服务的访问权限。这些新权限还将提供一组 IAM 操作,用于管理控制台和编程接口的访问权限。

在本文中,我们将向您展示将发生的变化,以及为迎接这一变化,如何通过修改 IAM policy 和权限来允许/拒绝访问账单、成本管理和账户服务。我们还将讨论该变化对现有 Amazon 托管策略和迁移时间安排的影响,以及您可以使用哪些工具或选项轻松完成这一过渡。

背景

目前,您可以使用带有 aws-portal 服务前缀的 IAM 操作(在本文中称为现有权限/IAM 操作)来控制对账单、成本管理和账户控制台的访问权限。例如,当您向用户提供 aws-portal:ViewBillingaws-portal:ModifyBilling 操作的访问权限时,即授权该用户访问多个控制台页面,包括 Amazon Cost Explorer、Amazon Budgets、整合账单、账单首选项、积分、税费设置、付款方式、采购订单和成本分配标签。如果您想允许用户访问特定的成本管理服务控制台页面(例如 Cost Explorer),但不允许访问账单页面,现在是无法达成的。这种限制可能会使您难以运行非中心化的云成本管理模型(在此模型中个人用户可以根据自己的角色访问特定的服务)。许多用户告诉我们,他们希望对账单、成本管理和账户服务的访问权限进行更精细的控制,而我们提到的上述变化可以实现这种灵活性。

此外,如今您可以使用与控制台 IAM 操作集不同的 IAM 操作集,通过编程接口控制对账单、成本管理和账户服务的访问权限。例如,当客户想要通过控制台和 Cost Explorer API 为用户提供对 Cost Explorer 的访问权限时,该用户将需要 aws-portal:ViewBillingce:* 的权限。新的 IAM 操作提供一组权限,您只需通过控制台和编程接口便可控制并轻松设置对账单、成本管理和账户服务的访问权限,并减少出错的情况。

已推出的内容

2023 年 8 月 23 日,亚马逊云科技推出了精细的 IAM 操作和 4 个新的服务前缀(consolidated billingfreetierinvoicingpayments),并为 5 个现有服务前缀(billingaccountscurpurchase-orders)添加了新权限。

我们将停用 aws-portal 服务前缀及其中的所有操作。此外,我们还将停用 purchase-orders:ViewPurchaseOrderspurchase-orders:ModifyPurchaseOrders 权限。

如果您一直在使用 Amazon 托管策略让 IAM 用户或根用户访问 Amazon 账单、成本管理和账户控制台,则无需采取任何操作,因为亚马逊云科技正在更新现有的 Amazon 托管策略。您可以在“对现有托管策略的更新”部分查看相关信息。

新的服务前缀和权限

新服务前缀 摘要
consolidatedbilling 链接 提供对账户角色等整合账单功能的访问权限
freetier 链接 提供对 Amazon Billing Console 上免费套餐功能的访问权限
invoicing 链接 提供对 Amazon Billing Console 上的开票资源的访问权限
payments 链接 提供对 Amazon Billing Console 上付款和付款方式的访问权限

对现有服务前缀和权限的更新

现有服务前缀 服务授权参考 摘要
billing 链接 提供对 Amazon Billing Console(主页、账单、积分、账单首选项)上的账单功能的访问权限
account 链接 提供对 Amazon 账户管理资源的访问权限
cur 链接 提供对 Amazon Billing Console 上成本和使用情况报告的访问权限
purchase-orders 链接 提供对 Amazon Billing Console 上采购订单体验的访问权限

请注意,这些新的 IAM 操作现在可以控制对控制台功能的访问权限。未来,我们将为账单、付款、税费设置推出新的 API,让您能够以编程方式访问目前只能通过控制台访问的相同资源(如支出摘要、账单、付款摘要、交易、税务登记)。这些未来推出的 API 将使用今天推出的新 IAM 操作进行控制。

停用的服务前缀和权限

将停用的服务前缀和权限 服务授权参考 摘要
aws-portal 链接 在权限迁移结束后,我们将停用此服务前缀以及其中的所有 IAM 操作
purchase-orders 链接 在权限迁移结束后,我们将停用 purchase-orders:ViewPurchaseOrders 和 purchase-orders:ModifyPurchaseOrders 权限。我们将发布其他权限来取代这两个权限。

您应该如何开始使用?

要使用精细的访问控制,您需要将策略从 aws-portal 下迁移到新的 IAM 操作中。

您的权限策略或服务控制策略(SCP)中的以下 IAM 操作需要使用新的精细操作进行更新:

  • aws-portal:ViewAccount
  • aws-portal:ViewBilling
  • aws-portal:ViewPaymentMethods
  • aws-portal:ModifyAccount
  • aws-portal:ModifyBilling
  • aws-portal:ModifyPaymentMethods
  • purchase-orders:ViewPurchaseOrders
  • purchase-orders:ModifyPurchaseOrders

亚马逊云科技建议您立即开始添加新的精细权限,这样您就可以确保在所有受影响的策略停用之前已对其更新,以保障对 Amazon 账单、成本管理和账户控制台的访问权限不中断。如果您想立即开始使用或测试精细操作,请使用“如何在新的精细操作或现有 IAM 操作之间切换账户?”中所述的功能。

例如,您的账户中有以下名为“AllowViewAccessToBillingAndCost ManagementConsole”的基于身份的策略,该策略具有现有 IAM 操作“aws-portal:ViewBilling”,允许用户查看 Amazon 账单和成本管理控制台的内容。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": " VisualEditor0 ",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}

您需要更新此策略才能添加精细操作。在下面的示例策略中,您会看到精细的 IAM 操作已添加在“ThesePermissionsWillHaveNoEffectTillEndOfMigration”语句块下。您可以在下面的示例中看到,更新的策略还包含“ThisPermissionWillContinueProvidingAccessAsNormal”语句块下的现有操作,因为它们在停用日期之前控制对我们控制台的访问权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ThesePermissionsWillHaveNoEffectTillEndOfMigration",
            "Effect": "Allow",
            "Action": [
                "ce:Get*",
                "ce:Describe*",
                "ce:List*",
                "account:GetAccountInformation",
                "billing:Get*",
                "payments:List*",
                "payments:Get*",
                "consolidatedbilling:Get*",
                "consolidatedbilling:List*",
                "invoicing:List*",
                "invoicing:Get*",
                "cur:Get*",
                "cur:Validate*",
                "freetier:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ThisPermissionWillContinueProvidingAccessAsNormal",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}

为了帮助您识别和更新受影响的 IAM policy,亚马逊云科技提供以下资源。在本文中,我们将详细介绍如何使用“受影响的策略”和“切换账户”功能来更改权限。您可以在下面的用户指南中查看其他资源的说明。

  • 受影响的策略(用户指南):该工具列出了账户内受影响的 IAM policy。您可以在已登录的账户中查看每项策略并作出必要的更改。
  • 批量策略迁移器(用户指南):您可以使用这些脚本识别和更新组织内所有受影响的策略。您可以从您组织的付款人账户运行这些脚本。如果您使用具有多个关联账户的 Amazon Organization 账户,请使用批量策略迁移器脚本高效更新组织内的所有账户。
  • 映射指南(用户指南):这是我们从每个 IAM 操作的现有(旧版)操作到新的精细操作的映射,即将停用。
  • 切换账户:此自助服务功能可让您在新的精细操作和现有(旧版)IAM 操作之间切换。添加新的精细操作后,您可以使用切换账户功能,立即开始在账户中使用新的 IAM 操作(请参阅“如何在新的精细或现有 IAM 操作之间切换账户?”部分)。

对现有托管策略的更新

在此次发布中,亚马逊云科技更新了以下 Amazon 托管策略,加入了新的精细权限。Amazon 托管策略中的这些 aws-portal IAM 操作在停用日期之前将一直有效,因此您可以像以前一样继续使用这些托管策略。停用后,亚马逊云科技将从这些托管策略中删除 aws-portal IAM 操作。如果您只使用 Amazon 托管策略,则无需采取任何操作,因为亚马逊云科技将进行更新。

  • AWSBillingReadOnlyAccess (arn:aws:iam::aws:policy/AWSBillingReadOnlyAccess)
  • Billing (arn:aws:iam::aws:policy/job-function/Billing)
  • ReadOnlyAccess (arn:aws:iam::aws:policy/ReadOnlyAccess)

如何更新账户中受影响的策略?

主要有两个步骤:1) 确定需要更新的策略;2) 更新策略以使用新的 IAM 操作。在下面的示例中,我们将重点关注在太平洋时间 2023 年 3 月 6 日上午 11 点之前创建,且曾属于或现属于该组织的账户。对于在太平洋时间 2023 年 3 月 6 日上午 11 点或之后创建的新账户或新组织,他们将直接可使用新的精细操作。

请注意,受影响的策略控制台仅显示已登录账户中受影响的 IAM policy,不显示受此更改影响的服务控制策略 (SCP)。请使用批量策略迁移器脚本来识别和更新组织内所有账户的 IAM policy。您需要登录 Amazon Organizations 控制台才能查看受影响的服务控制策略(SCP)。本文余下部分将详细介绍如何在控制台中从现有 IAM 操作过渡到精细操作。如果您在受版本控制的存储库中管理和维护 IAM policy,请务必对自动化进行同样的更改。如有其他问题,请联系 Amazon 支持
第 1 步:确定需要更新的策略

请登录您的账户,访问受影响的策略控制台。访问时,请使用 IAM policy 中包含的 iam:GetAccountAuthorizationDetails 操作的 IAM 用户/角色,或者将以下 Amazon 托管策略中的任一策略分配给您的 IAM 用户/角色:SystemAdministratorAdministratorAccessIAMFullAccessIAMReadOnlyAccess

登录您的账户并访问受影响的策略控制台,查看所有引用将停用的现有 aws-portal IAM 操作的 IAM policy。您还可以查看附加到受影响策略的 IAM 实体(IAM 用户、角色或组)的数量,这样您就可以优先更新分配给 IAM 实体数量最多的策略。此工具将显示客户托管策略和需要更新的内联策略。

例如,您使用附加到六个 IAM 用户的现有 IAM 操作“aws-portal:ViewBilling”制定身份策略“AllowViewAccessToBillingAndCostManagementConsole”。

您会看到列出了“AllowViewAccessToBillingAndCostManagementConsole”策略(见下方屏幕截图)。此工具显示此策略附加到多少个 IAM 实体,在本示例中为“6”。该工具还显示违规的 IAM 操作,本例中为 aws-portal:ViewBilling

图 1:现有账户组的受影响策略控制台

您还可以通过单击受影响的策略控制台上的“导出所有受影响的策略”按钮,下载受影响的策略列表以及策略 ARN。

图 2:“导出所有受影响的策略”按钮

要更新服务控制策略(SCP),您需要登录 Amazon Organizations 控制台。后文“如何将服务控制策略更新为新操作”部分提供相关说明。

第 2 步:将账户中的策略更新为新的 IAM 操作

在受影响的策略列表中,您可以单击策略名称并在 IAM 控制台中更新 IAM 客户托管或内联策略。您可以像往常一样更新 IAM policy。您可以查看编辑 IAM policy,了解如何更新策略。在将您的策略更新为新操作之前,请记下您当前的默认策略版本。如果您在更改时遇到问题,可以将策略恢复到此版本。

在步骤 1 中,您已确定需要更新名为“AllowViewAccessToBillingAndCost ManagementConsole”的策略。导航到 IAM 控制台后,即可添加新的 IAM 操作。请使用“映射指南”确认要为相应的旧版 IAM 操作添加的所需新 IAM 操作。  在策略中添加新的精细操作时,您需要保留当前操作。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ThesePermissionsWillHaveNoEffectTillEndOfMigration",
            "Effect": "Allow",
            "Action": [
                "ce:Get*",
                "ce:Describe*",
                "ce:List*",
                "account:GetAccountInformation",
                "billing:Get*",
                "payments:List*",
                "payments:Get*",
                
                "consolidatedbilling:Get*",
                "consolidatedbilling:List*",
                "invoicing:List*",
                "invoicing:Get*",
                "cur:Get*",
                "cur:Validate*",
                "freetier:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ThisPermissionWillContinueProvidingAccessAsNormal",
            "Effect": "Allow",
            "Action": "aws-portal:ViewBilling",
            "Resource": "*"
        }
    ]
}

在向所有受影响的策略添加新的精细 IAM 操作后,由于您在迁移期间保留了现有 IAM 操作,因此您将继续在受影响的策略控制台中看到此策略。现有 IAM 操作停用后,我们建议您通过删除现有 IAM 操作来更新策略,以符合策略卫生最佳实践;删除现有 IAM 操作后,您将不再在受影响的策略控制台中看到此策略。我们还建议您在受付款人账户/普通账户影响的策略控制台上使用自助服务工具,将账户切换为立即使用新的 IAM 操作。详情请参阅“如何在新的精细操作或现有 IAM 操作之间切换账户?”

您可以参考这些 Billing Console成本管理用户指南,了解每项账单、成本管理和账户服务的精细 IAM 操作。

如何将服务控制策略更新为新操作

只有在您的 Amazon Organizations 中启用所有功能后,服务控制策略(SCP)功能才可用。

  • 您需要登录您的 Amazon Organizations 的管理账户
  • 访问 Amazon Organizations 控制台,查看在您管理账户中创建的 SCP
  • 单击左侧导航面板中的“策略”,然后选择“服务控制策略”

图 3:Amazon Organizations 中的服务控制策略

  • 单击您为 Amazon 账单、成本管理和账户控制台创建的 SCP。
  • 单击“编辑策略”按钮以更新您的 SCP。

图 4:用于服务控制策略的编辑策略按钮

  • 更新策略的内容,以便添加新的 IAM 操作。保留现有的 IAM 操作,以便在整个迁移期间都拥有访问权限

图 5:编辑服务控制策略的内容

  • 您还可以在“目标”选项卡中查看 SCP 应用于哪些成员账户,这样您就可以优先更新分配给成员账户数量最多的 SCP。

图 6:服务控制策略的“目标”选项卡

有关如何更新服务控制策略的详细说明在本用户指南中。

如何在新的精细操作或现有 IAM 操作之间切换账户?

此自助服务功能可让您在新的精细操作和现有(旧版)IAM 操作之间切换。您可以在您的账户中测试新操作,也可以跨组织内的部分账户(如果是管理账户)测试新操作。停用后,所有账户都需要使用新的操作,自助服务功能将不再可用。

您可以通过受影响的策略控制台访问上述操作。如要通过控制台使用这些功能,您需要使用带有 ce:GetConsoleActionSetEnforcedaws-portal:GetConsoleActionSetEnforcedpurchase-orders:GetConsoleActionSetEnforced(用于查看强制执行的操作的状态),以及 ce:UpdateConsoleActionSetEnforcedaws-portal:UpdateConsoleActionSetEnforcedpurchase-orders:UpdateConsoleActionSetEnforced(用于切换操作)的 IAM 用户/角色。对于 Amazon Organizations,该功能仅适用于管理账户用户。

在您已登录的账户中访问受影响的策略控制台

如果您未使用管理账户且不属于 Amazon Organizations,则只能切换为自己的账户设置的操作。如图 7 所示,对于当前已登录的用户,系统将强制执行“现有”IAM 操作。您可以选择“为您的账户启用新操作”选项,然后选择“应用更改”。随后系统将为您的账户启用新的 IAM 操作。

图 7:现有(旧版)IAM 操作已强制执行,切换到新的(精细)操作

同样,如果强制执行“精细”IAM 操作,则可以选择“为您的账户启用旧版操作”选项,然后选择“应用更改”(参见图 8)。该账户将恢复使用旧版 IAM 操作,这些操作仅在停用日期之前可用。

图 8:已强制执行新的(精细)IAM 操作,切换到旧版 IAM 操作

作为管理账户所有者,您可以切换为组织内所有或部分成员账户设置的操作。如果强制执行“现有”IAM 操作(参见图 9),则可以为整个组织或组织内的特定账户启用新的 IAM 操作。对于后者,您需要提供账号(最多 10 个)。

图 9:管理账户视图,在组织内强制执行的现有(旧版)IAM 操作,切换到组织内所有账户或部分账户的新(精细)操作

同样,在强制执行新的 IAM 操作时(参见图 10),您可以恢复整个组织或组织内特定账户的旧版操作。对于后者,您需要提供账号(最多 10 个)。

图 10:管理账户视图,在组织内强制执行的新(精细)IAM 操作,切换到组织内所有账户或部分账户的旧版 IAM 操作

如果组织内的部分账户被覆盖(使用旧版或新的 IAM 操作),则“当前操作集已强制执行”状态将以下方格式显示,并带有下载 CSV 文件的链接。CSV 文件将包含使用新旧 IAM 操作且受覆盖的账户。

图 11:管理账户用户视图,在组织内强制执行的新(精细)IAM 操作,其中部分账户使用旧版 IAM 操作

结论

在新的服务特定命名空间下启动这些精细权限后,可以对账单、成本管理、账户控制台和服务进行最低权限访问。如要利用增强的访问控制功能并确保对 Amazon 账单、成本管理和账户控制台的访问权限不中断,请务必参阅成本管理用户指南Billing Console 用户指南,了解详情并采取相应的措施。如果您有任何问题,请随时联系您的 Amazon 联系人和支持团队