如何使用Notary客户端访问IBM Cloud公证服务器及鉴权报错解决求助
解决方案
第一步:验证IBM Cloud账号与容器注册表权限
- 先完成IBM Cloud账号登录,联邦账号需追加
--sso参数:ibmcloud login -r us-south - 验证是否有权限访问目标命名空间,执行后确认输出包含
securek8s:
如果看不到目标命名空间,需要联系对应命名空间的管理员为你的账号配置至少ibmcloud cr namespacesReader角色的访问权限,同时确认账号无欠费、未被冻结。
第二步:获取有效认证凭证并传入Notary命令
IBM Container Registry的Notary服务支持直接使用IAM令牌完成认证,你可以直接在执行Notary命令时传入有效令牌,无需额外修改配置:
notary -s https://us.icr.io:4443 --username iam --password $(ibmcloud iam oauth-tokens --output json | jq -r '.iam_token' | cut -d ' ' -f 2) lookup us.icr.io/securek8s/hello-world latest
如果你习惯使用API密钥认证,也可以将用户名替换为iamapikey,密码替换为你自己创建的IBM Cloud API密钥即可。
第三步:验证编译的Notary客户端兼容性
如果上述步骤执行后仍报错,可排查自行编译的Notary客户端版本兼容性:IBM Container Registry当前兼容Notary v0.6.x及以上正式版本,你可以执行notary version确认版本,版本偏差过大可切换到对应tag的源码重新编译。
内容的提问来源于stack exchange,提问作者Qi Zhang
相关产品推荐
相关产品推荐

