如果您拥有多个阿里云账号,希望能跨账号统一监控,实现不同账号中的应用跨调用链路追踪能力,那么您可以将应用数据上报到同一个账号中,并通过RAM用户或RAM角色授予其他人员查看或管理数据的权限。
使用限制
跨账号统一应用监控涉及到跨账号数据上报、跨账号授权、跨账号分账、账号切换,以及多账号体系下的细粒度权限管理,这会大幅度增加使用复杂度。请您在全面评估后,再考虑规划跨账号统一应用监控方案。对于使用多账号架构的企业,在大多数情况下,每个账号的应用都只接入该账号的ARMS是最好的选择。
解决方案
假设企业同时拥有阿里云账号A和B,账号A购买了ARMS产品,账号B购买了ECS、ACK等产品,现需要将账号B的应用接入账号A下的ARMS中,并在账号A中实现统一应用监控。可以进行如下设置:
ACK应用
在账号A下创建RAM用户,并授予AliyunARMSFullAccess权限和AliyunSTSAssumeRoleAccess权限。具体操作,请参见创建RAM用户。
为RAM用户创建AccessKey,具体操作,请参见创建AccessKey。
为账号B下的应用安装应用监控探针,具体操作,请参见容器服务ACK环境自动安装探针。
在容器服务管理控制台目标集群下的 页面,单击ack-onepilot组件右侧的更新。
将
accessKey
和accessKeySecret
替换为步骤2获取的AccessKey,将uid
替换为账号A的UID,然后单击确定。此时,账号B下的ACK应用就会将数据上报至账号A的ARMS中。
重要请确保您的ack-onepilot版本为3.0.14或以上。自3.0.14版本开始,您需要通过调整Helm中的accessKey和accessKeySecret来实现跨账号上报数据。ack-onepilot组件各版本发布记录请参见ack-onepilot。
基于账号A的RAM用户管理应用。
方式一:直接使用步骤1中创建的RAM用户管理应用。
方式二:在账号A中新建专用RAM用户管理应用。
在账号A下创建RAM用户,并授予ARMS完整权限AliyunARMSFullAccess,或使用自定义权限对应用精准授权。创建自定义权限策略的操作,请参见应用监控自定义RAM授权策略。
说明您还可以通过RAM角色使用账号B的RAM用户管理应用。具体操作,请参见(可选)通过RAM角色管理应用。
ECS应用
在ARMS控制台的接入中心页面获取到账号A的License key。
重要一个账号对应唯一的License Key。
下载探针包,并使用账号A的License Key安装探针。具体操作,请参见手动安装探针。
基于账号A的RAM用户管理应用。
在账号A下创建RAM用户,并授予ARMS完整权限AliyunARMSFullAccess,或使用自定义权限对应用精准授权。创建自定义权限策略的操作,请参见应用监控自定义RAM授权策略。
说明您还可以通过RAM角色使用账号B的RAM用户管理应用。具体操作,请参见(可选)通过RAM角色管理应用。
(可选)通过RAM角色管理应用
如果您不希望通过账号A的RAM用户使用ARMS,那么可以通过以下方式对账号B的RAM用户授权,使账号B的RAM用户能够通过身份切换拥有使用ARMS的能力。
步骤一:为阿里云账号B授权
账号A创建可信实体为阿里云账号的RAM角色,例如
arms-admin
,并选择信任的云账号为阿里云账号B。具体操作,请参见创建可信实体为阿里云账号的RAM角色。
为账号A的RAM角色
arms-admin
添加ARMS完整权限AliyunARMSFullAccess,或使用自定义权限对应用精准授权。创建自定义权限策略的操作,请参见应用监控自定义RAM授权策略。
RAM角色的操作,请参见为RAM角色授权。
为账号B创建RAM用户。
具体操作,请参见创建RAM用户。
重要请保存RAM用户登录名和密码。
为账号B的RAM用户添加AliyunSTSAssumeRoleAccess权限,即允许RAM用户扮演RAM角色。
具体操作,请参见为RAM用户授权。
步骤二:通过账号B的RAM用户管理应用
通过阿里云账号B的RAM用户登录RAM控制台。
具体操作,请参见RAM用户登录阿里云控制台。
RAM用户登录成功后,将鼠标悬停在右上角的头像位置,然后单击切换身份。
输入账号A的UID和上文步骤一中账号A创建的RAM角色名。
具体操作,请参见扮演RAM角色。
登录ARMS控制台,在 页面查看应用。