You are viewing documentation for a release that is no longer maintained. To view the documentation for the most recent version, see the latest RHACS docs.
1.2.2. 手动配置 Amazon Elastic Container Registry
您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 Amazon Elastic Container Registry(ECR)集成。
先决条件
-
您必须具有访问密钥 ID 和 secret 访问密钥。或者,您可以使用节点级 IAM 代理,如
kiam或kube2iam。 - 访问密钥必须具有 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
流程
-
在 RHACS 门户网站中,导航至 Platform Configuration
Integrations。 在 Image Integrations 部分下,选择 Amazon Elastic Container Registry。
此时会打开 Configure image integration modal。
- 点 New Integration。
输入以下字段的详情:
- 集成名称 :集成的名称。
- 类型 :选择 注册表。
- Registry ID :registry 的 ID。
- endpoint(可选): registry 的地址。
- 区域 :registry 的区域。
- 使用 Container IAM 角色 :如果您使用 IAM,请打开切换。
- access Key ID(如果没有使用 IAM) 和 Secret Access Key(如果没有使用 IAM 时需要): 访问密钥和 secret(如果您没有使用 IAM,则为必需 )。
-
选择 Test (
选中标记图标)来测试与所选 registry 集成是否正常工作。 -
选择 Create (
saveicon)来创建配置。
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 之前,您必须首先对其进行配置。
流程
为您的 EKS 集群启用 IAM OIDC 供应商:
eksctl utils associate-iam-oidc-provider --cluster <cluster name> --approve
$ eksctl utils associate-iam-oidc-provider --cluster <cluster name> --approveCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 为您的 EKS 集群 创建一个 IAM 角色。
将新创建的角色与服务帐户关联:
kubectl -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role-name>
$ kubectl -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 Central 以应用更改。
kubectl -n stackrox delete pod -l app=central
$ kubectl -n stackrox delete pod -l app=centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将角色分配给允许角色根据需要假定另一个角色的策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<assumerole-readonly> 替换为您要假定的角色。
更新您要假定的角色的信任关系:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- &
lt;role-name> 应与之前创建的新角色匹配。
1.2.2.1.2. 在没有容器 IAM 的情况下配置 AssumeRole 复制链接链接已复制到粘贴板!
要在没有容器 IAM 的情况下使用 AssumeRole,您必须使用一个 access 和一个 secret 密钥作为 带有编程访问的 AWS 用户进行身份验证。
流程
根据 AssumeRole 用户是否与 ECR registry 或不同帐户位于同一个帐户中,您必须:
如果要假定角色位于与 ECR registry 相同的帐户中,则创建具有所需权限的新角色。
注意在创建角色时,您可以根据需要选择任何可信实体。但是,您必须在创建后修改它。
或者,您必须提供权限来访问 ECR registry,如果用户处于与 ECR registry 不同的帐户,则需要定义其信任关系:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<assumerole-readonly> 替换为您要假定的角色。
通过在 Principal 字段中包含用户 ARN 来配置角色的信任关系:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2.1.3. 在 RHACS 中配置 AssumeRole 复制链接链接已复制到粘贴板!
在 ECR 中配置 AssumeRole 后,您可以使用 AssumeRole 将 Red Hat Advanced Cluster Security for Kubernetes 与 Amazon Elastic Container Registry(ECR)集成。
流程
-
在 RHACS 门户网站中,导航至 Platform Configuration
Integrations。 在 Image Integrations 部分下,选择 Amazon Elastic Container Registry。
此时会打开 Configure image integration modal。
- 点 New Integration。
输入以下字段的详情:
- 集成名称 :集成的名称。
- Registry ID :registry 的 ID。
- 区域 :registry 的区域。
如果您已经配置了 AssumeRole,使用容器 IAM 保留 Use 容器 IAM 角色 选项检查。否则,取消选择 Use custom IAM 角色,并输入以下字段的详情:
- 访问密钥 ID :角色的访问密钥 ID。
- 机密访问密钥 :角色的 secret 访问密钥。
- 选择 Use AssumeRole 复选框。
输入以下字段的详情:
- AssumeRole ID: 要假定的角色 ID。
- AssumeRole External ID (可选):如果您使用 外部 ID 和 AssumeRole,您可以在这里输入它。
-
选择 Test (
选中标记图标)来测试与所选 registry 集成是否正常工作。 -
选择 Create (
saveicon)来创建配置。