

# AWS 서비스의 API 키
<a name="id_credentials_api_keys_for_aws_services"></a>

AWS 서비스는 AWS Management Console을 통해 액세스하거나 AWS CLI 또는 AWS API를 사용하여 프로그래밍 방식으로 액세스할 수 있습니다. Amazon Bedrock, Amazon CloudWatch Logs 등의 서비스에 프로그래밍 방식으로 요청할 때 IAM 자격 증명(예: 임시 보안 자격 증명 또는 장기 액세스 키) 또는 API 키를 사용하여 인증할 수 있습니다. 두 가지 유형의 API 키가 있습니다.
+ **장기 API 키** - 장기 API 키는 IAM 사용자와 연결되며 IAM [서비스별 자격 증명](id_credentials_service-specific-creds.md)을 사용하여 생성됩니다. 해당 자격 증명은 단일 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 사용 설명서*의 [Amazon Bedrock API에 쉽게 액세스할 수 있도록 Amazon Bedrock API 키 생성](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys.html)을 참조하세요.

**참고**  
장기 API 키는 단기 API 키에 비해 보안 위험도가 높습니다. 가능하면 단기 API 키 또는 임시 보안 자격 증명을 사용하는 것이 좋습니다. 장기 API 키를 사용하는 경우 키 교체를 정기적으로 수행하는 사례를 구현하는 것이 좋습니다.

## 지원되는 서비스
<a name="id_credentials_api_keys_supported_services"></a>

다음 표에는 API 키를 지원하는 AWS 서비스와 각 서비스가 지원하는 API 키의 유형이 나와 있습니다.


| \$1 | 서비스 | 장기 API 키 | 단기 API 키 | 자동 연결된 관리형 정책 | 
| --- | --- | --- | --- | --- | 
| 1 | Amazon Bedrock | 예 | 예 | [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html) | 
| 2 | Amazon CloudWatch Logs | 예 | 해당 사항 없음 | [CloudWatchLogsAPIKeyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchLogsAPIKeyAccess.html) | 

서비스의 장기 API 키를 생성하면 해당 AWS 관리형 정책이 IAM 사용자에게 자동으로 연결되어 해당 서비스의 핵심 작업에 대한 액세스 권한을 부여합니다. 액세스가 추가로 필요한 경우 IAM 사용자의 권한을 수정할 수 있습니다. 권한 수정에 대한 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](access_policies_manage-attach-detach.md) 섹션을 참조하세요. Amazon Bedrock 키를 사용하는 방법에 대한 자세한 내용은 *Amazon Bedrock 사용 설명서*의 [Amazon Bedrock API 키 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-use.html)을 참조하세요. Amazon CloudWatch Logs에 베어러 토큰을 사용하는 방법에 대한 자세한 내용은 *CloudWatch Logs 사용 설명서*의 [베어러 토큰 인증](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_HTTP_Endpoints_BearerTokenAuth.html)을 참조하세요.

## 장기 API 키의 전제 조건
<a name="id_credentials_api_keys_prerequisites"></a>

