View a markdown version of this page

API 密钥的最佳实践 - Amazon Location Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

API 密钥的最佳实践

请遵循以下最佳实践来保护您的 API 密钥并管理其生命周期。

管理 API 密钥

API 密钥包含一个纯文本,用于访问您的 AWS 账户中的一个或多个资源或 API。如果有人复制您的 API 密钥,他们就可以访问这些相同的资源和 API。为尽可能地减少潜在影响,请查看以下最佳实践:

  • 限制 API 密钥

    为避免出现上述情况,最好限制您的 API 密钥。创建密钥时,您可以指定能够使用该密钥的域、Android 应用程序或 Apple 应用程序。

  • 管理 API 密钥的生命周期

    您可以创建无限期有效的 API 密钥。但是,如果您想创建临时 API 密钥、定期轮换 API 密钥或撤销现有 API 密钥,则可以使用 API 密钥过期时间

    • 您可以在创建或更新 API 密钥时为其设置过期时间。

    • API 密钥在到达其到期时间时将会自动停用。非活动密钥不能再用于发出请求。

    • 您可以通过删除过期时间,将临时密钥更改为永久密钥。

    • 您可以在 API 密钥停用 90 天后将其删除。

    • 如果您尝试停用过去七天内使用过的 API 密钥,系统会提示您确认是否要进行更改。

    • 如果您使用的是 Amazon Location Service API 或true,请将ForceUpdate参数设置为,否则您将收到错误消息。 AWS CLI

按请求源限制 API 密钥的使用

您可以为 API 密钥配置客户端限制,从而仅限访问特定的域或移动应用程序。按域进行限制时,只有当 HTTP 引用站点标头与您提供的值相匹配时,才会对请求进行授权。按 Android 或 Apple 应用程序进行限制时,只有当应用程序标识符 HTTP 标头字段与您提供的值相匹配时,才会对请求进行授权。

有关更多信息,请参阅ApiKeyRestrictions亚马逊定位服务 API 参考》。

Android 应用程序标识符:

  • X-Android-Package:

    Android 应用程序的唯一标识符,在应用程序的 build.gradle 文件中定义,通常采用反向域格式。

    示例:

    com.mydomain.appname

  • X-Android-Cert:

    用于签署安卓APK的签名证书的 SHA-1 哈希值。

    示例:

    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

Apple 应用程序标识符:

  • X-Apple-Bundle-Id :

    Apple(iOS、macOS 等)应用程序的唯一标识符,在应用程序的 Info.plist 中定义,通常采用反向域格式。

    示例:

    com.mydomain.appname