Amazon Service Catalog 服务操作 - Amazon Service Catalog
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Service Catalog 服务操作

注意

Amazon Service Catalog 不支持 Terraform 开源或 Terraform 云产品的服务操作。

Amazon Service Catalog 使您能够减少管理维护和最终用户培训,同时合规且遵守安全措施。利用服务操作,作为管理员,您可以允许最终用户在 Amazon Service Catalog 中执行操作任务、排查问题、运行批准的命令或请求权限。使用 Amazon Systems Manager 文档定义服务操作。Amazon Systems Manager 文档提供对实施 Amazon 最佳实践的预定义操作(如 Amazon EC2 停止和重启)的访问权限,您也可以定义自定义操作。

在本教程中,您为最终用户提供重启 Amazon EC2 实例的功能。添加必要的权限,定义服务操作,将服务操作与产品关联,将操作用于预配置产品来测试最终用户体验。

先决条件

本教程假定您具有完整的 Amazon 管理员权限,已熟悉 Amazon Service Catalog 并且您已具有一组基础的产品、产品组合和用户。如果您不熟悉 Amazon Service Catalog,请在使用本教程之前完成设置入门 任务。

步骤 1:配置最终用户权限

最终用户必须拥有必需的权限才能查看和执行特定服务操作。在本示例中,最终用户需要权限才能访问 Amazon Service Catalog 服务操作功能和执行 Amazon EC2 重启。

更新权限
  1. 通过以下网址打开 Amazon Identity and Access Management (IAM) 控制台:https://console.aws.amazon.com/iam/

  2. 从菜单中找到用户群组。

  3. 选择最终用户将用于访问 Amazon Service Catalog 资源的群组。在本示例中,我们选择最终用户组。在您自己的实现中,选择相关最终用户使用的组。

  4. 在组的详细信息页面的权限选项卡上,创建新策略或编辑现有策略。在本示例中,我们通过选择为组的 Amazon Service Catalog 预置权限和终止权限创建的自定义策略来向现有策略添加权限。

  5. 策略页面上,选择编辑策略以添加必要的权限。您可以使用可视化编辑器或 JSON 编辑器来编辑策略。在本示例中,我们使用 JSON 编辑器添加权限。在本教程中,向策略添加以下权限:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1536341175150", "Action": [ "servicecatalog:ListServiceActionsForProvisioningArtifact", "servicecatalog:ExecuteprovisionedProductServiceAction", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution", "cloudformation:ListStackResources", "ec2:DescribeInstanceStatus", "ec2:StartInstances", "ec2:StopInstances" ], "Effect": "Allow", "Resource": "*" } ] }
  6. 编辑策略之后,审查并批准对策略的更改。最终用户组中的用户现在拥有在 Amazon Service Catalog 中执行 Amazon EC2 重启操作所需的权限。

步骤 2:创建服务操作

接下来,您要创建一个服务操作来重启 Amazon EC2 实例。

  1. 打开Amazon Service Catalog控制台,网址为 https://console.aws.amazon.com/sc/

  2. 从菜单中,选择服务操作

  3. 服务操作页面上,选择创建新操作

  4. 创建操作页面上,选择 Amazon Systems Manager 文档以定义服务操作。Amazon EC2 实例重启操作由 Amazon Systems Manager 文档定义,因此我们保留下拉菜单上的默认选项 Amazon 文档

  5. 搜索并选择 Amazon-RestartEC2Instance 操作。

  6. 请为操作提供一个对您的环境和团队有意义的名称和描述。最终用户将看到此描述,从而选择帮助他们了解操作作用的内容。

  7. 参数和目标配置下,选择将作为操作目标的 SSM 文档参数(例如,实例 ID),然后选择参数的目标。选择添加参数以添加其他参数。

  8. 权限下,选择一个角色。我们在此示例中使用默认权限。还可以在此页面上执行和定义其他权限配置。

  9. 审查配置之后,选择创建操作

  10. 在下一页上,操作创建完成后且可用时,将出现确认。

步骤 3:将服务操作与产品版本关联

定义操作后,您必须将产品与定义的操作关联。

  1. 服务操作 页面上,选择 Amazon-RestartEC2instance,然后选择关联操作

  2. 关联操作页面上,选择您希望您的最终用户在其上执行服务操作的产品。在本示例中,我们选择Linux 桌面

  3. 选择产品版本。请注意,您可以使用顶部的复选框选择所有版本。

  4. 选择关联操作

  5. 在下一页上,将显示一条确认消息。

