共享镜像可用于同地域跨账号部署ECS实例。当您需要共享加密自定义镜像时,需先创建对应角色并授予指定的权限与策略,然后才可以将加密自定义镜像共享给其他阿里云账号或者基于资源目录在企业组织内共享使用。本文介绍共享加密自定义镜像的注意事项及操作流程。

操作场景

说明 共享加密自定义镜像的功能目前支持华北2(北京)、华东2(上海)、中国(香港)、新加坡地域。
  • 场景一:您希望将一个阿里云账号下的镜像资源,直接共享给另外一个或多个阿里云账号使用。
  • 场景二:您在使用阿里云服务过程中,已通过资源目录将企业的多账号有序组织和集中管理起来,并希望将资源目录中某成员的镜像资源共享给整个资源目录(或者资源夹),此时可以通过资源目录实现资源共享。

    如果您将镜像共享给整个资源目录(或者资源夹),则资源目录(或者资源夹)下所有账号都可以访问共享镜像。且当资源目录(或者资源夹)内有新账号加入时,系统将自动触发新账号的镜像共享。当账号从资源目录(或者资源夹)内移出时,系统将自动取消该账号的镜像共享。更多信息,请参见资源共享概述

    说明 资源目录RD(Resource Directory)是阿里云面向企业用户提供的一套多级账号和资源关系管理服务。资源目录支持您快速建立一套符合企业业务关系的目录结构,并将企业多个账号分布到这个目录结构中的相应位置,从而形成资源间的多层级关系。更多信息,请参见资源目录概述

准备工作

  • 共享镜像之前,请确认自定义镜像已清除敏感数据和文件。
  • 需明确共享镜像的场景。
    • 将镜像共享给其他阿里云账号使用时,请先获取阿里云账号ID。

      获取方式:将鼠标移至控制台右上角的用户头像,在弹出的用户信息框中,如果标识了账号为主账号,则显示的账号ID即为阿里云账号ID。

    • 基于资源目录在企业组织内共享使用时,请先使用管理账号或成员账号开通资源目录。具体操作,请参见开通资源目录
  • 仅支持同地域跨账号共享镜像。如需跨地域共享镜像,请先复制镜像到目标地域后再共享或者先共享镜像后再跨地域复制镜像。具体操作,请参见复制镜像

注意事项

共享镜像前,请仔细阅读以下注意事项:

共享者

注意项说明
共享费用不收取共享费用。
账号权限
  • 您只能共享自己的自定义镜像,其他用户共享给您的镜像无法再次共享。
  • 每份自定义镜像最多可以共享给50个用户。
  • 共享对象是阿里云账号(主账号)时,镜像的源账号和目标账号必须为阿里云账号。阿里云账号与其RAM账号之间的相关权限说明如下:
    • 例如,阿里云账号A共享镜像给阿里云账号B,则账号B需要为其RAM账号B1添加对应的自定义权限策略,实现相应的功能。详细说明如下:
      说明
      场景一:如果RAM用户B1(阿里云账号B的子账号)需要查看共享镜像,则需要具备DescribeImages接口权限,自定义权限策略如下。
      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeImages",
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
      场景二:如果RAM用户B1(阿里云账号B的子账号)需要通过共享镜像创建ECS实例,则需要具备RunInstances或者CreateInstance接口权限,自定义权限策略如下。
      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:RunInstances",
                      "ecs:CreateInstance"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
      更多信息,请参见通过脚本编辑模式创建自定义权限策略
    • 如果在某些特定场景下需要实现某些权限控制,例如仅允许RAM用户B1(阿里云账号B的子账号)使用阿里云账号A共享的自定义镜像创建ECS实例,或者仅允许RAM用户B1(阿里云账号B的子账号)使用自定义镜像创建ECS实例,不允许使用公共镜像、市场镜像等创建ECS实例等场景,则账号B需要为其RAM账号B1添加对应的自定义权限策略。更多信息,请参见共享镜像权限策略说明
地域限制
  • 仅支持同地域跨账号共享,不支持跨地域共享镜像。如需跨地域共享镜像,请先复制镜像到目标地域后再共享或者先共享镜像后再跨地域复制镜像。具体操作,请参见复制镜像
  • 将镜像共享给其他阿里云账号使用时,支持中国站、国际站和日本站账号之间共享镜像,但是基于镜像市场镜像创建的自定义镜像除外。由于基于镜像市场镜像创建的自定义镜像在不同的站点费用不同,所以不支持跨站点共享。

共享对象

注意项说明
共享费用
  • 共享镜像不会占用共享对象的自定义镜像额度,阿里云也不会向共享对象收取镜像共享费用。
  • 如果共享镜像的最终来源为付费镜像且共享对象使用该共享镜像创建ECS实例,则会向共享对象收取镜像费用。例如:源镜像A是付费镜像,用户A把该镜像共享给用户B,用户B使用该共享镜像创建了实例,则用户B需要支付镜像费用以及创建实例的费用。

