使用github操作时是否可以使用静态ip

Dol*_*hin 1 firewall github github-actions

现在我使用 github actions 作为我的项目 CI,我想在使用 github actions 构建我的项目时做一些单元测试。当我使用单元测试时,项目必须使用数据库,现在我的数据库有白名单,只有白名单中的IP才能连接我的数据库,但是现在在GitHub Actions中运行单元测试时,我不知道GitHub Actions的IP地址. 是否可以使用静态 ip 或任何其他方式来解决问题?我不希望任何 IP 可以连接我的数据库,它可能有安全问题。有什么建议吗?

kac*_*ow6 9

您可以在工作流程中使用public-ip 操作动态检索 GitHub Actions 运行器的 IP 地址,并在单元测试步骤之前和之后更新 RDS 实例的安全组入口规则。

这将允许您在工作流程中使用 GitHub 的托管运行器,而不是托管您自己的运行器。

注意:您还需要在运行器上设置 AWS 凭证,并具有更新关联安全组的权限。此外,您还需要确保 RDS 实例位于公共子网中,并附加了 Internet 网关和安全组。

您的工作流程应该如下所示:

deploy:
    name: deploy
    runs-on: ubuntu-latest
    env:
      AWS_INSTANCE_SG_ID: <your-rds-subnet-sg-id>
    steps:
      - name: configure aws credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: <your-ci-aws-access-key>
          aws-secret-access-key: <your-ci-aws-secret-key>
          aws-region: <your-rds-aws-region>
      - name: get runner ip addresses
        id: ip
        uses: haythem/public-ip@v1.2
      - name: whitelist runner ip address
        run: |
          aws ec2 authorize-security-group-ingress \
            --group-id $AWS_INSTANCE_SG_ID \
            --protocol tcp \
            --port 22 \
            --cidr ${{ steps.ip.outputs.ipv4 }}/32
      - name: connect to your rds instance and run tests
        run: |
          ...run tests...
      - name: revoke runner ip address
        run: |
          aws ec2 revoke-security-group-ingress \
            --group-id $AWS_INSTANCE_SG_ID \
            --protocol tcp \
            --port 22 \
            --cidr ${{ steps.ip.outputs.ipv4 }}/32
Run Code Online (Sandbox Code Playgroud)

理想情况下,您可以在与 RDS 实例相同的 VPC 内的 EC2 中运行集成测试,以避免公开暴露您的 RDS 实例。


jes*_*ing 5

目前,这仅适用于您可以控制其 IP 地址的 VM 上的自托管运行器。

也可以看看:

或者,您的 GitHub 操作工作流可能能够在运行过程中调整防火墙设置。

或者您可以使用 SQL Server LocalDB 或 SQLLite 之类的东西在运行器上本地连接到数据库。或者在云环境中启动一个临时数据库,将其开放给跑步者,然后将其丢弃。

或者您可以使用 VPN 客户端将操作运行器连接到您的环境。您可以在跑步者上安装任何您想要的东西。


Krz*_*tof 5

这是测试版(2022 年 9 月 1 日),但可以为跑步者分配静态 IP 地址:

\n
\n

固定 IP 范围,通过允许列表服务提供对跑步者的访问

\n

只需勾选复选框即可为您的计算机设置固定的 IP 范围,这提供了一个可以在内部系统和 GitHub\xe2\x80\x99s 允许列表中允许列出的 IP 范围,以便继续使用操作,同时使您的 GitHub 环境更加安全.\n块引用

\n
\n

更多详情请点击此处

\n