控制生成和使用 Amazon Bedrock API 密钥的权限 - Amazon Bedrock

控制生成和使用 Amazon Bedrock API 密钥的权限

Amazon Bedrock API 密钥的生成和使用由 Amazon Bedrock 和 IAM 服务中的操作和条件密钥控制。

控制 Amazon Bedrock API 密钥的生成

iam:CreateServiceSpecificCredential 操作控制特定于服务的密钥(例如长期 Amazon Bedrock API 密钥)的生成。您可以将此操作作为一种资源,将操作范围限定为 IAM 用户,以便限制可以为其生成密钥的用户。

您可以使用以下条件密钥对 iam:CreateServiceSpecificCredential 操作的权限施加条件:

  • iam:ServiceSpecificCredentialAgeDays – 允许您在条件中指定密钥的到期时间(以天为单位)。例如,您可以使用此条件密钥仅允许创建将在 90 天内过期的 API 密钥。

  • iam:ServiceSpecificCredentialServiceName – 允许您在条件中指定服务的名称。例如,您可以使用此条件密钥仅允许创建 Amazon Bedrock 的 API 密钥,不允许创建其他服务的 API 密钥。

控制 Amazon Bedrock API 密钥的使用

bedrock:CallWithBearerToken 操作控制短期或长期 Amazon Bedrock API 密钥的使用。

您可以使用带有字符串条件运算符bedrock:bearerTokenType 条件密钥,指定要申请 bedrock:CallWithBearerToken 权限的持有者令牌的类型。可以指定以下值之一:

  • SHORT_TERM – 在条件中指定短期 Amazon Bedrock API 密钥。

  • LONG_TERM – 在条件中指定长期 Amazon Bedrock API 密钥。

下表汇总了如何防止身份生成或使用 Amazon Bedrock API 密钥:

用途 长期密钥 短期密钥
防止生成密钥 将拒绝 iam:CreateServiceSpecificCredential 操作的策略附加到 IAM 身份。 不适用
防止使用密钥 向与密钥关联的 IAM 用户附加拒绝 bedrock:CallWithBearerToken 操作的策略。 向您不希望其使用密钥的 IAM 身份附加拒绝 bedrock:CallWithBearerToken 操作的策略。
警告

由于短期 Amazon Bedrock API 密钥使用会话中的现有凭证,因此您可以通过拒绝对生成密钥的身份执行 bedrock:CallWithBearerToken 操作来防止使用密钥。但是,您无法防止生成短期密钥。

控制生成和使用 API 密钥的策略示例

关于控制生成和使用 API 密钥的 IAM 策略示例,请从以下主题中进行选择:

防止身份生成长期密钥和使用 Amazon Bedrock API 密钥

为防止 IAM 身份生成长期 Amazon Bedrock API 密钥和使用任何 Amazon Bedrock API 密钥,请将以下策略附加到身份:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid":"DenyBedrockShortAndLongTermAPIKeys", "Effect": "Deny", "Action": [ "iam:CreateServiceSpecificCredential", "bedrock:CallWithBearerToken" ], "Resource": [ "*" ] } ] }
警告
  • 您无法防止生成短期密钥。

  • 此策略将禁止为所有支持创建服务特定凭证的 AWS 服务创建凭证。有关更多信息,请参阅 IAM 用户的服务特定凭证

防止身份使用短期 API 密钥

要防止 IAM 身份使用短期 Amazon Bedrock API 密钥,请将以下策略附加到该身份:

防止身份使用长期 API 密钥

要防止 IAM 身份使用长期 Amazon Bedrock API 密钥,请将以下策略附加到该身份:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*", "Condition": { "StringEquals": { "bedrock:bearerTokenType": "LONG_TERM" } } } ] }

明确禁止身份使用短期 API 密钥

要明确禁止 IAM 身份使用短期 Amazon Bedrock API 密钥,但允许使用其他 API 密钥,请将以下策略附加到该身份:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*", "Condition": { "StringEquals": { "bedrock:bearerTokenType": "SHORT_TERM" } } }, { "Effect": "Allow", "Action": "bedrock:CallWithBearerToken", "Resource": "*" } ] }

明确禁止身份使用长期 API 密钥

要明确禁止 IAM 身份使用长期 Amazon Bedrock API 密钥,但允许使用其他 API 密钥,请将以下策略附加到该身份:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "bedrock:CallWithBearerToken", "Resource": "*", "Condition": { "StringEquals": { "bedrock:bearerTokenType": "LONG_TERM" } } }, { "Effect": "Allow", "Action": "bedrock:CallWithBearerToken", "Resource": "*" } ] }

仅当 Amazon Bedrock 密钥在 90 天内过期时,才允许创建这些密钥

要允许 IAM 身份仅在长期 API 密钥用于 Amazon Bedrock 且过期时间不超过 90 天的情况下创建这样的密钥,请将以下策略附加到该身份:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "arn:aws:iam::123456789012:user/username", "Condition": { "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com" }, "NumericLessThanEquals": { "iam:ServiceSpecificCredentialAgeDays": "90" } } } ] }