跳转到主要内容

API 密钥最佳实践:保持您的密钥安全和安全

一周前更新

API密钥可以访问Claude API,但如果处理不当,可能会带来重大安全风险。您的API密钥是您账户的数字钥匙。就像信用卡号一样,如果有人获得并使用您的API密钥,他们会以您的名义产生费用。本文概述了管理API密钥的最佳实践,以确保它们保持安全,并防止对您的Claude Console账户的未授权访问和费用。

常见风险和漏洞

API密钥泄露最常见的原因之一是在公共代码库或第三方工具中意外暴露。开发人员经常无意中将纯文本API密钥提交到公共GitHub存储库,或将其输入到第三方工具中,这可能导致未授权访问和相关账户的潜在滥用。

API密钥安全的最佳实践

1. 永远不要共享您的API密钥

  • 保持其机密性:就像您不会共享个人密码一样,不要共享您的API密钥。如果有人需要访问Claude API,他们应该获取自己的密钥。

  • 不要在公共论坛中共享您的密钥:不要在公共讨论、电子邮件或支持工单中包含您的API密钥,即使是与Anthropic之间的通信也不要。

  • 对第三方工具保持谨慎:考虑到当您将API密钥上传到第三方工具或平台(例如基于网络的IDE、云提供商或CI/CD平台)时,您是在授予该工具的开发人员访问您的Claude Console账户的权限。如果您不信任他们的声誉,就不要用您的API密钥信任他们。

    • 使用第三方提供商时,始终将您的API密钥添加为加密密钥。永远不要直接将其包含在您的代码或配置文件中。

2. 密切监控使用情况和日志

我们建议定期在Console中查看API密钥的日志使用模式。

  • 对于自定义速率限制API组织:在您的账户设置中实施使用和支出限制。

    • 这些限制可以防止由于密钥泄露或脚本错误导致的意外使用。

  • 对于标准速率限制API组织:在您的账户中启用和配置自动重新加载设置。

    • 此功能允许您设置一个阈值,在该阈值处您的账户将自动向存档的卡收费以补充使用额度。

      • 仔细考虑自动重新加载限制。虽然它们确保持续服务,但它们也可以防止由于密钥泄露或代码错误导致的意外高使用。

3. 使用环境变量和密钥安全处理API密钥

安全处理API密钥的最佳实践是使用环境变量来安全地注入和共享环境变量。当您将应用程序部署到云环境时,您可以使用其密钥管理解决方案通过环境变量安全地将API密钥传递给您的应用程序,而不会无意中共享您的API密钥。

如果您使用dotenv在本地存储密钥,必须将您的.env文件添加到源代码控制忽略文件(例如git的.gitignore)中,以防止无意中公开分发敏感信息。在云环境中,优先使用加密密钥存储而不是dotenv文件。

Python示例:

1. 在您的项目目录中创建一个.env文件。

2. 将您的API密钥添加到.env文件:

ANTHROPIC_API_KEY=your-api-key-here

3. 安装python-dotenv包:

pip install python-dotenv

4. 在您的Python脚本中加载API密钥:

from dotenv import load_dotenv

import os

load_dotenv()
my_api_key = os.getenv("ANTHROPIC_API_KEY")

5. 如果您将应用程序部署到云托管环境,请参考您的云提供商的文档,了解如何添加您的Claude API密钥并与您的应用程序共享(AWSGCPAzureVercelHeroku)。某些提供商提供多种方式来安全地将环境变量注入到您的应用程序中。

4. 定期轮换API密钥

按照一致的时间表(例如每90天)定期轮换您的API密钥,方法是创建新密钥并停用旧密钥。这种常规做法有助于最小化密钥被泄露时的潜在风险。

5. 为不同目的使用单独的密钥

如果可能,为开发、测试和生产环境使用不同的API密钥。这样,您可以将使用情况与不同的内部用例相关联。如果您的API密钥被泄露,这允许您快速禁用仅该用例,并限制任何潜在的损害。

6. 扫描存储库中的密钥

定期检查您的源代码控制存储库中是否有意外提交的密钥。

通过将定期密钥扫描纳入您的开发工作流程,您可以捕获并防止API密钥和其他敏感信息在代码存储库中的意外暴露。

7. 使用安全密钥管理系统(KMS)

随着组织的扩展和API密钥及其他密钥数量的增加,安全管理这些敏感凭证变得更加具有挑战性。这就是密钥管理系统(KMS)发挥作用的地方。KMS为存储、访问和管理密钥(包括API密钥)提供了一个集中的解决方案。

使用KMS的好处

  1. 集中安全性:将所有密钥存储在一个安全的加密位置。

  2. 访问控制:实施细粒度访问控制,以确定谁可以查看或使用特定密钥。

  3. 审计跟踪:跟踪对密钥的所有访问和更改,以用于合规性和安全目的。

  4. 密钥轮换:轻松定期轮换密钥以增强安全性。

  5. 集成:许多KMS解决方案与流行的云平台和开发工具集成。

Anthropic与GitHub的API密钥保护合作

Anthropic已与GitHub直接合作,通过GitHub的密钥扫描合作伙伴计划为我们的用户提供额外的保护层。此合作伙伴关系提供了主动的安全措施,以防止意外暴露的API密钥的滥用:

  • GitHub主动扫描公共存储库中暴露的Claude API密钥。

  • 如果在公共GitHub存储库中检测到Claude API密钥,GitHub会立即通知Anthropic。

  • 为了防止潜在的滥用,Anthropic会自动停用暴露的API密钥。

  • 受影响的用户会收到来自Anthropic的关于该事件的详细电子邮件通知。

如果我怀疑我的API密钥已被泄露,我应该怎么办?

如果您怀疑您的API密钥可能已被泄露,我们建议立即撤销该密钥。您可以通过登录您的Claude Console账户,从您的个人资料转到API密钥页面,单击相关密钥旁边的肉丸菜单(即三个水平点),然后选择"删除API密钥"来执行此操作。

API密钥安全是一个持续的过程,需要警惕和定期审查您的安全措施。通过遵循这些最佳实践,您可以显著降低API密钥泄露和未授权访问的风险。

这是否解答了您的问题?