

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# API 키
<a name="api-keys"></a>

Amazon Bedrock API 키를 사용하면 AWS 자격 증명 대신 보유자 토큰을 사용하여 API 요청을 인증할 수 있습니다. 두 가지의 유형이 있습니다.
+ **단기** - 최대 12시간(또는 세션 기간 중 더 짧은 시간) 동안 지속됩니다. 권한을 생성하는 데 사용된 IAM 보안 주체의 권한을 상속합니다. 프로덕션용으로 권장됩니다.
+ **장기 -** 구성된 만료 날짜까지 지속됩니다. 정책이 연결된 IAM 사용자를 생성합니다. 탐색에만 권장됩니다.

**참고**  
모든 API 호출이 로그인됩니다 AWS CloudTrail. API 키는 권한 부여 헤더로 전달되며 로깅되지 않습니다.

## 단기 API 키 생성
<a name="api-keys-gen-short"></a>

원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

------
#### [ Console ]

1. Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 자격 증명 AWS Management Console 으로에 로그인합니다. 그 다음 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **API 키**를 선택합니다.

1. **단기 API 키** 탭에서 **단기 API 키 생성을** 선택합니다.

콘솔 세션이 만료되면 키가 만료됩니다(최대 12시간). 다른 리전에 대한 키를 생성하려면 먼저 콘솔에서 리전을 전환합니다.

------
#### [ Python ]

토큰 생성기를 설치합니다.

```
pip install aws-bedrock-token-generator
```

토큰 생성:

```
from aws_bedrock_token_generator import provide_token

token = provide_token()
print(f"Token: {token}")
```

------
#### [ Javascript ]

토큰 생성기를 설치합니다.

```
npm install @aws/bedrock-token-generator
```

토큰 생성:

```
import { getTokenProvider } from "@aws/bedrock-token-generator";

const provideToken = getTokenProvider();
const token = await provideToken();
console.log(`Bearer Token: ${token}`);
```

------
#### [ Java ]

종속성(Maven)을 추가합니다.

```
<dependency>
    <groupId>software.amazon.bedrock</groupId>
    <artifactId>aws-bedrock-token-generator</artifactId>
    <version>1.1.0</version>
</dependency>
```

토큰 생성:

```
import software.amazon.bedrock.token.BedrockTokenGenerator;

BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build();
String token = tokenGenerator.getToken();
```

------

## 장기 API 키 생성
<a name="api-keys-gen-long"></a>

**주의**  
장기 키는 탐색 전용입니다. 프로덕션의 경우 단기 키를 사용합니다. 자세한 내용은 [장기 액세스 키의 대안을 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys).

원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

------
#### [ Console ]

1. Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 자격 증명 AWS Management Console 으로에 로그인합니다. 그 다음 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **API 키**를 선택합니다.

1. **장기 API 키** 탭에서 **장기 API 키 생성**을 선택합니다.

1. 만료 시간을 선택하고 선택적으로 **고급** 권한에 권한을 추가합니다.

1. **생성**을 선택합니다.

------
#### [ CLI ]

```
# Create an IAM user
aws iam create-user --user-name bedrock-api-user

# Attach permissions
aws iam attach-user-policy --user-name bedrock-api-user \
    --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess

# Generate the API key (replace NUMBER-OF-DAYS)
aws iam create-service-specific-credential \
    --user-name bedrock-api-user \
    --service-name bedrock.amazonaws.com \
    --credential-age-days {{${NUMBER-OF-DAYS}}}
```

응답`ServiceApiKeyValue`의는 API 키입니다.

나중에 키를 비활성화하거나 삭제하려면 응답`ServiceSpecificCredentialId`에서를 사용합니다.

```
# Deactivate the key
aws iam update-service-specific-credential \
    --user-name bedrock-api-user \
    --service-specific-credential-id {{${ServiceSpecificCredentialId}}} \
    --status Inactive

# Delete the key permanently
aws iam delete-service-specific-credential \
    --user-name bedrock-api-user \
    --service-specific-credential-id {{${ServiceSpecificCredentialId}}}
```

------
#### [ Python ]

```
import boto3

iam_client = boto3.client("iam")

# Create IAM user
iam_client.create_user(UserName="bedrock-api-user")

# Attach permissions
iam_client.attach_user_policy(
    UserName="bedrock-api-user",
    PolicyArn="arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess"
)

# Generate API key
response = iam_client.create_service_specific_credential(
    UserName="bedrock-api-user",
    ServiceName="bedrock.amazonaws.com",
    CredentialAgeDays=30
)
api_key = response["ServiceSpecificCredential"]["ServiceApiKeyValue"]
print(api_key)
```

------

## API 키 사용
<a name="api-keys-use"></a>

