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

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

亚马逊 Service Catalog 服务操作

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

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

Prerequisites

本教程假定您具有完整的 Amazon Web Services 管理员权限,已熟悉亚马逊 Service Catalog,并且您已具有一组基础的产品、产品组合和用户。如果您不熟悉 Amazon Service Catalog,请填写设置入门任务,然后再使用本教程。

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

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

更新权限

  1. 打开 Amazon Identity the target (IAM) 控制台,网址为https://console.aws.amazon.com/iam/

  2. 从菜单中,选择

  3. 在存储库的Groups页面上,选择最终用户用于访问 Amazon Service Catalog 资源的组。在本示例中,我们选择最终用户组。在您自己的实现中,选择相关最终用户使用的组。

  4. 在组的详细信息页面的权限选项卡上,创建新策略或编辑现有策略。在本示例中,我们通过选择为组的 Amazon Services 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. 从菜单中,选择 Service actions (服务操作)

  3. service actions (服务操作) 页面上,选择 Create new action (创建新操作)

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

  5. 选择 AWS-RestartEC2Instance 操作。

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

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

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

  9. 审查配置之后,选择 Create action (创建操作)

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

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

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

  1. Service actions (服务操作) 页面上,选择 AWS-RestartEC2instance,然后选择 Associate action (关联操作)

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

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

  4. 选择 Associate action (关联操作)

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

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

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

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

以最终用户身份访问服务操作

  1. 以最终用户身份登录 Amazon Service Catalog 控制台。

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

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

  4. Provisioned product details (预配置产品详细信息) 页面上,选择右上角的 Actions (操作),然后选择 AWS-RestartEC2instance 操作。

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

第 5 步:故障排除

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

注意

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

Internal failure (内部故障)

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

An error occurred (ThrottlingException) when calling the StartAutomationExecution operation (调用 StartAutomationExecution 操作时发生错误 (ThrottlingException))

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

Access denied while assuming the role (代入角色时拒绝访问)

Amazon Service Catalog 无法代入在服务操作定义中指定的角色。确保已将服务目录 .amazonaws.com委托人,或区域委托人,例如服务类别 .us-east-1.amazonaws.com已允许在角色的信任策略中列出。

在调用 StartAutomation 操作时出错 (AAccessDeniedException): 用户未获得对资源执行操作所需的权限:SSM:StartAutomation 操作。

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

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

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

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 在代入指定的角色时遇到未知错误。

参数具有值”InvalidValue“未找到在{ValidValue1},{ValidValue2}

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

Parameter type error. 提供的值ParameterName不是有效的字符串。

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

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

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

Step fails when it is executing/canceling action. (执行/取消操作时,步骤失败。) 错误消息。 Please refer to Automation Service Troubleshooting Guide for more diagnosis details.(有关更多诊断详细信息,请参阅 Automation 服务问题排查指南。)

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

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

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

TargetType not defined for SSM Automation document (未为 SSM Automation 文档定义 TargetType)

服务操作需要 SSM Automation 文档才能定义 TargetType。查看您的 SSM 自动化文档。