云安全中心提供的CI/CD插件支持对GitHub中构建的镜像进行自动化安全扫描。使用该功能前,您需要在GitHub中集成CI/CD插件。本文为您介绍如何将云安全中心的CI/CD插件集成到GitHub。
操作步骤
- 登录GitHub。
- 单击右上角头像,在下来菜单中选中Your repositories。
- 在repositories页签下,单击您要集成CI/CD插件的repository。
- 单击Actions页签。
- 在All workflows列表中,定位到要集成CI/CD插件的workflows流水线文件,单击其Actor列的。
- 在下拉菜单中,选择View workflow file。
- 在Workflow file for this run中按照以下样例进行集成配置。
name: Docker build and scan security issue by sas-image-scanner on: push: branches: [ main ] pull_request: branches: [ main ] env: REPO_TAG: your_docker_image_repo:your_docker_image_tag jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build the Docker image run: docker build . --file Dockerfile --tag ${{ env.REPO_TAG }} - name: Scan image by sas-image-scanner run: > docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --network=host sas-image-scanner-registry.cn-hangzhou.cr.aliyuncs.com/sas_public/sas-image-scanner:latest --accessKeyId=${{ secrets.ACCESSKEYID }} --accessKeySecret=${{ secrets.ACCESSKEYSECRET }} --token=${{ secrets.SAS_TOKEN }} --imageId=${{ env.REPO_TAG }}
相关配置参数说明如下:参数 是否必填 参数说明 accessKeyId 是 建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey。 重要 强烈建议使用RAM用户的AccessKey。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。accessKeySecret 是 建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey Secret。 重要 强烈建议使用RAM用户的AccessKey Secret。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。token 是 阿里云云安全中心CI/CD插件的接入Token。获取CI/CD接入Token的具体操作,请参见接入配置。 imageId 是 待扫描镜像标识。默认支持本地扫描。 - 本地镜像支持传入ImageId或Repo:Tag。
- 远程镜像需传入RegistryUrl或Repo:Tag,并需填写镜像仓凭证。重要 如果要扫描远程镜像仓中的镜像,您需要正确填写远程镜像的RegistryUrl、RegistryUsername、RegistryPassword的这三个参数。
domain 否 云安全中心接入点。请填写:tds.ap-southeast-1.aliyuncs.com。 registryUrl 否 镜像仓的URL。 重要 扫描远程镜像仓中的镜像时,此参数必填。registryUsername 否 镜像仓登录用户名。 重要 扫描远程镜像仓中镜像时,此参数必填。registryPwd 否 镜像仓登录密码。 重要 扫描远程镜像仓中镜像时,此参数必填。集成配置完成后,您在构建项目时,会自动同步执行镜像安全扫描任务,扫描您项目的镜像是否存在安全风险。
后续步骤
您可以在资产中心的容器页签下,查看镜像安全扫描结果。具体操作,请参见查看镜像扫描结果。