1.3. 手动配置镜像 registry


如果使用 GCR,则必须手动创建镜像 registry 集成。

1.3.1. 手动配置 OpenShift Container Platform registry

您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 OpenShift Container Platform 内置容器镜像 registry 集成。

先决条件

  • 您需要一个用户名和密码才能通过 OpenShift Container Platform registry 进行身份验证。

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Generic Docker Registry
  3. New integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. 端点 :registry 的地址。
    3. 用户名密码.。
  5. 如果您在连接到 registry 时没有使用 TLS 证书,请选择 Disable TLS 证书验证(不安全)
  6. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  7. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  8. 选择 Save

1.3.2. 手动配置 Amazon Elastic Container Registry

您可以使用 Red Hat Advanced Cluster Security for Kubernetes 手动创建和修改 Amazon Elastic Container Registry (ECR)集成。如果您要从 Amazon ECR 部署,则通常会自动生成 Amazon ECR registry 的集成。但是,您可能希望自行创建集成,以扫描部署外部的镜像。您还可以修改自动生成的集成的参数。例如,您可以更改自动生成的 Amazon ECR 集成使用的身份验证方法,以使用 AssumeRole 身份验证或其他授权模型。

重要

要擦除对自动生成的 ECR 集成所做的更改,请删除集成,Red Hat Advanced Cluster Security for Kubernetes 会在从 Amazon ECR 部署镜像时使用自动生成的参数创建一个新的集成。

先决条件

  • 您必须有一个 Amazon Identity and Access Management (IAM) 访问密钥 ID 和 secret 访问密钥。另外,您可以使用节点级别的 IAM 代理,如 kiamkube2iam
  • 访问密钥必须具有 ECR 的读取访问权限。如需更多信息,请参阅如何创建 AWS 访问密钥?
  • 如果您在 Amazon Elastic Kubernetes Service (EKS)中运行 Red Hat Advanced Cluster Security for Kubernetes,并希望与来自单独的 Amazon 帐户的 ECR 集成,您必须首先在 ECR 中设置存储库策略声明。按照 设置存储库策略语句Actions 中的说明,选择 Amazon ECR API 操作的以下范围:

    • ecr:BatchCheckLayerAvailability
    • ecr:BatchGetImage
    • ecr:DescribeImages
    • ecr:GetDownloadUrlForLayer
    • ecr:ListImages

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Amazon ECR
  3. New integration,或者点自动生成的集成之一打开它,然后点 Edit
  4. 输入或修改以下字段的详情:

    1. 更新存储的凭据 :如果您在不更新密钥和密码等凭证的情况下修改集成,请清除此框。
    2. 集成名称 :集成的名称。
    3. Registry ID :registry 的 ID。
    4. 端点 :registry 的地址。只有在 Amazon ECR 使用私有虚拟私有云(VPC)端点时才需要这个值。选择 AssumeRole 选项时,不会启用此字段。
    5. Region:registry 的区域,如 us-west-1
  5. 如果使用 IAM,请选择 Use Container IAM role。否则,清除 Use Container IAM 角色 框并输入 Access key IDSecret access key
  6. 如果使用 AssumeRole 身份验证,请选择 Use AssumeRole 并输入以下字段的详情:

    1. AssumeRole ID :要假定的角色 ID。
    2. AssumeRole External ID (可选): 如果您使用带有 AssumeRole 的外部 ID,您可以在此处输入它。
  7. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  8. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  9. 选择 Save

1.3.2.1. 将 assumerole 与 Amazon ECR 一起使用

您可以使用 AssumeRole 授予对 AWS 资源的访问权限,而无需手动配置每个用户的权限。取而代之,您可以定义具有所需权限的角色,以便授予用户访问权限来假定角色。AssumeRole 允许您授予、撤销或通常管理更精细的权限。

1.3.2.1.1. 使用容器 IAM 配置 AssumeRole

在 Red Hat Advanced Cluster Security for Kubernetes 中使用 AssumeRole 前,您必须首先配置它。

流程

  1. 为您的 EKS 集群启用 IAM OIDC 供应商:

    $ eksctl utils associate-iam-oidc-provider --cluster <cluster name> --approve
  2. 为您的 EKS 集群创建一个 IAM 角色
  3. 将新创建的角色与服务帐户关联:

    $ kubectl -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role-name>
  4. 重启 Central 以应用更改。

    $ kubectl -n stackrox delete pod -l app=central
  5. 将角色分配给允许角色根据需要假设另一个角色的策略:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1
            }
        ]
    }
    1
    <assumerole-readonly> 替换为您要假定的角色。
  6. 更新您要假设的角色的信任关系:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::<ecr-registry>:role/<role-name>" 1
            ]
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    1
    <role-name> 应该与之前创建的新角色匹配。
1.3.2.1.2. 在没有容器 IAM 的情况下配置 AssumeRole

要在没有容器 IAM 的情况下使用 AssumeRole,您必须使用访问和 secret 密钥以 AWS 用户身份进行身份验证,并具有编程访问

流程

  1. 根据 AssumeRole 用户与 ECR registry 位于同一个帐户中或在不同的帐户中,您必须:

    • 如果要假设角色的用户与 ECR registry 位于同一个帐户中,则创建带有所需权限的新角色。

      注意

      在创建角色时,您可以根据需要选择任何可信实体。但是,您必须在创建后修改它。

    • 或者,您必须提供访问 ECR registry 的权限,并在用户位于与 ECR registry 不同的帐户中时定义其信任关系:

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": "sts:AssumeRole",
                  "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1
              }
          ]
      }
      1
      <assumerole-readonly> 替换为您要假定的角色。
  2. 通过在 Principal 字段中包含用户 ARN 来配置角色的信任关系:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": [
              "arn:aws:iam::<ecr-registry>:user/<role-name>"
            ]
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
1.3.2.1.3. 在 RHACS 中配置 AssumeRole

