说明
尽管以下提供了长期密钥的最佳实践,但我们仍然建议您优先使用临时密钥进行云服务访问,请参考本文末节的临时安全凭证方案推荐。
不新建主账号密钥: 主账号密钥拥有账号的全部权限,一旦发生泄露,可能会影响整个账号内云资源的安全,因此强烈建议不使用主账号密钥进行程序开发。
使用最小化权限的子用户密钥: 建议为应用程序建立独立的IAM用户(一些场景又称为“工作负载用户”或“服务账号”),为该IAM用户分配所需最小权限,并以用此用户的密钥进行程序开发。
工作负载用户和登录用户严格划分: 建议严格划分登录用户和工作负载用户。避免登录用户可以创建密钥、工作负载用户可以被登录,从而避免运维人员管理不当导致密钥泄露或者误操作,也避免在人员转岗或离职时用户密钥随IAM用户一并清除的风险。
程序长时间使用固定的密钥会增加密钥泄露带来的风险,建议定期对密钥进行轮换,最长轮换时间建议不超过90天。
控制台中查看密钥最近访问时间:
说明
密钥最后访问时间功能上线后,系统自动回溯了2024年1月1日之后的访问记录,对于2024年1月1号之前的访问,不在统计范围内。具体的影响是,若您的访问密钥在2024年1月1日之后从未使用,最近访问时间将不显示。
当密钥超过90天未轮转时,系统会给出提示,建议您及时处理密钥。建议对长时间不使用的密钥进行禁用与删除:
切勿将API密钥写入代码中或存储在代码仓库中,以防止密钥跟随代码被共享;
避免将API密钥放置公开环境(如上传至GitHub);
避免将API密钥放置在客户端环境或者是云计算资源中,这类场景请参考使用本文末节的临时安全凭证(STS)方案。
当您需要从火山引擎计算资源(当前支持云服务器和容器服务)中发起访问时或其他不受信环境访问时,建议采取以下方案:
场景 | 方案 |
---|---|
云服务器内访问 | 使用 Instance Role通过实例元数据进行访问。 |
容器服务内访问 | 使用 IRSA方案。 |
客户端等其他不完全受信的环境访问 | 使用信任账号的角色扮演方案。 |
说明
我们推荐即使是在企业认为相对安全的环境中访问时,也尽可能使用临时安全凭证方案进行访问,以最大化保障您的云资产安全。