AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWSSupport-GrantPermissionsToIAMUser

描述

此文档将指定的权限授予 IAM 组(新建组或现有组),并将现有的 IAM 用户添加到此组。您可以选择的策略:账单支持。要为 IAM 启用账单访问权限,请注意还需要激活 IAM 用户和联合身份用户对“账单和成本管理”页面的访问权限

重要

如果提供的是现有 IAM 组,则此组中的所有当前 IAM 用户都将收到新权限。

文档类型

Automation

所有者

Amazon

参数

  • IAMUserName

    类型:字符串

    默认值:ExampleUser

    说明:(必需)必须是现有用户。

  • IAMGroupName

    类型:字符串

    默认值:ExampleSupportAndBillingGroup

    说明:(必需)可以是新组或现有组。必须符合 IAM 实体名称限制

  • 权限

    类型:字符串

    允许的值:SupportFullAccess、BillingFullAccess、SupportAndBillingFullAccess

    默认值:SupportAndBillingFullAccess

    说明:(必需)选择以下值之一:SupportFullAccess - 授予对支持中心的完全访问权限 | BillingFullAccess - 授予对“账单”控制面板的完全访问权限 | SupportAndBillingFullAccess - 授予对支持中心和“账单”控制面板的完全访问权限。有关策略的更多信息,请参阅文档详细信息。

  • AutomationAssumeRole

    类型:字符串

    说明:(可选)允许 Automation 代表您执行操作的角色的 ARN。如果未指定任何角色,则 AWS Systems Manager Automation 将使用运行此文档的用户的权限。

  • LambdaAssumeRole

    类型:字符串

    说明:(可选)Lambda 担任的角色的 ARN。

示例

将 IAM 用户 BillingUser 添加到 IAM 组 BillingGroup,并授予对 AWS 账单和成本管理控制台的完全访问权限

aws ssm start-automation-execution --document-name "AWSSupport-GrantPermissionsToIAMUser" --parameters "IAMGroupName=BillingGroup, IAMUserName=BillingUser, Permissions=BillingFullAccess"

将 IAM 用户 SupportUser 添加到 IAM 组 SupportGroup,并授予对支持中心的完全访问权限

aws ssm start-automation-execution --document-name "AWSSupport-GrantPermissionsToIAMUser" --parameters "IAMGroupName=SupportGroup, IAMUserName=SupportUser, Permissions=SupportFullAccess"

将 IAM 用户 SupportAndBillingUser 添加到 IAM 组 SupportAndBillingGroup,并授予对支持中心及 AWS 账单和成本管理控制台的完全访问权限

aws ssm start-automation-execution --document-name "AWSSupport-GrantPermissionsToIAMUser" --parameters "IAMGroupName=SupportAndBillingGroup, IAMUserName=SupportAndBillingUser"

检索执行输出

aws ssm get-automation-execution --automation-execution-id EXECUTIONID --output text --query 'AutomationExecution.Output'

所需的 IAM 权限

最低权限取决于 AWSSupport-GrantPermissionsToIAMUser 的运行方式。

直接执行

建议附加 **AmazonSSMAutomationRole** Amazon 托管策略以及以下额外权限,以便创建 Lambda 函数和将 IAM 角色传递给 Lambda:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:ACCOUNTID:function:AWSSupport-*", "Effect": "Allow" }, { "Effect" : "Allow", "Action" : [ "iam:CreateGroup", "iam:AddUserToGroup", "iam:ListAttachedGroupPolicies", "iam:GetGroup", "iam:GetUser" ], "Resource" : [ "arn:aws:iam::*:user/*", "arn:aws:iam::*:group/*" ] }, { "Effect" : "Allow", "Action" : [ "iam:AttachGroupPolicy" ], "Resource": "*", "Condition": { "ArnEquals": { "iam:PolicyArn": [ "arn:aws:iam::aws:policy/job-function/Billing", "arn:aws:iam::aws:policy/AWSSupportAccess" ] } } }, { "Effect" : "Allow", "Action" : [ "iam:ListAccountAliases", "iam:GetAccountSummary" ], "Resource" : "*" } ] }

使用 AutomationAssumeRole 和 LambdaAssumeRole

用户必须在文档上具有 ssm:ExecuteAutomation 权限,并在作为 AutomationAssumeRoleLambdaAssumeRole 传递的 IAM 角色上具有 iam:PassRole。以下是每个 IAM 角色所需的权限:

AutomationAssumeRole { "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:ACCOUNTID:function:AWSSupport-*", "Effect": "Allow" } ] }
LambdaAssumeRole { "Version": "2012-10-17", "Statement": [ { "Effect" : "Allow", "Action" : [ "iam:CreateGroup", "iam:AddUserToGroup", "iam:ListAttachedGroupPolicies", "iam:GetGroup", "iam:GetUser" ], "Resource" : [ "arn:aws:iam::*:user/*", "arn:aws:iam::*:group/*" ] }, { "Effect" : "Allow", "Action" : [ "iam:AttachGroupPolicy" ], "Resource": "*", "Condition": { "ArnEquals": { "iam:PolicyArn": [ "arn:aws:iam::aws:policy/job-function/Billing", "arn:aws:iam::aws:policy/AWSSupportAccess" ] } } }, { "Effect" : "Allow", "Action" : [ "iam:ListAccountAliases", "iam:GetAccountSummary" ], "Resource" : "*" } ] }

文档步骤

  1. aws:createStack – 运行 AWS CloudFormation 模板以创建 Lambda 函数。

  2. aws:invokeLambdaFunction – 运行 Lambda 以设置 IAM 权限。

  3. aws:deleteStack - 删除 CloudFormation 模板。

输出

configureIAM.Payload