在 ECR 中配置 AssumeRole 后,您可以使用 AssumeRole 将 Red Hat Advanced Cluster Security for Kubernetes 与 Amazon Elastic Container Registry (ECR)集成。

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Amazon ECR
  3. 单击 New Integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. Registry ID :registry 的 ID。
    3. Region:registry 的区域,如 us-west-1
  5. 如果使用 IAM,请选择 Use container IAM role。否则,清除 Use 自定义 IAM 角色 框并输入 Access key IDSecret access key
  6. 如果使用 AssumeRole,选择 Use AssumeRole 并输入以下字段的详情:

    1. AssumeRole ID :要假定的角色 ID。
    2. AssumeRole External ID (可选): 如果您使用带有 AssumeRole 的外部 ID,您可以在此处输入它。
  7. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  8. 选择 Save

1.3.3. 手动配置 Google Container Registry

您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 Google Container Registry (GCR)集成。

先决条件

  • 您需要 工作负载身份 或服务帐户密钥进行身份验证。
  • 关联的服务帐户必须有权访问 registry。有关授予用户和其他项目访问权限 GCR 的信息,请参阅配置访问控制
  • 如果使用 GCR 容器分析,还必须为服务帐户授予以下角色:

    • 容器分析备注查看器
    • Container Analysis Occurrences Viewer
    • 存储对象查看器

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Google Container Registry
  3. New integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. 键入 :选择 Registry
    3. registry 端点 :registry 的地址。
    4. 项目 :Google Cloud 项目名称。
    5. 使用工作负载身份 :检查 使用工作负载身份进行身份验证。
    6. 服务帐户密钥(JSON) :用于身份验证的服务帐户密钥。
  5. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  6. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  7. 选择 Save

1.3.4. 手动配置 Google Artifact Registry

您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 Google Artifact Registry 集成。

先决条件

  • 您需要 工作负载身份 或服务帐户密钥进行身份验证。
  • 关联的服务帐户必须具有 Artifact Registry Reader Identity and Access Management (IAM)角色 roles/artifactregistry.reader

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Google Artifact Registry
  3. New integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. Registry 端点 :registry 的地址。
    3. 项目 :Google Cloud 项目名称。
    4. 使用工作负载身份 :检查 使用工作负载身份进行身份验证。
    5. 服务帐户密钥(JSON) :用于身份验证的服务帐户密钥。
  5. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  6. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  7. 选择 Save

1.3.5. 手动配置 Microsoft Azure Container Registry

您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 Microsoft Azure Container Registry 集成。

先决条件

  • 您必须有用户名和密码进行验证。

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Microsoft Azure Container Registry
  3. New integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. 端点 :registry 的地址。
    3. 用户名密码.。
  5. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  6. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  7. 选择 Save

1.3.6. 手动配置 JFrog Artifactory

您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 JFrog Artifactory 集成。

先决条件

  • 您必须有一个用户名和密码才能使用 JFrog Artifactory 进行身份验证。

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 JFrog Artifactory
  3. New integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. 端点 :registry 的地址。
    3. 用户名密码.。
  5. 如果您在连接到 registry 时没有使用 TLS 证书,请选择 Disable TLS 证书验证(不安全)
  6. 选择 Create integration without testing 来创建集成,而不测试到 registry 的连接。
  7. 选择 Test 来测试与所选 registry 的集成是否正常工作。
  8. 选择 Save

1.3.7. 手动配置 Quay Container Registry

您可以将 Red Hat Advanced Cluster Security for Kubernetes (RHACS)与 Quay Container Registry 集成。您可以使用以下方法与 Quay 集成:

  • 与 Quay 公共存储库(registry)集成:此方法不需要身份验证。
  • 使用机器人帐户与 Quay 私有 registry 集成:此方法要求您创建一个机器人帐户以用于 Quay (推荐)。如需更多信息,请参阅 Quay 文档
  • 与 Quay 集成以使用 Quay 扫描程序而不是 RHACS 扫描程序 :此方法使用 API 并需要一个 OAuth 令牌进行身份验证。请参阅"Additional Resources"部分的"与 Quay Container Registry 集成以扫描镜像"。

前提条件

  • 要使用 Quay 私有 registry 进行身份验证,您需要与机器人帐户或 OAuth 令牌(已弃用)关联的凭据。

流程

  1. 在 RHACS 门户中,进入 Platform Configuration Integrations
  2. Image Integrations 部分下,选择 Red Hat Quay.io
  3. New integration
  4. 输入集成名称。
  5. 输入 端点 或 registry 的地址。

    1. 如果您要与 Quay 公共存储库集成,在 Type 下选择 Registry,然后进入下一步。
    2. 如果您要与 Quay 私有 registry 集成,在 Type 下选择 Registry 并在以下字段中输入信息:

      • 机器人 用户名 :如果您使用 Quay 机器人帐户访问 registry,以 < namespace>+<accountname> 格式输入用户名
      • 机器人 密码 :如果您使用 Quay 机器人帐户访问 registry,请输入机器人帐户用户名的密码。
      • OAuth 令牌 :如果您使用 OAuth 令牌(已弃用)访问 registry,请在此字段中输入它。
  6. 可选: 如果您在连接到 registry 时没有使用 TLS 证书,请选择 Disable TLS certificate validation (insecure)
  7. 可选: 要创建集成但不测试,请选择 Create integration without testing
  8. 选择 Save
注意

如果您要编辑 Quay 集成,但不想更新您的凭证,请验证不选择 Update 存储的凭证

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.