AWS 서비스용 API 키

AWS 서비스용 API 키

일부 AWS 서비스는 임시 보안 자격 증명과 장기 액세스 키 같은 표준 IAM 자격 증명 외에도 프로그래매틱 요청을 인증하기 위한 API 키를 지원해요. AWS는 두 가지 유형의 API 키를 제공합니다:

  • 장기 API 키(Long-term API keys) – 장기 API 키는 IAM 사용자와 연결되며 IAM 서비스별 자격 증명을 사용해 생성됩니다. 이 자격 증명은 단일 AWS 서비스에서만 사용하도록 설계되어 자격 증명 범위를 제한해 보안을 강화해요. 장기 API 키가 만료되는 시점을 설정할 수 있어요. 장기 API 키를 생성하려면 IAM 또는 서비스별 콘솔, AWS CLI, AWS API를 사용할 수 있어요.
  • 단기 API 키(Short-term API keys) – 단기 API 키는 AWS Signature Version 4를 사용하는 사전 서명된 URL입니다. 단기 API 키는 API 키를 생성하는 자격 증명의 권한과 만료 시점을 공유하며, 최대 12시간 또는 콘솔 세션의 남은 시간 중 더 짧은 기간 동안 유효합니다. Amazon Bedrock/Claude Platform on AWS 콘솔, Python, 다른 프로그래밍 언어용 패키지를 사용해 단기 API 키를 생성할 수 있어요. 자세한 내용은 Amazon Bedrock 사용자 가이드의 쉽게 Amazon Bedrock API에 접근할 수 있는 Amazon Bedrock API 키 생성 및 Claude Platform on AWS 사용자 가이드의 인증(Authentication) 문서를 참고하세요.

출처: 문서

본문

참고 장기 API 키는 단기 API 키보다 보안 위험이 높아요. 가능하면 단기 API 키나 임시 보안 자격 증명을 사용할 것을 권장해요. 장기 API 키를 사용한다면 정기적인 키 회전 관행을 구현할 것을 권장해요.

API 키를 지원하는 서비스

다음 표는 API 키를 지원하는 AWS 서비스와 각 서비스가 지원하는 API 키 유형을 보여줘요.

# 서비스 장기 API 키 단기 API 키 자동 연결 관리형 정책 서비스별 문서
1 Amazon Bedrock Yes Yes AmazonBedrockLimitedAccess Amazon Bedrock API 키 사용
2 Claude Platform on AWS Yes Yes AnthropicInferenceAccess 인증(Authentication)
3 Amazon CloudWatch Yes N/A CloudWatchAPIKeyAccess 메트릭스용 베어러 토큰 인증 설정
4 Amazon CloudWatch Logs Yes N/A CloudWatchLogsAPIKeyAccess 베어러 토큰 인증 설정

서비스에 대한 장기 API 키를 생성하면 해당 AWS 관리형 정책이 IAM 사용자에게 자동으로 연결되어 해당 서비스의 핵심 작업에 대한 접근 권한을 부여해요. 추가 접근이 필요하면 IAM 사용자의 권한을 수정할 수 있어요. 권한 수정에 대한 정보는 IAM 자격 증명 권한 추가 및 제거 문서를 참고하세요.

특정 서비스의 API 키에 대해 더 알아보려면 위 표의 서비스별 문서 링크를 참고하세요.

장기 API 키의 사전 조건

