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

完成先决条件步骤

此处介绍的先决条件步骤需要配置 IAM 的管理员级权限,以便您可以授予其他用户生成私有映像的能力。创建 IAM 策略和角色后,您可以将它们附加到组(或用户)账户,以便关联的用户可以生成私有映像。

IAM 是一项 Web 服务,可以帮助您安全地控制对 AWS 资源的访问。可以使用 IAM 来控制谁通过了身份验证(准许登录)并获得授权(拥有权限)来使用资源。您将创建身份(用户、组和角色)并将这些用户添加到组,以便您可以管理组而不是各个用户。IAM 角色类似于用户,因为它是一个身份,该实体拥有的权限策略确定其在 AWS 中可执行和不可执行的操作。但是,角色没有任何关联的凭证(密码或访问密钥)。角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。IAM 用户可担任角色来暂时获得针对特定任务的不同权限。

IAM 的访问管理部分可帮助您定义用户或其他实体可在账户内执行的操作,这通常称为授权。权限是通过策略授予的。策略是 AWS 中的一个实体;在附加到身份或资源时,策略定义了它们的权限。在委托人(如用户)发出请求时,AWS 将评估这些策略。策略中的权限确定是允许还是拒绝请求。策略作为 JSON 文档存储在 AWS 中,可作为基于身份的策略 附加到委托人或作为基于资源的策略 附加到资源。您可通过定义权限策略并将策略分配给组来授予权限。

基于身份的策略是权限策略,可附加到委托人或身份(如 IAM 用户、角色或组)。基于资源的策略是附加到资源(如 Amazon Simple Storage Service (Amazon S3) 存储桶)的 JSON 策略文档。基于身份的策略控制身份可以在何种条件下对哪些资源执行哪些操作。基于身份的策略可分为 AWS 托管策略客户托管策略内联策略

基于资源的策略控制指定的委托人可以在何种条件下对该资源执行哪些操作。基于资源的策略是内联策略,没有基于资源的托管策略。虽然 IAM 身份从技术上是 AWS 资源,但您无法将基于资源的策略附加到 IAM 身份。您必须在 IAM 中使用基于身份的策略。信任策略 是附加到某一角色的基于资源的策略,它们定义了可担任该角色的委托人。在 IAM 中创建角色时,该角色必须具有以下两项内容:一项是指示谁可担任该角色的信任策略,另一项是指示他们可使用该角色执行哪些操作的权限策略。请记住,将账户添加到角色的信任策略只是建立信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色,直至该账户的管理员向用户授予担任角色的权限。

AWS Marketplace 映像生成服务使用两个 IAM 角色,每个角色都有一个权限策略和一个信任策略。如果您让 IAM 用户访问 AWS Marketplace 网站来生成私有映像,那么这些用户还需要 IAM 权限以列出并分配角色创建和查看他们生成的私有映像所需的角色。如果您更愿意使用 AWS Marketplace 映像生成服务 API,那么您的用户需要其他角色来授予调用该服务 API 的权限。

作为管理员,您需要创建两个必需的角色及其关联策略。第一个角色是实例配置文件,它附加到映像生成过程中创建的实例。实例配置文件是 IAM 角色的容器,可用来在实例启动时将角色信息传递给 Amazon EC2 实例。第二个角色是 IAM 角色,它提供对 AWS Systems Manager 和 Amazon EC2 的访问。要配置实例配置文件,请附加提供所需权限的权限策略。然后,编辑该角色的信任策略以授予 Amazon EC2 和 AWS Systems Manager 担任该角色的权限。

创建实例配置文件角色