镜像计费的更多信息,请参见镜像计费

使用限制共享对象只能使用共享镜像创建ECS实例,或者复制该共享镜像到自己账号下成为自定义镜像后进行删除或者更新。更多信息,请参见使用共享镜像

步骤一:创建角色并授权

当您需要共享加密自定义镜像时,需要先通过阿里云的访问控制创建名为AliyunECSShareEncryptImageDefaultRole的角色并授予指定的权限与策略,然后才可以将加密自定义镜像共享给其他阿里云账号基于资源目录在企业组织内共享使用。

  1. 使用共享者的阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 角色
  3. 单击创建角色,然后在创建角色面板中完成以下配置。
    1. 选择类型页面,选择阿里云账号,然后单击下一步
    2. 配置角色页面,角色名称下的文本框中输入AliyunECSShareEncryptImageDefaultRole,并在选择信任的云账号区域单击当前云账号,然后单击完成
    3. 创建完成页面,单击为角色授权
    4. 添加权限面板的选择权限区域,单击系统策略,然后在搜索框中输入AliyunKMSFullAccess进行搜索。
      其他未说明的配置项保持默认配置即可。KMS权限
    5. 添加AliyunKMSFullAccess权限,单击确定,然后单击完成
  4. 返回角色页面,通过创建角色后的搜索框,搜索AliyunECSShareEncryptImageDefaultRole角色,然后单击角色名进入角色详情页。
    角色
  5. 在角色详情页修改信任策略。
    1. 单击信任策略管理
    2. 单击修改信任策略,然后将默认的信任策略进行替换。
      • 如果您的自定义镜像需要共享给单个阿里云账号,请使用如下信任策略进行替换。其中,<UID>为变量,您需要修改为共享对象的阿里云账号ID。
        {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "<UID>@ecs.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }
      • 如果您的自定义镜像需要共享给多个阿里云账号,请使用如下信任策略进行替换。其中,<UID>为变量,您需要分别修改为共享的阿里云账号ID。
        {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "<UID-1>@ecs.aliyuncs.com",
                  "<UID-2>@ecs.aliyuncs.com",
                  "<UID-3>@ecs.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }
      • 如果您是将镜像基于资源目录在企业组织内共享使用,请根据实际场景使用如下信任策略进行替换。
        • 场景一:共享给整个资源目录,需指定资源目录ID
          {
            "Statement": [
              {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                  "Service": "*@ecs.aliyuncs.com"
                },
                "Condition": {
                  "StringEquals": {
                    "sts:ServiceOwnerRDId": "<资源目录ID>"
                  }
                }
              }
            ],
            "Version": "1"
          }

          其中,资源目录ID为变量,您需要修改为共享对象的资源目录ID。关于如何查看资源目录ID的具体操作,请参见查看资源目录基本信息

        • 场景二:共享给具体的资源夹,需指定资源夹RDPath,格式为<资源目录ID>/<Root资源夹ID>/……/<当前资源夹ID*>
          {
            "Statement": [
              {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                  "Service": "*@ecs.aliyuncs.com"
                },
                "Condition": {
                  "StringLike": {
                    "sts:ServiceOwnerRDPath": "<资源目录ID>/<Root资源夹ID>/……/<当前资源夹ID*>"
                  }
                }
              }
            ],
            "Version": "1"
          }

          其中,资源夹RDPath为变量,您需要修改为共享对象的资源夹RDPath。关于如何查看资源夹RDPath的具体操作,请参见查看资源夹基本信息

    3. 单击确定

步骤二:共享加密自定义镜像

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择实例与镜像 > 镜像
  3. 在顶部菜单栏左上角处,选择地域。
  4. 自定义镜像页签,找到待共享的自定义镜像,在操作列单击共享镜像
  5. 共享镜像对话框中,根据实际的共享镜像场景完成操作。
    • 将镜像共享给其他阿里云账号使用
      1. 对端待共享账号ID处输入共享对象的阿里云账号ID。您可以最多同时输入50个阿里云账号ID。
      2. 单击共享镜像
      共享给阿里云账号
    • 基于资源目录在企业组织内共享使用
      1. 共享对象类型右侧单击组织内共享
        说明 仅开通了资源目录的管理账号或成员账号才可以进行组织内共享,如果您看不到组织内共享入口,请先开通资源目录。具体操作,请参见开通资源目录
        组织内共享
      2. 跳转到资源共享控制台完成共享操作。具体操作,请参见创建共享单元
        说明选择共享的资源区域配置参数时,资源类型需选择ECS镜像

后续步骤

  • 成功共享镜像后,共享对象就可以在ECS控制台使用该镜像。具体操作,请参见使用共享镜像
  • 如果不再需要共享自定义镜像时,您可以取消共享镜像。具体操作,请参见取消共享镜像