1.2.2. 手动配置 Amazon Elastic Container Registry


您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 Amazon Elastic Container Registry(ECR)集成。

先决条件

  • 您必须具有访问密钥 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 Elastic Container Registry

    此时会打开 Configure image integration modal。

  3. New Integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. 类型 :选择 注册表
    3. Registry ID :registry 的 ID。
    4. endpoint(可选): registry 的地址。
    5. 区域 :registry 的区域。
    6. 使用 Container IAM 角色 :如果您使用 IAM,请打开切换。
    7. access Key ID(如果没有使用 IAM)Secret Access Key(如果没有使用 IAM 时需要): 访问密钥和 secret(如果您没有使用 IAM,则为必需 )。
  5. 选择 Test选中标记 图标)来测试与所选 registry 集成是否正常工作。
  6. 选择 Create (save icon)来创建配置。

1.2.2.1. 将 assumerole 与 Amazon ECR 搭配使用

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

1.2.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
    Copy to Clipboard Toggle word wrap
  2. 为您的 EKS 集群 创建一个 IAM 角色
  3. 将新创建的角色与服务帐户关联:

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

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

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 
    1
    
            }
        ]
    }
    Copy to Clipboard Toggle word wrap
    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"
        }
      ]
    }
    Copy to Clipboard Toggle word wrap
    1
    & lt;role-name > 应与之前创建的新角色匹配。

要在没有容器 IAM 的情况下使用 AssumeRole,您必须使用一个 access 和一个 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
      
              }
          ]
      }
      Copy to Clipboard Toggle word wrap
      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"
        }
      ]
    }
    Copy to Clipboard Toggle word wrap
1.2.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 Elastic Container Registry

    此时会打开 Configure image integration modal。

  3. New Integration
  4. 输入以下字段的详情:

    1. 集成名称 :集成的名称。
    2. Registry ID :registry 的 ID。
    3. 区域 :registry 的区域。
  5. 如果您已经配置了 AssumeRole,使用容器 IAM 保留 Use 容器 IAM 角色 选项检查。否则,取消选择 Use custom IAM 角色,并输入以下字段的详情:

    1. 访问密钥 ID :角色的访问密钥 ID。
    2. 机密访问密钥 :角色的 secret 访问密钥。
  6. 选择 Use AssumeRole 复选框。
  7. 输入以下字段的详情:

    1. AssumeRole ID: 要假定的角色 ID。
    2. AssumeRole External ID (可选):如果您使用 外部 ID 和 AssumeRole,您可以在这里输入它。
  8. 选择 Test选中标记 图标)来测试与所选 registry 集成是否正常工作。
  9. 选择 Create (save icon)来创建配置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat