如何在不将安全组设置为 Anywhere 的情况下允许 Azure DevOps 托管代理访问我的 Amazon RDS PostgreSql。我一直在寻找 IP 范围或将 Azure DevOps 代理列入白名单的东西,但找不到。
在 Azure 中,我可以选中一个框以授予对我的 Azure SQL 数据库的所有“Azure DevOps Services”访问权限,但它当然不存在于 AWS 中。
如何在不将安全组设置为 Anywhere 的情况下允许 Azure DevOps 托管代理访问我的 Amazon RDS PostgreSql。我一直在寻找 IP 范围或将 Azure DevOps 代理列入白名单的东西,但找不到。
在 Azure 中,我可以选中一个框以授予对我的 Azure SQL 数据库的所有“Azure DevOps Services”访问权限,但它当然不存在于 AWS 中。
用于托管代理 IP 范围的 IP通过此处链接。将它用于托管代理我并没有取得太大的成功。该列表很大,文档并不清楚您需要将哪些类型的服务列入白名单。
我会在管道运行期间及时将托管代理 IP 列入白名单,然后将其作为最后一步删除。首先,您可以获取托管代理的 ip:
$hostedIPAddress = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
然后,您可以使用 AWS CLI 或 AWS PowerShell 模块添加特定 IP。Azure DevOps AWS 工具任务包括 CLI。
对数据库执行所需的工作,然后确保最后清理了 rule\temp 安全组。
我认为我们不能直接从 Azure DevOps Hosted Agent 访问 Amazon RDS PostgreSql,我的意思是使用托管服务帐户。
但是,Amazon RDS for PostgreSQL 支持使用 Kerberos 和 Microsoft Active Directory 进行用户身份验证,因此我们可以尝试编写脚本以使用特定凭证访问它。然后通过添加相应的任务(例如 AWS CLI 或 AWS PowerShell)在管道中运行脚本。
另请查看如何允许用户使用 IAM 凭证连接到 Amazon RDS?
有关 IP 范围,请参阅允许的地址列表和网络连接以及Microsoft 托管的代理以了解详细信息。