您现在已经在 Amazon Service Catalog 中创建了服务操作。本教程的下一步是,以最终用户身份使用服务操作。

步骤 4:测试最终用户体验

最终用户可以在预配置产品上执行服务操作。在本教程中,最终用户至少必须具有一个预配置产品。预配置产品应从您在上一步中与服务操作关联的产品版本启动。

以最终用户身份访问服务操作
  1. 以最终用户身份登录 Amazon Service Catalog 控制台。

  2. 在 Amazon Service Catalog 控制面板上的导航窗格中,选择预配置产品列表。此列表将显示为最终用户账户预配置的产品。

  3. 预配置产品列表 页面上,选择已预配置的实例。

  4. 预配置产品详细信息页面上,选择右上角的操作,然后选择 Amazon-RestartEC2instance 操作。

  5. 确认您要执行自定义操作。您收到操作已发送的确认。

步骤 5:使用 Amazon CloudFormation 管理服务操作

您可以使用 Amazon CloudFormation 资源创建服务操作及其关联。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的以下内容:

注意

如果您要管理 Amazon CloudFormation 资源的服务操作关联,请不要通过 Amazon Command Line Interface 或 Amazon Web Services Management Console 添加或删除服务操作。当您执行堆栈更新时,在 Amazon CloudFormation 之外对服务操作所做的任何更改都将被替换。

步骤 6:问题排查

如果您的服务操作执行失败,则可以在预配置产品页面上服务操作执行事件的输出部分中找到错误消息。您可以在下面看到常见错误消息的说明。

注意

错误消息的确切文本可能会发生更改,因此您应避免在任何类型的自动执行的过程中使用这些文本。

内部故障

Amazon Service Catalog 遇到了内部错误。请稍后重试。如果错误仍存在,请与客户支持联系。

调用 StartAutomationExecution 操作时出错 (ThrottlingException)

服务操作执行受后端服务(例如 SSM)的限制。

代入角色时拒绝访问

Amazon Service Catalog 无法代入在服务操作定义中指定的角色。请确保在角色的信任策略中将 servicecatalog.amazonaws.com 主体或区域主体(如 servicecatalog.us-east-1.amazonaws.com)列入允许列表。

调用 StartAutomationExecution 操作时出错 (AccessDeniedException):用户无权在资源StartAutomationExecution 上执行:ssm:。

服务操作定义中指定的角色无权调用 ssm: StartAutomationExecution。确保角色具有适当的 SSM 权限。

TargetType在预配置产品中找不到任何类型为的资源

预配置产品不包含任何与在 SSM 文档中指定的目标类型匹配的资源,例如 Amazon::EC2::实例。检查您的预配置产品是否有这些资源,或确认文档是否正确。

Document with that name does not exist (具有该名称的文档不存在)

在服务操作定义中指定的文档不存在。

Failed to describe SSM Automation document (无法描述 SSM Automation 文档)

Amazon Service Catalog 在尝试描述指定文档时遇到来自 SSM 的未知异常。

Failed to retrieve credentials for role (无法检索角色的凭证)

Amazon Service Catalog 在代入指定的角色时遇到未知错误。

{ValidValue1}、{ValidValue2} 中找不到参数的值 InvalidValue“”

传递给 SSM 的参数值不在文档的允许值列表中。确认提供的参数有效,然后重试。

参数类型错误。为提供的值ParameterName不是有效的字符串。

传递给 SSM 的参数值对文档上的类型无效。

Parameter is not defined in service action definition (未在服务操作定义中定义参数)

已将一个未在服务操作定义中定义的参数传递给 Amazon Service Catalog。您只能使用在服务操作定义中定义的参数。

执行/取消操作时,步骤失败。错误消息。有关更多诊断详细信息,请参阅 Automation 服务问题排查指南。

SSM Automation 文档中的步骤失败。请参阅消息中的错误以进一步排除问题。

不允许使用以下参数值,因为它们不在预配置产品中:InvalidResourceId

用户已请求对不在预配置产品中的资源执行操作。

TargetType 未为 SSM 自动化文档定义

服务操作需要 SSM 自动化文档进行 TargetType 定义。检查您的 SSM Automation 文档。