要通过 IAM 控制台创建实例配置文件角色,请执行以下操作:

  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在 IAM 控制台的导航窗格中,依次选择 Roles (角色)Create role (创建角色)

  3. 对于 Select type of trusted entity (选择受信任实体的类型),选择 AWS service (AWS 服务)

  4. 对于 Choose the service that will use this role (选择将使用此角色的服务),依次选择 EC2Next: Permissions (下一步: 权限)

  5. 对于 Create policy (创建策略),选择 Next: Review (下一步: 审核)

  6. 对于 Role name (角色名称),键入有助于识别此角色的作用的角色名称或角色名称后缀,例如 MyInstanceRole。角色名称在您的 AWS 账户中必须是唯一的。

  7. 检查角色,然后选择 Create role

  8. Roles (角色) 页面上,选择您已创建的角色。

  9. 对于 Permissions (权限),选择 Add inline policy (添加内联策略)

  10. 选择 JSON 选项卡并将所有现有文本替换为以下 InstanceRolePermissionsPolicy 文本。

    InstanceRolePermissionsPolicy:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeAssociation", "ssm:GetDocument", "ssm:GetManifest", "ssm:GetParameters", "ssm:ListAssociations", "ssm:ListInstanceAssociations", "ssm:PutConfigurePackageResult", "ssm:UpdateAssociationStatus", "ssm:UpdateInstanceAssociationStatus", "ssm:UpdateInstanceInformation" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint", "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ec2:DescribeInstanceStatus" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::ssmlogbucket-us-east-1-<account-id>/*", "Effect": "Allow" } ] }
  11. 选择查看策略

  12. 对于 Policy name (策略名称),键入有助于识别此策略的作用的名称(例如 MyInstanceRolePolicy),然后选择 Create policy (创建策略)

编辑角色的信任关系

  1. Roles (角色) 页面上,选择您已创建的角色。

  2. 选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)

  3. 选择 Policy Document (策略文档) 文本框中的所有文本并将其替换为以下 InstanceRoleTrustPolicy 文本。

    InstanceRoleTrustPolicy:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  4. 选择 Update Trust Policy

创建 AWS Systems Manager Automation 角色

要创建 AWS Systems Automation 角色,请执行以下操作:

  1. 在 IAM 控制台的导航窗格中,依次选择 Roles (角色)Create role (创建角色)

  2. 对于 Select type of trusted entity (选择受信任实体的类型),选择 AWS service (AWS 服务)

  3. 对于 Choose the service that will use this role (选择将使用此角色的服务),依次选择 EC2Next: Permissions (下一步: 权限)

  4. 对于 Create policy (创建策略),选择 Next: Review (下一步: 审核)

  5. 对于 Role name (角色名称),键入有助于识别此角色的作用的角色名称或角色名称后缀,例如 MyAutomationRole。角色名称在您的 AWS 账户中必须是唯一的。

  6. 检查角色,然后选择 Create role

  7. Roles (角色) 页面上,选择您已创建的角色。

  8. 对于 Permissions (权限),选择 Add inline policy (添加内联策略)

  9. 选择 JSON 选项卡并将所有现有文本替换为以下 AutomationRolePermissionsPolicy 文本。

    AutomationRolePermissionsPolicy:

    "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:*" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Action": [ "ec2:CreateImage", "ec2:DescribeImages", "ec2:StartInstances", "ec2:RunInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:DescribeInstanceStatus", "ec2:CreateTags", "ec2:DescribeTags" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": [ "{{ Instance Profile }}" ], "Effect": "Allow" } ] }

    注意

    您必须将 {{ Instance Profile }} 替换为先前创建的实例策略角色的 Amazon 资源名称 (ARN)。在 IAM 管理控制台中找到该角色并选择它。在该角色的摘要页面上,Role ARN (角色 ARN) 是首个列出的项目,例如 arn:aws:iam::123456789012:role/MyInstanceRole

编辑角色的信任关系

  1. Roles (角色) 页面上,选择您已创建的角色。

  2. 选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)

  3. Policy Document (策略文档) 文本框中的所有文本替换为以下 InstanceRoleTrustPolicy 文本。

    AutomationRoleTrustPolicy:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  4. 选择 Update Trust Policy

现在,您已创建了两个角色及关联的策略,在私有映像生成过程中将会使用它们。

使用策略访问 AWS Marketplace 网站

大多数组织不允许用户使用根账户凭证进行登录。而是根据组织角色或只有特定人员才能执行的任务创建具有有限权限的 IAM 用户。AWS Marketplace 为使用 AWS Marketplace 工具提供了两个主要的 IAM 托管策略。使用以下两个托管策略提供执行所描述任务的能力:

  • AWSMarketplaceFullAccess – 提供订阅或取消订阅 AWS Marketplace 软件的能力,允许用户从 Marketplace“Your Software (您的软件)”页面管理 Marketplace 软件实例,并提供对 EC2 的管理访问。

  • AWSMarketplaceRead-only – 提供审核 AWS 订阅的能力。

您可以将名为 AWSMarketplaceFullAccess 的托管策略添加到 IAM 用户、组或角色,以提供访问 AWS Marketplace 网站并执行与 AWS Marketplace 私有映像生成关联的任务所需的所有权限。要将策略添加到用户、组或角色,请执行以下操作:

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 AWS IAM 控制台:https://console.aws.amazon.com/iam

  2. 在 AWS IAM 控制台的导航窗格中,选择 Policies (策略)

  3. Filter policies (筛选策略) 旁边,输入 AWSMarketplaceFullAccess。该策略应列在结果中。

  4. Results (结果) 窗格中,选择 AWSMarketplaceFullAccess

  5. Policy actions (策略操作) 下拉菜单中,选择 Attach (附加)

  6. 选择要将此策略附加到的用户、组和角色,然后选择 Attach Policy (附加策略)

当所选用户、组成员或角色下次访问 AWS Marketplace 网站时,他们便可执行与私人映像生成过程关联的任务。

此外,还有一个名 AWSMarketplaceImageBuildFullAccess 的 IAM 托管策略,可用于提供使用 AWS 命令行界面 (AWS CLI) 或 AWS Marketplace 映像生成服务 API 时使用 AWS Marketplace 私有映像生成所需的所有权限。您也可以将此托管策略用作向 AWS Marketplace 私有映像生成网站用户授予更严格权限(比 AWSMarketplaceFullAccess 严格)的基准。您还将需要添加 IAM 和 AWS EC2 的权限。

您也可以使用 AWS 命令行界面 (AWS CLI) 完成生成私有映像的先决条件步骤。使用该方法的详细信息如“API 参考”一节中所述。