本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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