创建可信实例时如果需要使用阿里云的可信系统,还需要开通一些权限以便可信实例在启动时向阿里云云安全中心上报可信信息。本文介绍如何创建一台使用阿里云可信系统的可信实例。
创建可信实例
通过控制台创建
在控制台创建可信实例的步骤与创建普通实例类似,但需要注意一些特定选项。本步骤重点介绍可信实例相关的特定配置,如果您想了解其他通用配置,请参见自定义购买实例。
登录ECS管理控制台。
在左侧导航栏,选择 。
单击创建实例。
在实例和镜像区域,选择实例和镜像。
实例:筛选并选中一款支持vTPM特性的实例规格。更多信息,请参见支持可信计算能力的实例规格族。
镜像:
根据实例规格族选择支持的镜像版本。
(可选)选中可信系统。
说明选中可信系统即可为实例启用阿里云可信系统,在实例启动时通过阿里云可信系统完成可信校验。如果您需要自建可信服务系统,可以跳过该步骤。
在带宽和安全组区域,选择安全组。如果出现开通KMS密钥管理服务对话框,单击开通。
创建可信实例时必须开通KMS,否则会创建失败。如果您已经开通了KMS,则不会出现该对话框,请继续完成网络和安全组的配置。
(条件必选)单击高级选项,选择实例RAM角色。
如果您为实例选中了可信系统,则需要为实例设置一个RAM角色,该RAM角色必须拥有访问可信服务的权限。阿里云为您提供了对应的服务角色AliyunECSInstanceForYundunSysTrustRole,建议您按照以下步骤设置并选择该策略:
说明如果您需要更精确或定制化的配置,请自定义角色并根据需求进行授权。自定义RAM角色时需要注意一些事项,更多信息,请参见RAM角色权限注意事项。
单击先授权。
在弹出的云资源访问授权对话框,单击同意授权。
在新窗口中,单击同意授权。
单击我已授权。
选择AliyunECSInstanceForYundunSysTrustRole作为RAM角色。
说明您也可以跳过授权的步骤,在创建实例之后再进行授权。具体操作,请参见通过ECS实例RAM角色授权ECS访问其他云服务。
按照页面提示,完成实例的创建。
通过API创建
调用API创建可信实例时,请注意:
必须先开通KMS权限,否则实例会创建失败。具体操作,请参见开通密钥管理服务。
如果使用阿里云可信系统,您需要为可信实例设置一个RAM角色,该角色必须拥有访问可信服务的权限,以便可信实例在启动时向云安全中心上报可信信息。具体操作,请参见通过ECS实例RAM角色授权ECS访问其他云服务。自定义RAM角色时的注意事项,请参见RAM角色权限注意事项。
说明如果您自建可信服务系统,则无需设置该RAM角色。
您可以调用RunInstances或CreateInstance创建实例,需要注意的参数如下表所示。
参数 | 说明 | 示例 |
InstanceType | 指定一款支持vTPM特性的实例规格。更多信息,请参见支持可信计算能力的实例规格族。 | ecs.c6t.large |
ImageId | 指定可信实例支持的镜像ID。您可以调用DescribeImages查看镜像ID。 | aliyun_2_1903_x64_20G_secured_alibase_20210120.vhd |
SystemDisk.Category | 可信实例仅支持ESSD云盘。 | cloud_essd |
VSwitchId | 可信实例仅支持VPC,因此必须指定虚拟交换机ID。 | vsw-bp134jzf285qg9u6w**** |
RamRoleName | 指定RAM角色的名称。您也可以在创建实例后调用AttachInstanceRamRole为实例授予RAM角色。 | AliyunECSInstanceForYundunSysTrustRole |
UserData | 指定安装阿里云可信系统的安装脚本,需要为Base64编码形式。 Base64编码前的明文脚本内容,请参见安装阿里云可信系统的脚本。 |
|
SecurityOptions.TrustedSystemMode | 可信系统模式。当您调用RunInstances创建可信实例时,如果InstanceType参数取值为g7t、c7t或者r7t,则需要设置 说明 通过OpenAPI创建可信系统的ECS实例时,只能调用RunInstances实现,CreateInstance目前不支持设置可信系统模式参数( | vTPM |
请求示例:
https://ecs.aliyuncs.com/?Action=RunInstances
&RegionId=cn-hangzhou
&InstanceType=ecs.c6t.large
&ImageId=aliyun_2_1903_x64_20G_secured_alibase_20210120.vhd
&SystemDisk.Category=cloud_essd
&VSwitchId=vsw-bp134jzf285qg9u6w****
&SecurityGroupId=sg-bp1c3o8hzd14dovh****
&RamRoleName=AliyunECSInstanceForYundunSysTrustRole
&UserData=IyEvYmluL3NoCkNVUlBBVEg9YHB3ZGAKU0NSSVBUX1BBVEg9Ii9kb3dubG9hZC9saW51eC9zY3JpcHQvVHJ1c3RBZ2VudEluc3RhbGwuc2giClJFR0lPTl9JRD1gY3VybCAtcyAtLXJldHJ5IDEgLS1tYXgtdGltZSAzIGh0dHA6Ly8xMDAuMTAwLjEwMC4yMDAvbGF0ZXN0L21ldGEtZGF0YS9yZWdpb24taWRgClVQREFURV9TSVRFMT1odHRwOi8vdHJ1c3RjbGllbnQtJHtSRUdJT05fSUR9Lm9zcy0ke1JFR0lPTl9JRH0taW50ZXJuYWwuYWxpeXVuY3MuY29tClVQREFURV9TSVRFMj1odHRwOi8vdHJ1c3RjbGllbnQtJHtSRUdJT05fSUR9Lm9zcy0ke1JFR0lPTl9JRH0uYWxpeXVuY3MuY29tClVQREFURV9TSVRFMz1odHRwOi8vdC10cnVzdGNsaWVudC0ke1JFR0lPTl9JRH0ub3NzLXskUkVHSU9OX0lEfS1pbnRlcm5hbC5hbGl5dW5jcy5jb20KTVNHX0lORk89ImRvd25sb2FkaW5nIGluc3RhbGwgc2NyaXB0IGZyb20gc2l0ZSIKTVNHX0VSUj0iZG93bmxvYWQgZmlsZSBlcnJvci4iCk1TR19PSz0idHJ1c3QgY2xpZW50IGluaXQgZG9uZS4iCgppbnN0YWxsKCkKewogIGVjaG8gIiR7TVNHX0lORk99IiIgMS4uLiIKICBjdXJsIC1mc1NMICIke1VQREFURV9TSVRFMX0iIiR7U0NSSVBUX1BBVEh9InxzaAogIGlmIFsgJD8gPT0gMCBdOyB0aGVuCiAgICByZXR1cm4gMQogIGZpCiAgZWNobyAiJHtNU0dfSU5GT30iIiAyLi4uIgogIGN1cmwgLWZzU0wgIiR7VVBEQVRFX1NJVEUyfSIiJHtTQ1JJUFRfUEFUSH0ifHNoCiAgaWYgWyAkPyA9PSAwIF07IHRoZW4KICAgIHJldHVybiAyCiAgZmkKICBlY2hvICIke01TR19JTkZPfSIiIDMuLi4iCiAgY3VybCAtZnNTTCAiJHtVUERBVEVfU0lURTN9IiIke1NDUklQVF9QQVRIfSJ8c2gKICBpZiBbICQ/ID09IDAgXTsgdGhlbgogICAgcmV0dXJuIDMKICBmaQogIGVjaG8gIiIgMT4mMgogIGV4aXQgMQp9CgppbnN0YWxsCmVjaG8gIiR7TVNHX09LfSIKCmV4aXQgMAo=
&<公共请求参数>
正常返回示例:
XML格式
<RunInstancesResponse> <RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId> <InstanceIdSets> <InstanceIdSet>i-bp16byi4f3fti5b3****</InstanceIdSet> </InstanceIdSets> </RunInstancesResponse>
JSON格式
{ "RequestId": "BB694A51-7860-4B5C-B906-9B4077798672", "InstanceIdSets": { "InstanceIdSet": [ "i-bp16byi4f3fti5b3****" ] } }
RAM角色权限注意事项
建议您创建包含所需最小权限的自定义权限策略,并为RAM角色添加该策略。您可以将权限类型选为可信服务对应的系统策略(AliyunSysTrustFullAccess),也可以将权限类型选为自定义策略,以便精确授权。访问可信服务的精确策略如下所示:
虽然您也可以选择任意一个权限较大的系统策略,例如AdministratorAccess。但是,RAM权限关乎信息安全风险,强烈建议您按照实际需要分配最小权限,不要给予角色过多权限。更多信息,请参见什么是访问控制。
{
"Statement": [
{
"Action": [
"yundun-systrust:GenerateNonce",
"yundun-systrust:GenerateAikcert",
"yundun-systrust:RegisterMessage",
"yundun-systrust:PutMessage"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}
安装阿里云可信系统的脚本
#!/bin/sh
CURPATH=`pwd`
SCRIPT_PATH="/download/linux/script/TrustAgentInstall.sh"
REGION_ID=`curl -s --retry 1 --max-time 3 http://100.100.100.200/latest/meta-data/region-id`
UPDATE_SITE1=http://trustclient-${REGION_ID}.oss-${REGION_ID}-internal.aliyuncs.com
UPDATE_SITE2=http://trustclient-${REGION_ID}.oss-${REGION_ID}.aliyuncs.com
UPDATE_SITE3=http://t-trustclient-${REGION_ID}.oss-{$REGION_ID}-internal.aliyuncs.com
MSG_INFO="downloading install script from site"
MSG_ERR="download file error."
MSG_OK="trust client init done."
install()
{
echo "${MSG_INFO}"" 1..."
curl -fsSL "${UPDATE_SITE1}""${SCRIPT_PATH}"|sh
if [ $? == 0 ]; then
return 1
fi
echo "${MSG_INFO}"" 2..."
curl -fsSL "${UPDATE_SITE2}""${SCRIPT_PATH}"|sh
if [ $? == 0 ]; then
return 2
fi
echo "${MSG_INFO}"" 3..."
curl -fsSL "${UPDATE_SITE3}""${SCRIPT_PATH}"|sh
if [ $? == 0 ]; then
return 3
fi
echo "" 1>&2
exit 1
}
install
echo "${MSG_OK}"
exit 0