开发者社区 > 云效DevOps > 正文

两个阿里云账号 一个账号A的云效能否通过内网?

两个阿里云账号 一个账号A的云效能否通过内网?sts授权访问 B的ack容器集群,不想开通账号B的容器ack的公网权限

展开
收起
三分钟热度的鱼 2023-11-08 18:24:31 116 0
4 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    实际上是可以的,但需要注意一点,若要实现不同账号间的内网访问,必须保证两者处于相同的地域和可用区,并且两个账户都需要开通阿里云内网代理权限。

    具体步骤如下:

    1. 使用STS生成临时AK和SK密钥。在A账号下登录STS控制台,点击“开始使用”,选择RAM角色,然后选择所想要访问的ACK集群所在的区域和实例ID,然后设置有效期和策略,点击生成即可得到临时AK和SK。

    2. 在B账号下的ACK集群中,打开内网代理权限。在管理控制台的【设置】->【网络】->【内网代理】中打开内网代理权限。

    3. 利用STS生成的AK和SK,在A账号下使用SDK或者CLI进行访问B账号的ACK集群。注意,使用的时候需要把内网地址替换为公网地址,例如,内网地址为192.168.x.x,那么可以用alicloudproxy_192.168.x.x代替。

    2023-11-10 14:24:14
    赞同 展开评论 打赏
  • 您好,您可以使用阿里云的STS(Security Token Service)服务进行授权访问。具体步骤如下:

    1. 账号A和B分别登录云效,并在服务连接管理中分别添加A和B的ECS服务连接。授权范围可以设置为所有人可见,或者设置为指定成员可见。
    2. 在账号A的云效中,创建一个新的代码库,例如名为"repo-b"。然后,将账号B的ACK容器集群的Dockerfile、部署文件等代码上传到该代码库中。
    3. 在账号A的云效中,创建一个新的流水线。在流水线中,添加一个"Shell脚本"步骤,并编写以下命令:
    #!/bin/bash
    # 设置环境变量
    export AWS_ACCESS_KEY_ID=<账号B的Access Key ID>
    export AWS_SECRET_ACCESS_KEY=<账号B的Secret Access Key>
    export AWS_DEFAULT_REGION=<账号B的默认区域>
    
    # 使用STS临时授权访问账号B的ACK容器集群
    aws sts assume-role --role-arn "arn:aws:iam::<账号B的Account ID>:role/ack-deploy" --role-session-name "ack-deploy-session" > /tmp/creds
    
    # 设置环境变量
    export AWS_ACCESS_KEY_ID=$(cat /tmp/creds | jq -r '.Credentials.AccessKeyId')
    export AWS_SECRET_ACCESS_KEY=$(cat /tmp/creds | jq -r '.Credentials.SecretAccessKey')
    export AWS_SESSION_TOKEN=$(cat /tmp/creds | jq -r '.Credentials.SessionToken')
    
    # 使用临时授权访问账号B的ACK容器集群
    docker login --username abc --password $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY $AWS_SESSION_TOKEN <账号B的ACK容器集群地址>
    
    1. 保存流水线并执行。这样,账号A的云效就可以通过内网访问账号B的ACK容器集群了,而不需要开通账号B的容器ACK的公网权限。
    2023-11-09 16:07:23
    赞同 展开评论 打赏
  • 是的,阿里云账号 A 可以通过 STS 授权给 B 访问 ack 容器集群,而无需公开 B 的容器 ack 公网权限。

    以下是实施 STS 授权的步骤:

    1. 创建一个临时访问凭证,利用 ram:AssumeRole 操作以 STS API 发送请求,获取一个短暂有效的访问令牌,从而访问 Container Service ACK 集群

    2. 使用 STS 凭证在 Container Service ACK 中创建访问 Token

      acs token create --access-key-id ACCESS_KEY_ID --secret-access-key SECRET_ACCESS_KEY --role-name ROLE_NAME --token-duration SECONDS
      

    这样就能把 B 的资源暴露给 A 访问。为确保安全性,请设置一个合理的角色,仅限于所需功能。记得每小时重新获取令牌,以防止越权访问。为了便于管理,应该查阅更多关于 STS 授权的文章,并保持警惕网络安全风险。

    2023-11-08 21:42:31
    赞同 展开评论 打赏
  • 因为流水线上是服务链接授权的,所以只要A账号可以有B账号的服务链接使用权限,就可以访问B账号的集群
    https://help.aliyun.com/document_detail/202440.html
    内网部署的话,只要您的私有构建机和您的集群在同一个VPC下就可以访问。此回答整理自钉群“云效交付域答疑群”

    2023-11-08 18:55:58
    赞同 展开评论 打赏

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效 立即下载