CodeDeploy 代理需要对 Internet 的出站访问才能访问 4 个不同的服务端点。为了使服务正常工作,需要访问所有这些端点。
访问(1) CodeDeploy 服务端点和(2)访问 S3 或 Github 服务需要对 Internet 的出站访问 - 代理需要此访问权限才能下载正在部署的修订版的软件部署包。
来自CodeDeploy 常见问题解答:
...安装在 Amazon EC2 实例上的 AWS CodeDeploy 代理必须能够访问公共 AWS CodeDeploy 和 Amazon S3 服务终端节点。有关更多信息,请参阅 AWS CodeDeploy 终端节点和 Amazon S3 终端节点。
(3) CodeDeploy 代理会定期检查软件更新,并在新版本发布后 24 小时内自动更新。正确配置的 CodeDeploy 代理实例将允许 IAM S3 访问AWS CodeDeploy Resource Kit Reference存储桶,以便它可以在可用时访问新软件。未能在此处提供更新访问可能会在服务升级时破坏您的实施,或限制对新功能的访问。
(4)关于 CodeDeploy 命令和控制,代理的源代码显示了对特殊命令https
端点的引用,称为AWS_DEPLOY_CONTROL_ENDPOINT
:
在 aws-codedeploy-agent 软件存储库中,该deploy_control_endpoint.rb
文件具有以下内容:
require 'aws-sdk-core'
module Aws
module Plugins
class DeployControlEndpoint < Seahorse::Client::Plugin
option(:endpoint) do |cfg|
url = ENV['AWS_DEPLOY_CONTROL_ENDPOINT']
if url.nil?
url = "https://codedeploy-commands.#{cfg.region}.amazonaws.com"
if "cn" == cfg.region.split("-")[0]
url.concat(".cn")
end
end
url
end
end
end
end
虽然显然没有记录,但也需要访问此端点。