两个阿里云账号 一个账号A的云效能否通过内网?sts授权访问 B的ack容器集群,不想开通账号B的容器ack的公网权限
实际上是可以的,但需要注意一点,若要实现不同账号间的内网访问,必须保证两者处于相同的地域和可用区,并且两个账户都需要开通阿里云内网代理权限。
具体步骤如下:
使用STS生成临时AK和SK密钥。在A账号下登录STS控制台,点击“开始使用”,选择RAM角色,然后选择所想要访问的ACK集群所在的区域和实例ID,然后设置有效期和策略,点击生成即可得到临时AK和SK。
在B账号下的ACK集群中,打开内网代理权限。在管理控制台的【设置】->【网络】->【内网代理】中打开内网代理权限。
利用STS生成的AK和SK,在A账号下使用SDK或者CLI进行访问B账号的ACK集群。注意,使用的时候需要把内网地址替换为公网地址,例如,内网地址为192.168.x.x
,那么可以用alicloudproxy_192.168.x.x
代替。
您好,您可以使用阿里云的STS(Security Token Service)服务进行授权访问。具体步骤如下:
#!/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容器集群地址>
是的,阿里云账号 A 可以通过 STS 授权给 B 访问 ack 容器集群,而无需公开 B 的容器 ack 公网权限。
以下是实施 STS 授权的步骤:
创建一个临时访问凭证,利用 ram:AssumeRole
操作以 STS API 发送请求,获取一个短暂有效的访问令牌,从而访问 Container Service ACK 集群
使用 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 授权的文章,并保持警惕网络安全风险。
因为流水线上是服务链接授权的,所以只要A账号可以有B账号的服务链接使用权限,就可以访问B账号的集群
https://help.aliyun.com/document_detail/202440.html
内网部署的话,只要您的私有构建机和您的集群在同一个VPC下就可以访问。此回答整理自钉群“云效交付域答疑群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。