Digital Ocean API 一直以来都相当不稳定。他们不断随机地向 API 添加新的访问控制,并且完全不具备向后兼容性。
这次我想做的是:
doctl auth remove --context default
doctl auth init
doctl kubernetes cluster kubeconfig save mycluster
但它只是失败并出现错误:
错误:
GET https://api.digitalocean.com/v2/kubernetes/clusters/***** 403 (request "*****" ) You are not authorized to perform this operation.
我们之前一直运行的自动化系统突然停止工作了。我现在需要弄清楚该给新令牌分配什么权限,并将该令牌传播到所有自动化系统。
如果您知道需要启用哪些设置,请告诉我。感谢您的努力!
错误 403 (请求“*****”) 由于 API 令牌不具备所需权限,您无权执行此操作。因此,您需要检查 API 密钥是否具备所需权限。请确保您使用的令牌具备 Kubernetes 的读写访问权限。
根据这篇Digital Ocean 博客, Digital Ocean 最近为代币添加了自定义作用域。如果您的代币创建时间较早,它可能不会自动包含新的作用域。
如果您错过了必需的范围,API 可能会拒绝 403 或 422 无法处理的实体错误
请参阅Digital ocean 的更新,了解有关修复 DigitalOcean API 不完整资源授权问题的重大变更。