将阿里云服务器(ECS)授权给第三方公司使用,核心在于权限隔离、审计追踪和最小权限原则。直接共享主账号密码是绝对禁止的“高危操作”,一旦泄露,你将失去对资源的所有控制权。
以下是基于阿里云官方最佳实践的安全授权方案,按推荐程度排序:
方案一:RAM 角色委托(最推荐,安全系数最高)
这是云原生环境下的标准做法。通过创建 RAM 角色(Role),让第三方公司的阿里云账号(或他们的应用身份)临时获取访问你资源的权限,无需长期持有密钥。
实施步骤:
-
在阿里云账号 A(你的账号)中:
- 进入 RAM 控制台 -> 身份管理 -> 角色。
- 创建一个新角色,信任实体选择 “阿里云服务” 或 “其他阿里云账号”(如果对方有独立阿里云账号)。
- 如果是给第三方人员手动操作,选择 “其他阿里云账号”,输入对方的阿里云账号 ID。
- 附加策略:不要直接附加
AdministratorAccess。根据需求自定义或选择最小权限策略,例如:AliyunECSReadOnlyAccess(只读)AliyunECSFullAccess(完整控制,慎用)- 或者自定义 JSON 策略,仅允许操作特定标签(Tag)的资源。
-
在阿里云账号 B(第三方公司)中:
- 用户以自身身份登录 RAM 控制台。
- 尝试扮演(AssumeRole)你在账号 A 中创建的 RAM 角色。
- 系统会生成临时 STS Token(AccessKeyId, AccessKeySecret, SecurityToken),有效期可设置(如 15 分钟~1 小时)。
-
优势:
- 无永久密钥泄露风险。
- 可随时撤销角色信任关系,立即切断权限。
- 所有操作均通过 STS Token 记录在 CloudTrail(操作日志)中,明确标记为“由 XXX 账号扮演”。
方案二:子账号 + 权限边界 + MFA(适用于固定人员协作)
如果第三方需要长期使用某个固定入口,且你们之间建立了信任关系,可以为第三方创建一个独立的 RAM 子账号,并严格限制其权限范围。
实施步骤:
-
创建 RAM 子账号:
- 在 RAM 控制台创建新用户,开启 MFA(多因素认证),强制要求动态令牌。
- 分配 AccessKey(用于 API 调用)或设置控制台登录密码。
-
精细化权限策略(Policy):
- 关键原则:按资源标签(Tag)授权。
- 给你的 ECS 实例打上特定标签,如
Owner: ThirdPartyCompany。 - 编写自定义策略,仅允许对带有该标签的 ECS 实例进行操作:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:StartInstance", "ecs:StopInstance", "ecs:DescribeInstances" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:ResourceTag/Owner": "ThirdPartyCompany" } } } ] } - 这样,即使子账号被攻破,攻击者也无法查看或操作其他无关资源。
-
启用操作审计(ActionTrail):
- 确保 ActionTrail 已开启,并将日志投递到 SLS 或 OSS,保留至少 180 天,以便事后追责。
方案三:SSH 密钥对 + 堡垒机(JMP/Bastion Host)
如果第三方需要通过 SSH/RDP 登录服务器进行运维,严禁共享 root 密码或普通用户密码。应结合阿里云堡垒机(Cloud Bastion Host)实现。
实施步骤:
-
禁用密码登录:
- 在 ECS 实例的安全组和安全设置中,禁用密码登录,仅允许密钥对(Key Pair)或堡垒机X_X连接。
-
部署阿里云堡垒机:
- 购买并配置阿里云堡垒机服务。
- 将目标 ECS 资产接入堡垒机。
- 为第三方人员创建堡垒机账号,绑定其个人身份。
-
权限管控:
- 在堡垒机中设置命令过滤规则(如禁止
rm -rf /,sudo su等高危命令)。 - 所有会话录像、键盘操作均可追溯。
- 在堡垒机中设置命令过滤规则(如禁止
-
优势:
- 彻底解决凭据共享问题。
- 满足等保合规要求。
- 支持双人复核机制(高危操作需审批)。
方案四:资源目录 + 成员账号(适用于集团化管控)
如果第三方是公司长期合作伙伴,且双方都有阿里云账号,建议使用 资源目录(Resource Directory) 功能。
- 将第三方的阿里云账号作为“成员账号”加入你的“管理账号”。
- 通过 文件夹(Folder) 和 权限集(Permission Set) 实现细粒度授权。
- 可实现跨账号账单分摊、统一身份管理等高级功能。
⚠️ 绝对禁止的操作(红线)
- 共享主账号 AK/SK:任何人拿到主账号 AccessKey,等同于拥有整个账户的控制权,包括删除数据、修改计费信息、创建后门实例等。
- 共享 Root 密码或服务器密码:密码可能被记录在本地、传输中截获、或通过社工手段破解。
- 开放 0.0.0.0/0 到 SSH (22) 或 RDP (3389):除非使用堡垒机或 IP 白名单,否则极易遭受暴力破解。
- 未启用 MFA 的 RAM 用户:没有多因素认证的子账号是重大安全隐患。
✅ 最佳实践总结 checklist
| 项目 | 建议措施 |
|---|---|
| 身份认证 | 必须启用 MFA;优先使用 RAM 角色委托而非长期 AK/SK |
| 权限最小化 | 基于标签(Tag)或资源组(Resource Group)划分权限 |
| 网络隔离 | 使用 VPC 私网通信;公网访问必须通过堡垒机或安全组 IP 白名单 |
| 审计追踪 | 开启 ActionTrail,日志留存 ≥180 天;定期审查日志 |
| 数据备份 | 授权前创建快照(Snapshot),确保可回滚 |
| 合同约束 | 与第三方签订X_X协议(NDA),明确安全责任边界 |
最后提醒:技术只是手段,管理才是核心。建议在授权前,与第三方明确“哪些操作可以做,哪些绝对不能做”,并通过技术手段落地这些规则。如有必要,可聘请第三方安全机构进行渗透测试,验证授权后的安全性。
CLOUD云枢