api - 用于管理虚拟机的 Google Cloud Compute Engine API 密钥
问题描述
我想通过脚本在 GCP 中启动/停止/重启虚拟机。为此有 OAuth2.0 和 API 密钥方法。
对于 OAuth 2.0,我可以通过“gcloud auth print-access-token”生成访问令牌,我得到了密钥并且它可以工作。
我想同样使用 API 密钥,但无法找到“计算引擎”的 API 密钥,有服务帐户,但有密钥。
curl --request POST \ ' https://www.googleapis.com/compute/v1/projects/xxxx/zones/xxx/instances/xxx/stop?key=[YOUR_API_KEY] ' \ --header '接受:应用程序/ json' \ --压缩
我错过了什么?
谢谢。
解决方案
您不能为此目的使用 API 密钥。这是因为 GCE API 需要知道谁在发送请求1,但 API 密钥不提供此信息。
当任何人都可以访问 API 时使用 API 密钥,例如嵌入在网站中的 Google 地图框,但使用需要考虑到一个特定的客户。
1需要身份来执行 IAM 权限、收集审计日志和其他此类工具。
推荐阅读
- javascript - 使用画布标签在 html 中添加谷歌地图
- arrays - 为什么 Perl 有时会回收引用?
- sql-server - Azure SQL 数据库和 SSIS 包开发
- python - 如何在 PyO3 中实现 python 运算符
- javascript - 从 html (js) 重定向到 angular 8
- javascript - 这可以在反应类中设置等待状态吗?
- spring - 带有 OKTA 的 Spring SAML SSO - 更改 Web 应用程序上下文时的 InResponseTo
- html - 基于AngularJs中的正则表达式在文本框中只允许一个数值
- c++ - 主函数体未检测到对重载可变参数模板函数 C++ 的调用
- javascript - HtmlWebpackPlugin - 错误中的错误:加载程序“[...]/html-webpack-plugin - /lib/loader.js!/[...]/src/index.html”没有返回 html