第 19 章 使用简短令牌集成 RHACS
使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS),您可以使用简短的令牌对所选云供应商 API 进行身份验证。RHACS 支持以下云供应商集成:
- 使用安全令牌服务(STS)的 Amazon Web Services (AWS)
- 使用工作负载身份联邦的 Google Cloud Platform (GCP)
RHACS 仅在以下平台上安装 RHACS 时支持短期令牌集成:
- AWS 上的弹性 Kubernetes 服务(EKS)
- GCP 上的 Google Kubernetes Engine (GKE)
- OpenShift Container Platform
要激活简短的身份验证,您必须在 Kubernetes 或 OpenShift Container Platform 集群和云供应商之间建立信任。对于 EKS 和 GKE 集群,请使用云供应商元数据服务。对于 OpenShift Container Platform 集群,需要一个公开的 OpenID Connect (OIDC)供应商存储桶,其中包含 OpenShift Container Platform 服务帐户签名者密钥。
您必须为每个使用简短令牌集成的 Central 集群建立一个信任。但是,如果您将委托扫描与短期的令牌镜像集成结合使用,还必须为 Sensor 集群建立信任。
19.1. 配置 AWS 安全令牌服务 复制链接链接已复制到粘贴板!
RHACS 集成可以使用 安全令牌服务 对 Amazon Web Services 进行身份验证。在集成中启用 Use container IAM 角色 选项前,您必须使用 RHACS 配置 AssumeRole
。
验证与 RHACS pod 关联的 AWS 角色必须具有集成所需的 IAM 权限。例如,要设置与 Elastic Container Registry 集成的容器角色,请启用对 registry 的完整读取访问权限。如需有关 AWS IAM 角色的更多信息,请参阅 IAM 角色。
19.1.1. 配置弹性 Kubernetes 服务(EKS) 复制链接链接已复制到粘贴板!
在 EKS 上运行 Red Hat Advanced Cluster Security for Kubernetes (RHACS)时,您可以通过 Amazon Secure Token Service 配置简短的令牌。
流程
运行以下命令,为您的 EKS 集群启用 IAM OpenID Connect (OIDC)供应商:
eksctl utils associate-iam-oidc-provider --cluster <cluster_name> --approve
$ eksctl utils associate-iam-oidc-provider --cluster <cluster_name> --approve
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为您的 EKS 集群创建一个 IAM 角色。
编辑角色的权限策略,并授予集成所需的权限。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新您要假定的角色的信任关系:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- &
lt;role_name
> 应该与您在前面步骤中创建的新角色匹配。
输入以下命令将新创建的角色与服务帐户关联:
oc -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role_name>
$ oc -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
输入以下命令重启 Central pod 并应用更改:
oc -n stackrox delete pod -l "app in (central,sensor)"
$ oc -n stackrox delete pod -l "app in (central,sensor)"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果使用 Kubernetes,请输入
kubectl
而不是oc
。
19.1.2. 配置 OpenShift Container Platform 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 上运行 Red Hat Advanced Cluster Security for Kubernetes (RHACS)时,您可以通过 Amazon Secure Token Service 配置简短的令牌。
先决条件
- 您必须使用 OpenShift Container Platform 服务帐户签名程序密钥有一个公共 OpenID Connect (OIDC)配置存储桶。要获取 OpenShift Container Platform 集群的 OIDC 配置,红帽建议您以手动模式使用 Cloud Credential Operator 中的说明作为短期凭证。
- 您必须具有 AWS IAM 的访问权限,以及创建和更改角色的权限。
流程
-
按照 创建 OpenID Connect (OIDC)身份提供程序 中的说明来创建 OpenShift Container Platform 集群的 Web 身份。使用
openshift
作为 Audience 的值。 - 为 OpenShift Container Platform 集群的 Web 身份 创建一个 IAM 角色。
编辑角色的权限策略,并授予集成所需的权限。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新您要假定的角色的信任关系:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Central 或 Sensor 部署中设置以下 RHACS 环境变量:
AWS_ROLE_ARN=<role_arn> AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/openshift/serviceaccount/token
AWS_ROLE_ARN=<role_arn> AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/openshift/serviceaccount/token
Copy to Clipboard Copied! Toggle word wrap Toggle overflow