IAM 콘솔에서 장기 API 키를 생성하기 전에 다음 사전 조건을 충족해야 해요.

  • 장기 API 키와 연결할 IAM 사용자. IAM 사용자 생성 지침은 AWS 계정에 IAM 사용자 생성 문서를 참고하세요.
  • IAM 사용자의 서비스별 자격 증명을 관리하려면 IAM 정책 권한이 있어야 합니다. 다음 예제 정책은 서비스별 자격 증명을 만들고, 나열하고, 업데이트하고, 삭제하고, 재설정할 권한을 부여합니다. 장기 API 키를 생성할 IAM 사용자 이름으로 Resource 요소의 username 값을 교체하세요.
{
    "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 키 생성 (콘솔)

IAM 콘솔에서 특정 서비스에 대한 장기 API 키 생성

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.
  2. IAM 콘솔의 탐색 창에서 사용자(Users) 를 선택합니다.
  3. 장기 API 키를 생성할 IAM 사용자를 선택합니다.
  4. 보안 자격 증명(Security credentials) 탭을 선택합니다.
  5. API 키(API keys) 섹션에서 API 키 생성(Generate API key) 을 선택합니다.
  6. AWS 서비스(AWS service) 드롭다운 목록에서 API 키가 인증할 서비스를 선택합니다.
  7. API 키 만료(API key expiration) 에 대해 다음 중 하나를 수행합니다.
    • 1, 5, 30, 90, 365일 중 하나의 API 키 만료 기간을 선택합니다.
    • 사용자 지정 기간(Custom duration) 을 선택해 사용자 지정 API 키 만료 날짜를 지정합니다.
    • 만료 안 함(Never expires) (권장하지 않음)을 선택합니다.
  8. API 키 생성(Generate API key) 을 선택합니다.
  9. API 키를 복사하거나 다운로드합니다. API 키 값을 볼 수 있는 기회는 이때뿐입니다.

중요 API 키를 안전하게 저장하세요. 대화 상자를 닫으면 API 키를 다시 검색할 수 없어요. API 키를 분실하거나 잊어버리면 검색할 수 없어요. 대신 새 API 키를 생성하고 이전 키를 비활성화하세요.

장기 API 키 생성 (AWS CLI)

AWS CLI로 장기 API 키를 생성하려면 다음 단계를 사용하세요.

  1. create-user 명령으로 서비스에 사용할 IAM 사용자를 만듭니다.
aws iam create-user \
    --user-name APIKeyUser_1
  1. attach-user-policy 명령으로 AWS 관리형 정책을 IAM 사용자에 연결합니다. Amazon Bedrock의 경우:
aws iam attach-user-policy --user-name APIKeyUser_1 \
    --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess

Claude Platform on AWS의 경우:

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

Amazon CloudWatch의 경우:

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

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 명령으로 장기 API 키를 생성합니다. Amazon Bedrock의 경우:
aws iam create-service-specific-credential \
    --user-name APIKeyUser_1 \
    --service-name bedrock.amazonaws.com \
    --credential-age-days 30

Claude Platform on AWS의 경우:

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

Amazon CloudWatch의 경우:

aws iam create-service-specific-credential \
    --user-name APIKeyUser_1 \
    --service-name cloudwatch.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~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-name APIKeyUser_1

참고 bedrock.amazonaws.com을 적절한 서비스 이름으로 교체하세요(예: Amazon CloudWatch Logs는 logs.amazonaws.com, Claude Platform on AWS는 aws-external-anthropic.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" \
    --status Inactive|Active

장기 API 키 생성 (AWS API)

다음 IAM API 작업을 사용해 지원되는 모든 서비스의 장기 API 키를 관리할 수 있어요.

단기 API 키 (일부 서비스)

단기 API 키는 현재 일부 서비스에서 지원됩니다. Amazon Bedrock에서 단기 API 키를 생성하고 사용하는 방법은 Amazon Bedrock 사용자 가이드의 API 키 생성 문서를 참고하세요. Claude Platform on AWS에서 단기 API 키를 생성하고 사용하는 방법은 Claude Platform on AWS 사용자 가이드의 인증(Authentication) 문서를 참고하세요.

서비스별 정보

  • Amazon Bedrock에서 API 키 사용에 대한 자세한 내용은 Amazon Bedrock 사용자 가이드의 Amazon Bedrock API 키 사용을 참고하세요.
  • Claude Platform on AWS에서 API 키 사용에 대한 자세한 내용은 Claude Platform on AWS 사용자 가이드의 인증(Authentication)을 참고하세요.
  • Amazon CloudWatch에서 API 키 사용에 대한 자세한 내용은 Amazon CloudWatch 사용자 가이드의 메트릭스용 베어러 토큰 인증 설정을 참고하세요.
  • Amazon CloudWatch Logs에서 API 키 사용에 대한 자세한 내용은 Amazon CloudWatch Logs 사용자 가이드의 베어러 토큰 인증 설정을 참고하세요.

더 알아보기 (Learn more)