繁体   English   中英

如何将私有 AWS codecommit 存储库克隆到本地服务器?

[英]How to clone private AWS codecommit repo to on-prem server?

我们有一个没有 NAT 或 Inte.net 网关的 AWS 帐户和一个私有代码提交存储库。 我们的 VPC 直接连接到本地 vpc,并且我们已经打开从本地防火墙到 AWS VPC 的端口 443。 本地服务器没有 inte.net 连接。 我们已经创建了接口端点来访问 VPC 中的代码提交。 本地服务器有一个带有访问密钥和秘密密钥的 AWS 配置文件。 现在我们想克隆、更新 repo 并将其推送到本地服务器。

更新:因为我们已经在本地服务器上配置了 AWS 配置文件。 我们正在尝试 git HTTPS URL 选项来克隆 repo。 但看起来它正试图攻击 codecommit 服务的公共端点。 因此,它只是不断尝试从服务中获取任何响应,但最终失败了。 像下面

git clone https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/xxx-xxx-projects
Cloning into 'xxx-xxx-projects'...
fatal: unable to access 'https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/xxx-xxx-projects/': Failed to connect to git-codecommit.ap-south-1.amazonaws.com port 443: Connection timed out

您可能还没有正确设置路由。

首先,检查您是否可以从 AWS VPC 中访问 VPC 接口端点。 一种简单的方法是在该 VPC 中启动一个 EC2 实例,并以该实例作为源并以接口端点作为目标来运行可达性分析器

如果您无法访问终端节点,请验证您是否已按照CodeCommit 文档中的过程正确设置终端节点 要仔细检查,您还可以从 AWS VPC 中的 EC2 实例运行nslookup 这将验证 IP 地址是否正确解析为 VPC 接口终端节点的 ENI。 作为查找目标,使用 CodeCommit 的 Git 端点(替换区域)的公共 DNS 地址:

nslookup git-codecommit.<YOUR REGION HERE>.amazonaws.com

如果这现在有效,您应该检查从您的 on-prem.network 到 CodeCommit 的公共 DNS 名称的路由。 对于 AWS VPC,AWS 在设置接口端点时在幕后的 Route 53 中创建了一个隐藏的私有托管区域,负责将对公共端点的 DNS 请求路由到 CodeCommit 接口端点的私有端点。 这就是为什么 nslookup 较早返回端点的私有 IP 地址而不是公共 IP 地址的原因。

如果nslookup在本地运行命令时未返回相同的 IP 地址(接口端点的 ENI 的地址),则必须设置 DNS 解析器以将对该域的请求路由到 AWS VPC-提供 DNS(有关如何使用“未绑定”执行此操作的示例,请点击此处)。

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM