将 URL 列入白名单以豁免二进制授权

将 URL 列入白名单以豁免二进制授权

我正在测试我的二进制授权策略并将豁免条目放入允许nginx

以下是我尝试通过将其添加到“不受政策约束的图片”下的条目

registry.hub.docker.com/library/nginx*
registry.hub.docker.com/library/nginx.latest
docker.io/library/nginx*

但失败并出现以下错误

 $ kubectl run httpd-server --image=nginx --restart=Never -l app=httpd-server --port 80
 Error from server (VIOLATES_POLICY): admission webhook "imagepolicywebhook.image-policy.k8s.io" denied the request: Image nginx denied by Binary Authorization default admission rule. Denied by always_deny admission rule

如果我禁用二进制授权并安装 nginx 包,它会显示以下存储库用于提取图像

   image: docker.io/library/nginx:latest

此条目已存在于不受政策约束的图片中,但下载仍被阻止。按要求共享政策定义。

在此处输入图片描述

有什么建议 ?

答案1

我成功重现了您的环境,一切运行正常。我按照图中所示配置了我的策略。 环境再现

我能够毫无问题地创建部署。我尝试了几次在选项之间进行更改,但最终没有发现问题。

请确保你正在运行一个集群二进制授权已启用

为了验证已启用二进制授权对于集群,执行以下操作:

1 在云控制台中打开 GKE 页面。

2 在 Kubernetes 集群下,找到您的集群。

3 在“安全”下,验证“二进制授权”是否设置为“启用”。

此外,检查运行命令的集群是否与设置特定规则的集群相同也很重要。

在创建部署之前,请务必使用:

gcloud container clusters get-credentials NAME [--internal-ip] [--region=REGION     | --zone=ZONE, -z ZONE] [GCLOUD_WIDE_FLAG …]

获取您需要使用的集群的凭证。

相关内容