借助ECS实例RAM角色,无需配置AccessKey(AK)即可访问ACM,提高了安全性。
背景资料
以往部署在ECS实例中的应用如果需要访问ACM,必须将AccessKey以配置文件或其他形式保存在ECS实例中,这在一定程度上增加了AK管理的复杂度,降低了AK 性别的机密性。AccessKey的详细介绍请参见创建AccessKey。
现在有了 ECS 实例 RAM 角色,您可以将 RAM 角色与 ECS 实例关联,然后告诉 ACM SDK(版本 1.0.8 及以上版本)RAM 角色名称,然后您就不需要配置 AK 访问 ACM。此外,通过RAM(Access Control),您可以通过角色和授权策略来达到不同实例对ACM具有不同访问权限的目的。例如,如果配置了只读策略,则与该角色关联的ECS只能读取ACM配置,而不能添加或修改ACM配置。
前提条件
您已成功创建ECS实例,该ECS实例的网络环境为私有网络(VPC)。
第一步:创建RAM角色并配置授权策略
1、用你的云账号登录RAM控制台。
2、在左侧导航窗格中,单击 RAM 角色管理。
3、点击创建RAM角色,选择可信实体类型为阿里云服务,点击下一步。
4、选择角色类型,输入角色名称和备注,选择可信服务作为云服务器,点击完成。
5、在 RAM 角色名称栏中,找到刚刚创建的 RAM 角色。
6、单击操作列中的添加权限。
7、在添加权限对话框中,通过关键字搜索授权策略AliyunACMFullAccess,点击授权策略,将其添加到右侧选中的授权列表中,点击确定。
注意 如果需要使用加解密配置功能,还需要添加 AliyunKMSCryptoAdminAccess 授权策略。
至此,该角色拥有ACM的所有操作权限。
步骤 2:将 RAM 角色授予 ECS 实例
1、登录ECS控制台,单击左侧导航栏中的Instances。
2、在实例列表中目标ECS实例的Actions栏中点击更多>实例设置>授予/回收RAM角色。
3、在“授予/回收 RAM 角色”对话框中,选择在步骤 1 中创建的 RAM 角色。
说明 如果您尚未创建 RAM 角色,请单击“创建 RAM 角色”进行创建。
步骤 3:将 RAM 角色名称通知 ACM SDK 并访问配置
RAM角色名称通知ACM SDK(1.0.8及以上版本)有两种方式:通过JVM参数设置和通过代码参数设置。
表示JVM参数设置方法的优先级高于代码参数传递方法。
通过JVM参数设置:
格式:-Dram.role.name=$ramRoleName 示例:-Dram.role.name=ECS-RAM
通过代码传参设置:
import java.util.Properties; import com.alibaba.edas.acm.ConfigService; import com.alibaba.edas.acm.exception.ConfigException; // 示例代码,仅用于示例测试public class ACMTest { public static void main(String[] args) { try { Properties properties = new Properties(); // endpoint可以从ACM控制台“命名空间详情”或“示例代码”中获取properties.put("endpoint", "$endpoint"); // namespace可以从ACM控制台“命名空间详情”或“示例代码”中获取properties.put("namespace", "$namespace"); // 刚刚新建并绑定到ECS实例的RAM角色名称,如“ECS-RAM”properties.put("ramRoleName", "$ramRoleName"); ConfigService.init(properties); // 主动获取配置String content = ConfigService.getConfig("${dataId}", "${group}", 6000); System.out.println(content); } catch (ConfigException e) { e.printStackTrace();
:如何利用阿里云ECS实例RAM角色访问ACM?RAM角色访问ACM的详细教程,https://vps.caogenba.com.com/68569.html
如今做站的人不多了,多个朋友多条路子,加入站长论坛和大佬们同道交流,Tips:可以免费打广告哦~ 点击立即加入>>