IAM 콘솔에서 장기 API 키를 생성하려면 다음 사전 조건을 충족해야 합니다.
+ 장기 API 키와 연결할 IAM 사용자입니다. IAM 사용자 생성 지침은 [AWS 계정에서 IAM 사용자 생성](id_users_create.md) 섹션을 참조하세요.
+ 다음과 같이 IAM 사용자의 서비스 관련 자격 증명을 관리할 수 있는 IAM 정책 권한을 보유해야 합니다. 예제 정책은 서비스별 자격 증명을 생성, 나열, 업데이트, 삭제하고 재설정할 수 있는 권한을 부여합니다. 리소스 요소의 `username` 값을 장기 API 키를 생성할 IAM 사용자의 이름으로 바꿉니다.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "ManageBedrockServiceSpecificCredentials",
              "Effect": "Allow",
              "Action": [
                  "iam:CreateServiceSpecificCredential",
                  "iam:ListServiceSpecificCredentials",
                  "iam:UpdateServiceSpecificCredential",
                  "iam:DeleteServiceSpecificCredential",
                  "iam:ResetServiceSpecificCredential"
              ],
              "Resource": "arn:aws:iam::*:user/username"
          }
      ]
  }
  ```

------

## 장기 API 키 생성(콘솔)
<a name="id_credentials_api_keys_console_create"></a>

**IAM 콘솔에서 특정 서비스의 장기 API 키를 생성하려면 다음을 수행하세요.**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. IAM 콘솔의 탐색 창에서 **사용자**를 선택합니다.

1. 장기 API 키를 생성할 IAM 사용자를 선택합니다.

1. **Security credentials(보안 자격 증명)** 탭을 선택합니다.

1. **API 키** 섹션에서 **API 키 생성**을 선택합니다.

1. **AWS 서비스** 드롭다운 목록에서 API 키를 사용하여 인증할 서비스를 선택합니다.

1. **API 키 만료**가 된 경우 다음 중 하나를 수행하세요..
   + API 키 만료 기간을 **1**, **5**, **30**, **90** 또는 **365**일 중에서 선택합니다.
   + **사용자 지정 기간**을 선택하여 사용자 지정 API 키 만료 날짜를 지정합니다.
   + **만료되지 않음**을 선택합니다(권장하지 않음).

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

1. API 키를 복사 또는 다운로드합니다. API 키 값을 볼 수 있는 것은 이 때가 유일합니다.
**중요**  
API 키를 안전하게 저장합니다. 대화 상자를 닫은 이후에는 API 키를 다시 검색할 수 없습니다. API 키를 분실하거나 잊어버린 경우 검색할 수 없습니다. 대신 새 API 키를 생성하고 기존 키를 비활성화합니다.

## 장기 API 키 생성(AWS CLI)
<a name="id_credentials_api_keys_cli_create"></a>

AWS CLI를 사용하여 장기 API 키를 생성하려면 다음 단계를 사용합니다.

1. [create-user](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-user.html) 명령을 사용해 Amazon Bedrock 또는 Amazon CloudWatch Logs와 함께 사용할 IAM 사용자를 생성합니다.

   ```
   aws iam create-user \
       --user-name APIKeyUser_1
   ```

1. [attach-user-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-user-policy.html) 명령을 사용해 AWS 관리형 정책을 IAM 사용자에게 연결합니다.

   Amazon Bedrock:

   ```
   aws iam attach-user-policy --user-name APIKeyUser_1 \
       --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
   ```

   Amazon CloudWatch Logs:

   ```
   aws iam attach-user-policy --user-name APIKeyUser_1 \
       --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsAPIKeyAccess
   ```

1. [create-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-service-specific-credential.html) 명령을 사용해 장기 API 키를 생성합니다.

   Amazon Bedrock:

   ```
   aws iam create-service-specific-credential \
       --user-name APIKeyUser_1 \
       --service-name bedrock.amazonaws.com \
       --credential-age-days 30
   ```

   Amazon CloudWatch Logs:

   ```
   aws iam create-service-specific-credential \
       --user-name APIKeyUser_1 \
       --service-name logs.amazonaws.com \
       --credential-age-days 30
   ```
**참고**  
`--credential-age-days` 파라미터는 선택 항목입니다. 1\$13만 6,600일 범위의 값을 지정할 수 있습니다. 이 파라미터를 생략하면 API 키가 만료되지 않습니다.

응답의 반환된 `ServiceApiKeyValue`는 해당 서비스의 장기 API 키입니다. 나중에 검색할 수 없으므로 `ServiceApiKeyValue` 값을 안전하게 저장하세요.

### 장기 API 키 나열(AWS CLI)
<a name="id_credentials_api_keys_cli_list"></a>

특정 사용자의 장기 API 키 메타데이터를 나열하려면 [list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html) 명령을 `--user-name` 파라미터와 함께 사용합니다.

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --user-name APIKeyUser_1
```

**참고**  
`bedrock.amazonaws.com`을 적절한 서비스 이름으로 바꿉니다(예: Amazon CloudWatch Logs의 경우 `logs.amazonaws.com`).

계정의 모든 장기 API 키 메타데이터를 나열하려면 [list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html) 명령을 `--all-users` 파라미터와 함께 사용합니다.

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --all-users
```

### 장기 API 키 상태 업데이트(AWS CLI)
<a name="id_credentials_api_keys_cli_update"></a>

장기 API 키의 상태를 업데이트하려면 [update-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-service-specific-credential.html) 명령을 사용합니다.

```
aws iam update-service-specific-credential \
    --user-name "APIKeyUser_1" \
    --service-specific-credential-id "ACCA1234EXAMPLE1234" \
    --status Inactive|Active
```

## 장기 API 키 생성(AWS API)
<a name="id_credentials_api_keys_api"></a>

다음 IAM API 작업을 사용하여 지원되는 서비스의 장기 API 키를 관리할 수 있습니다.
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html) 

## 단기 API 키(Amazon Bedrock)
<a name="id_credentials_api_keys_short_term"></a>

단기 API 키는 현재 Amazon Bedrock에서만 지원됩니다. 단기 API 키 생성 및 사용에 대한 자세한 내용은 *Amazon Bedrock 사용 설명서*의 [API 키 생성](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-generate.html)을 참조하세요.

## 서비스별 정보
<a name="id_credentials_api_keys_service_info"></a>
+ Amazon Bedrock에서 API 키를 사용하는 방법에 대한 자세한 내용은 *Amazon Bedrock 사용 설명서*의 [Amazon Bedrock API 키 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-use.html)를 참조하세요.
+ Amazon CloudWatch Logs에서 API 키를 사용하는 방법에 대한 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [HTTP 엔드포인트를 통한 로그 수집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_HTTP_Endpoints.html)을 참조하세요.