要解决二进制授权部署失败并出现“被Attestor拒绝。 Attestor无法对GKE中的图像进行签名”的问题,您可以按照以下步骤进行操作:
确保您在Google Kubernetes Engine(GKE)中正确设置了Binary Authorization。确保您已经为Attestor配置了正确的角色和权限,并且已经配置了正确的签名密钥。
检查Attestor是否已经启用,并且与GKE集群和图像存储库关联。您可以使用以下命令来检查Attestor的状态:
gcloud container binauthz attestors describe [ATTESTOR_NAME] --project=[PROJECT_ID] --location=[LOCATION]
确保Attestor显示为“ENABLED”,并且在“Policy上”部分中包含正确的集群和存储库。
gcloud container binauthz attestors describe [ATTESTOR_NAME] --project=[PROJECT_ID] --location=[LOCATION] --format="value(attestorProperties.resourceUri)"
确保要部署的镜像在这个列表中。
如果您发现Attestor没有正确配置或没有正确信任镜像,请确保您按照GKE文档中的指南正确配置Attestor和信任。
如果您使用的是自定义Attestor并且遇到签名密钥问题,您可以尝试重新生成签名密钥并将其与Attestor关联。您可以使用以下命令来重新生成签名密钥:
gcloud container binauthz attestors update [ATTESTOR_NAME] --project=[PROJECT_ID] --location=[LOCATION] --note-project=[PROJECT_ID] --note-id=[NOTE_ID]
确保将[ATTESTOR_NAME]
替换为您的Attestor的名称,[PROJECT_ID]
替换为您的项目ID,[LOCATION]
替换为Attestor的位置,[NOTE_ID]
替换为您的注释ID。
gcloud logging read "resource.type=audited_resource AND logName:cloudaudit.googleapis.com%2Factivity" --project=[PROJECT_ID] --format="table(timestamp,protoPayload.methodName,protoPayload.resourceName)"
确保将[PROJECT_ID]
替换为您的项目ID。
通过按照以上步骤检查和调整配置,您应该能够解决Binary Authorization部署失败并出现“被Attestor拒绝。 Attestor无法对GKE中的图像进行签名”的问题。