키를 환경 변수로 설정합니다.

```
# macOS/Linux
export AWS_BEARER_TOKEN_BEDROCK={{${api-key}}}

# Windows
setx AWS_BEARER_TOKEN_BEDROCK "{{${api-key}}}"
```

또는 `Authorization` 헤더에 직접 전달합니다.

```
Authorization: Bearer {{${api-key}}}
```

**예: Converse 요청**  
원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

------
#### [ cURL ]

```
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
  -d '{
    "messages": [{"role": "user", "content": [{"text": "Hello"}]}]
  }'
```

------
#### [ Python (boto3) ]

```
import os
import boto3

os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "{{${api-key}}}"

client = boto3.client("bedrock-runtime", region_name="us-east-1")
response = client.converse(
    modelId="us.anthropic.claude-sonnet-4-6",
    messages=[{"role": "user", "content": [{"text": "Hello"}]}]
)
```

------

## 단기 키 자동 새로 고침
<a name="api-keys-auto-refresh"></a>

장기 실행 애플리케이션의 경우 각 요청 전에 토큰 생성기를 호출합니다. 여전히 유효하거나 새 토큰을 자동으로 생성하는 경우 캐시된 토큰을 반환합니다.

------
#### [ Python ]

```
from aws_bedrock_token_generator import provide_token
import requests

url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse"
payload = {"messages": [{"role": "user", "content": [{"text": "Hello"}]}]}

# Call provide_token() before each request — it handles caching/refresh
token = provide_token()
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {token}"}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
```

------
#### [ Javascript ]

```
import { getTokenProvider } from "@aws/bedrock-token-generator";

const provideToken = getTokenProvider();

const url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-sonnet-4-6/converse";
const payload = {messages: [{role: "user", content: [{text: "Hello"}]}]};

// provideToken() handles caching/refresh automatically
const headers = {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${await provideToken()}`
};
await fetch(url, {method: 'POST', headers, body: JSON.stringify(payload)});
```

------

자세한 예제는 토큰 생성기 설명서: [Python](https://github.com/aws/aws-bedrock-token-generator-python/blob/main/README.md) \| [Javascript](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md) \| [Java](https://github.com/aws/aws-bedrock-token-generator-java/blob/main/README.md)를 참조하세요.

## 권한 수정
<a name="api-keys-modify"></a>

장기 API 키는 IAM 사용자와 연결됩니다. 권한을 변경하려면 해당 사용자에게 연결된 정책을 수정합니다. [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

콘솔에서 API **키** > **장기 API 키** > 키 선택 > **IAM 콘솔에서 관리**로 이동합니다.

## 손상된 키
<a name="api-keys-compromised"></a>

키가 손상된 경우 다음 작업 중 하나를 수행합니다.


| 작업 | 키 유형 | 수정할 수 있다면 방법이 무엇입니까? | 
| --- | --- | --- | 
| 비활성화 | 장기 | 콘솔: API 키 > 키 선택 > 작업 > 비활성화. API: UpdateServiceSpecificCredential를 사용합니다Status=Inactive. | 
| 재설정 | 장기 | 콘솔: 작업 > 키 재설정. API: ResetServiceSpecificCredential. | 
| Delete | 장기 | 콘솔: 작업 > 삭제. API: DeleteServiceSpecificCredential. | 
| 세션 무효화 | 단기 | 를 거부하는 자격 증명에 IAM 정책을 연결bedrock:CallWithBearerToken하거나 키를 생성하는 데 사용되는 세션을 무효화합니다. | 

## API 키를 생성하고 사용할 수 있는 사용자 제어
<a name="api-keys-control"></a>

두 가지 IAM 작업은 API 키 생성 및 사용을 제어합니다.
+ `iam:CreateServiceSpecificCredential` - 장기 키 생성을 제어합니다. `iam:ServiceSpecificCredentialAgeDays` 조건 키를 사용하여 만료를 제한합니다(예: 최대 90일).
+ `bedrock:CallWithBearerToken` - 모든 API 키의 사용을 제어합니다. `bedrock:bearerTokenType` 조건 키를 값 `SHORT_TERM` 또는와 함께 사용하여 특정 키 유형을 대상으로 `LONG_TERM` 지정합니다.

**예: 자격 증명이 API 키를 사용하지 못하도록 방지**  
이 정책을 자격 증명에 연결합니다.

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

**예: 수명이 짧은 키만 허용(최대 90일)**  
이 정책을 자격 증명에 연결합니다.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceSpecificCredential",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "iam:ServiceSpecificCredentialAgeDays": "90"
                },
                "StringEquals": {
                    "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
                }
            }
        }
    ]
}
```

자세한 정책 예제는 섹션을 참조하세요[API 키 참조](api-keys-reference.md).