AWS 服务的 API 密钥
您可以使用 AWS CLI 或 AWS API 以 AWS 管理控制台 或编程方式访问 AWS 服务。向 Amazon Bedrock 和 Amazon CloudWatch Logs 等服务发出编程请求时,您可以使用 IAM 凭证(例如临时安全凭证或长期访问密钥)或 API 密钥进行身份验证。共有两种类型的 API 密钥:
-
长期 API 密钥 – 长期 API 密钥与 IAM 用户关联并使用 IAM 服务特定凭证生成。这些凭证仅设计用于单一 AWS 服务,通过限制凭证范围来增强安全性。您可以设置长期 API 密钥的过期时间。您可以使用 IAM 或特定服务的控制台(例如 Amazon Bedrock 或 CloudWatch Logs 控制台)、AWS CLI 或 AWS API 来生成长期 API 密钥。
-
短期 API 密钥(仅 Amazon Bedrock 支持):短期 API 密钥是使用 AWS 签名版本 4 的预签名 URL。短期 API 密钥与生成 API 密钥的身份的凭证具有相同的权限和过期时间,有效期最长为 12 小时或控制台会话的剩余时间(以较短者为准)。您可以使用 Amazon Bedrock 控制台、Python 包
aws-bedrock-token-generator和其他编程语言的包来生成短期 API 密钥。有关更多信息,请参阅《Amazon Bedrock 用户指南》中的 Generate Amazon Bedrock API keys for easy access to the Amazon Bedrock API。
注意
与短期 API 密钥相比,长期 API 密钥的安全风险更高。建议尽可能使用短期 API 密钥或临时安全凭证。如果使用长期 API 密钥,建议实施定期密钥轮换实践。
受支持的服务
下表列出了支持 API 密钥的 AWS 服务以及每项服务支持的 API 密钥类型。
| # | 服务 | 长期 API 密钥 | 短期 API 密钥 | 托管策略自动附加 |
|---|---|---|---|---|
| 1 | Amazon Bedrock | 支持 | 是 | AmazonBedrockLimitedAccess |
| 2 | Amazon CloudWatch Logs | 是 | 不适用 | CloudWatchLogsAPIKeyAccess |
当您为某项服务生成长期 API 密钥时,相应的 AWS 托管策略会自动附加到 IAM 用户,从而授予访问该服务的核心操作权限。如果需要额外的访问权限,则可以修改 IAM 用户的权限。有关修改权限的信息,请参阅添加和删除 IAM 身份权限。有关如何使用 Amazon Bedrock 密钥的更多信息,请参阅《Amazon Bedrock 用户指南》中的使用 Amazon Bedrock API 密钥。有关如何在 Amazon CloudWatch Logs 中使用持有者令牌的更多信息,请参阅《CloudWatch Logs 用户指南》中的持有者令牌身份验证。
长期 API 密钥的先决条件
必须先满足以下先决条件,然后才能在 IAM 控制台生成长期 API 密钥:
-
与长期 API 密钥关联的 IAM 用户。有关创建 IAM 用户的说明,请参阅在 AWS 账户 中创建 IAM 用户。
-
您必须具备以下 IAM 策略权限来管理 IAM 用户的服务特定凭证。示例策略授予创建、列出、更新、删除和重置服务特定凭证的权限。请将 Resource 元素中的
值替换为要为其生成长期 API 密钥的 IAM 用户的名称:username
生成长期 API 密钥(控制台)
在 IAM 控制台中为特定服务生成长期 API 密钥
登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 控制台的导航窗格中,选择用户。
-
选择要为其生成长期 API 密钥的 IAM 用户。
-
选择安全凭证选项卡。
-
在 API 密钥部分中,选择生成 API 密钥。
-
从AWS服务下拉列表中,选择您希望 API 密钥用于身份验证的服务。
-
对于 API 密钥过期时间,请执行以下操作之一:
-
选择 API 密钥的过期时间 1、5、30、90 或 365 天。
-
选择自定义持续时间以指定自定义 API 密钥到期日期。
-
选择永不过期(不建议)。
-
-
选择生成 API 密钥。
-
复制或下载 API 密钥。这是唯一可以查看 API 密钥值的时间。
重要
安全存储 API 密钥。关闭对话框后,将无法再次检索 API 密钥。如果丢失或忘记 API 密钥,则无法进行检索。相反,请生成新的 API 密钥并停用旧密钥。
生成长期 API 密钥(AWS CLI)
要使用 AWS CLI 生成长期 API 密钥,请按照以下步骤进行操作:
-
使用 create-user
命令创建将与 Amazon Bedrock 或 Amazon CloudWatch Logs 一起使用的 IAM 用户: aws iam create-user \ --user-nameAPIKeyUser_1 -
使用 attach-user-policy
命令将 AWS 托管式策略附加到 IAM 用户。 对于 Amazon Bedrock:
aws iam attach-user-policy --user-nameAPIKeyUser_1\ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess对于 Amazon CloudWatch Logs:
aws iam attach-user-policy --user-nameAPIKeyUser_1\ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsAPIKeyAccess -
使用 create-service-specific-credential
命令生成长期 API 密钥。 对于 Amazon Bedrock:
aws iam create-service-specific-credential \ --user-nameAPIKeyUser_1\ --service-name bedrock.amazonaws.com \ --credential-age-days30对于 Amazon CloudWatch Logs:
aws iam create-service-specific-credential \ --user-nameAPIKeyUser_1\ --service-name logs.amazonaws.com \ --credential-age-days30注意
--credential-age-days参数是可选的。您可以指定 1 至 36600 天之间的值。如果省略此参数,API 密钥将不会过期。
响应中返回的 ServiceApiKeyValue 即为该服务的长期 API 密钥。安全地存储 ServiceApiKeyValue 值,因为您以后无法检索它。
列出长期 API 密钥 (AWS CLI)
要列出特定用户的长期 API 密钥元数据,请使用带有 --user-name 参数的 list-service-specific-credentials
aws iam list-service-specific-credentials \ --service-name bedrock.amazonaws.com \ --user-nameAPIKeyUser_1
注意
将 bedrock.amazonaws.com 替换为相应的服务名称(例如,Amazon CloudWatch Logs 替换为 logs.amazonaws.com)。
要列出账户中的所有长期 API 密钥元数据,请使用带有 --all-users 参数的 list-service-specific-credentials
aws iam list-service-specific-credentials \ --service-name bedrock.amazonaws.com \ --all-users
更新长期 API 密钥状态 (AWS CLI)
要更新长期 API 密钥的状态,请使用 update-service-specific-credential
aws iam update-service-specific-credential \ --user-name "APIKeyUser_1" \ --service-specific-credential-id "ACCA1234EXAMPLE1234" \ --statusInactive|Active
生成长期 API 密钥(AWS API)
您可以使用以下 IAM API 操作来管理任何受支持服务的长期 API 密钥:
短期 API 密钥(Amazon Bedrock)
目前,仅 Amazon Bedrock 支持短期 API 密钥。有关生成和使用短期 API 密钥的信息,请参阅《Amazon Bedrock 用户指南》中的生成 API 密钥。
特定服务的信息
-
有关通过 Amazon Bedrock 使用 API 密钥的更多信息,请参阅《Amazon Bedrock 用户指南》中的使用 Amazon Bedrock API 密钥。
-
有关通过 Amazon CloudWatch Logs 使用 API 密钥的更多信息,请参阅《Amazon CloudWatch Logs 用户指南》中的通过 HTTP 端点进行日志摄取。