

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

# 控制生成和使用 Amazon Bedrock API 密钥的权限
<a name="api-keys-permissions"></a>

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

**控制 Amazon Bedrock API 密钥的生成**  
ia [m: CreateServiceSpecificCredential 操作控制特定于服务的密钥（例如长期的 A](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html#awsidentityandaccessmanagementiam-actions-as-permissions) mazon Bedrock API 密钥）的生成。您可以将此操作作为一种资源，将操作范围限定为 IAM 用户，以便限制可以为其生成密钥的用户。

您可以使用以下条件密钥对 `iam:CreateServiceSpecificCredential` 操作的权限施加条件：
+ [iam: ServiceSpecificCredentialAgeDays](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — 允许您在条件中指定密钥的到期时间（以天为单位）。例如，您可以使用此条件密钥仅允许创建将在 90 天内过期的 API 密钥。
+ [iam: ServiceSpecificCredentialServiceName](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — 允许您在条件中指定服务的名称。例如，您可以使用此条件密钥仅允许创建 Amazon Bedrock 的 API 密钥，不允许创建其他服务的 API 密钥。

**控制 Amazon Bedrock API 密钥的使用**  
[基石：CallWithBearerToken](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)操作控制短期或长期的 Amazon Bedrock API 密钥的使用。

您可以使用带有[字符串条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)的 `bedrock:bearerTokenType` 条件密钥，指定要申请 `bedrock:CallWithBearerToken` 权限的持有者令牌的类型。可以指定以下值之一：
+ `SHORT_TERM` – 在条件中指定短期 Amazon Bedrock API 密钥。
+ `LONG_TERM` – 在条件中指定长期 Amazon Bedrock API 密钥。

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


****  

| 用途 | Long-term 钥匙 | Short-term 钥匙 | 
| --- | --- | --- | 
| 防止生成密钥 | 将拒绝 iam:CreateServiceSpecificCredential 操作的策略附加到 IAM 身份。 | N/A | 
| 防止使用密钥 | 向与密钥关联的 IAM 用户附加拒绝 bedrock:CallWithBearerToken 操作的策略。 | 向您不希望其使用密钥的 IAM 身份附加拒绝 bedrock:CallWithBearerToken 操作的策略。 | 

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

## 控制生成和使用 API 密钥的策略示例
<a name="api-keys-permissions-examples"></a>

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

**Topics**
+ [防止身份生成长期密钥和使用 Amazon Bedrock API 密钥](#api-keys-permissions-examples-prevent-generation-and-use)
+ [防止身份使用短期 API 密钥](#api-keys-permissions-examples-prevent-use-short-term)
+ [防止身份使用长期 API 密钥](#api-keys-permissions-examples-prevent-use-long-term)
+ [明确禁止身份使用短期 API 密钥](#api-keys-permissions-examples-deny-use-short-term-explicitly)
+ [明确禁止身份使用长期 API 密钥](#api-keys-permissions-examples-deny-use-long-term-explicitly)
+ [仅当 Amazon Bedrock 密钥在 90 天内过期时，才允许创建这些密钥](#api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days)

### 防止身份生成长期密钥和使用 Amazon Bedrock API 密钥
<a name="api-keys-permissions-examples-prevent-generation-and-use"></a>

为防止 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 用户的Service-specific 证书](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_service-specific-creds.html)。

### 防止身份使用短期 API 密钥
<a name="api-keys-permissions-examples-prevent-use-short-term"></a>

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

### 防止身份使用长期 API 密钥
<a name="api-keys-permissions-examples-prevent-use-long-term"></a>

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

------
#### [ JSON ]

****  

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

------

### 明确禁止身份使用短期 API 密钥
<a name="api-keys-permissions-examples-deny-use-short-term-explicitly"></a>

要明确禁止 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 密钥
<a name="api-keys-permissions-examples-deny-use-long-term-explicitly"></a>

要明确禁止 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 天内过期时，才允许创建这些密钥
<a name="api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days"></a>

要允许 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"
               }
           }
       }
   ]
}
```

------