如何将Google API密钥限制为仅单个服务使用?
嘿,这个问题我太熟了——确实,共用密钥会带来不小的安全风险,尤其是客户端暴露的密钥被拿去调用服务器端API的情况。我来一步步教你给每个API配置单独的、仅限单个服务使用的密钥:
给Google API密钥设置单服务限制的详细步骤
1. 进入API密钥管理页面
- 打开Google API控制台,选中你已创建的目标项目
- 在左侧导航栏找到「APIs & Services」>「Credentials」(凭据)页面
- 这里你会看到已有的API密钥列表:如果你想给现有密钥改限制,直接点击对应密钥的名称;如果想新建独立密钥,点击「Create Credentials」>「API key」,建议给新密钥起个清晰的名字,比如“YouTube Data API 服务器专用密钥”、“Google Maps JS API 客户端专用密钥”
2. 配置核心的API限制(关键一步)
进入目标密钥的详情页面后,找到「API restrictions」(API限制)板块:
- 选择「Restrict key」(限制密钥)选项
- 在弹出的「Select APIs」下拉框里,只勾选你要绑定的单个API:
- 若为YouTube Data API的密钥,只勾选「YouTube Data API v3」
- 若为Google Maps JavaScript API的密钥,只勾选「Maps JavaScript API」
- 点击「Save」保存设置,这个密钥就只能访问你指定的那一个API了
3. 给客户端密钥再加一层防护(针对Google Maps JS API)
因为Maps JS是客户端调用,密钥会随HTML发送到浏览器,除了API限制,还可以添加应用来源限制进一步降低风险:
- 在同一密钥详情页的「Application restrictions」(应用限制)板块
- 选择「HTTP referrers (web sites)」(HTTP引用来源)
- 添加你的网站域名规则,比如
https://yourdomain.com/*或者更精准的路径,确保只有你的网站能使用这个密钥调用Maps API
这样设置完成后,每个密钥都被严格限制为仅能访问单个API,就算客户端的Maps密钥不慎泄露,别人也没法用它去调用你的YouTube Data API,彻底堵上安全漏洞。
内容的提问来源于stack exchange,提问作者Finesse




