API 키란 무엇인가요?

성층권 구름 속의 상하이 루자쭈이의 조감도

작성자

Gita Jackson

Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

API 키란 무엇인가요?

API 키는 고유 식별자로 애플리케이션 프로그래밍 인터페이스(API)를 통해 다른 소프트웨어 또는 시스템에 액세스하려는 소프트웨어 및 시스템을 인증하는 데 사용됩니다.

API 또는 애플리케이션 프로그래밍 인터페이스는 소프트웨어 애플리케이션이 서로 통신하여 데이터, 특징 및 기능을 교환할 수 있도록 하는 규칙 또는 프로토콜 세트입니다. API는 애플리케이션 소유자가 조직 내 부서에서 애플리케이션 데이터 및 기능을 사용할 수 있는 간단하고 안전한 방법을 제공합니다. 또한 애플리케이션 소유자는 데이터 및 기능을 비즈니스 파트너 또는 제3자와 공유하거나 마케팅할 수 있습니다. API를 사용하면 필요한 정보만 공유할 수 있고 다른 내부 시스템 세부 정보는 숨길 수 있으므로 시스템 보안에 도움이 됩니다.

API는 민감한 데이터에 대한 액세스를 제공할 수 있으므로, API가 요청하는 애플리케이션에 해당 권한이 있는지 검증할 수 있어야 합니다. API 키를 사용하면 애플리케이션 개발자가 API의 백엔드를 호출하는 애플리케이션을 인증하여 해당 애플리케이션에 권한이 있는지 확인할 수 있습니다.

API 키는 기업의 API 및 API가 처리하는 데이터의 보안을 보장하는 한 방법이 될 수 있지만, 확실한 API 보안 솔루션은 아닙니다. 특히 API 키는 인증 토큰이나 OAuth(공개 인증) 프로토콜만큼 안전하지 않습니다. 이러한 조치는 특정 인간 사용자를 인증하는 데 더 적합하며, 조직이 특정 API의 기능에 대한 액세스를 보다 세밀하게 제어할 수 있고 만료하도록 설정할 수 있습니다.

OAuth는 API 키와 함께 사용하거나 단독으로 사용할 수 있습니다. 때로는 기업에서 일부 사용자에게는 API 키를 사용하고, 다른 사용자에게는 OAuth를 사용할 수도 있습니다. API에 대한 호출을 인증하는 다른 방법으로는 JSON Web Token(JWT)이 있지만 흔히 사용되지는 않습니다.

API 키는 조직이 API 호출을 모니터링하고 API 소비를 관리하여 보안을 강화하고 이러한 프로그램에 적절한 대역폭을 확보하는 데 도움이 되기 때문에 여전히 API 보안에 유용합니다.

고속도로 조감도

클라우드에 집중 


AI 시대의 멀티클라우드 설정을 최적화하는 방법에 대한 전문가의 안내가 담긴 주간 Think 뉴스레터를 받아보세요.

API 키는 어떻게 작동하나요?

API 키는 무작위로 생성된 고유한 영문과 숫자 문자열로, API가 API를 호출하는 애플리케이션을 인증하는 데 사용합니다. API 제공자가 발행하는 각 키는 소프트웨어 모듈과 같은 특정 API 클라이언트와 연결됩니다. API 키를 사용하면 API 서버가 API에 호출을 보내는 소프트웨어 및 애플리케이션을 식별할 수 있습니다. 생성된 키는 해당 애플리케이션 또는 프로젝트에서 연결된 API로 이루어진 모든 요청에 사용됩니다(키가 갱신되나 삭제될 때까지).

프로세스는 다음과 같이 진행됩니다.

애플리케이션이 다른 애플리케이션의 기능이나 데이터를 요청하기 위해 API를 호출하면 API 서버는 API 키를 사용하여 애플리케이션의 신뢰성을 확인합니다. 웹 애플리케이션 및 REST API의 경우 키를 헤더, 쿼리 문자열 또는 쿠키로 보낼 수 있습니다. API 키가 승인된 키와 일치하면 서버는 요청된 데이터를 반환합니다. 그렇지 않으면 호출을 거부하고 거부 메시지를 보냅니다.

개발자는 필요한 경우 더 많은 검증 및 제한을 추가할 수 있습니다.

예를 들어 개발자는 특정 종류의 데이터 또는 기능에 대한 액세스만 허용하는 애플리케이션 또는 프로젝트에 대한 액세스 권한을 구성할 수 있습니다. 또한 개발자는 API 키를 사용할 수 있는 웹사이트, IP 주소, 애플리케이션(또는 모바일 앱) 및 소프트웨어 개발 키트(SDK)를 지정하는 애플리케이션 제한을 설정할 수 있습니다.

WebMethods Hybrid Integration

AI 시대를 위한 통합 재구상

IBM Web Methods Hybrid Integration은 기업이 어떻게 클라우드와 온프레미스 애플리케이션을 원활하게 연결하여 민첩하고 확장가능한 디지털 혁신을 실현할 수 있는지 보여줍니다. 

API 키 및 API 보안

API 키는 API 보안의 일부이지만 조직이 API에 대한 호출을 인증하고 검증하는 유일한 방법이어서는 안 됩니다. 실제로 API 키는 유용하긴 하지만, 특별히 안전한 호출 인증 방법은 아닙니다. API 키는 특정 애플리케이션이나 프로젝트를 식별할 수 있지만, 호출을 하는 애플리케이션을 사용하는 개별 사용자를 확인할 수는 없습니다. 따라서 API 키는 API 액세스 제어를 시행하기에 적합하지 않습니다. API 키는 프로젝트 식별 및 프로젝트 승인만 제공하며 사용자 식별이나 사용자 인증은 제공하지 않습니다.

API 키는 비밀번호와 비슷하다고 생각하면 됩니다. 이는 보안의 한 계층이지만 보안 침해 의 잠재적인 실패 지점이기도 합니다. 비밀번호와 마찬가지로 API 키에 접근할 수 있는 사람은 누구나 이를 사용할 수 있습니다. 키를 사용하는 사용자를 확인할 수 있는 방법은 없습니다. 그리고 키는 특별히 다시 생성되지 않는 한 거의 만료되지 않습니다.

웹 애플리케이션에 사용되는 API 키는 암호화되지 않은 자격 증명을 전송하기 때문에 일반 하이퍼텍스트 전송 프로토콜(HTTP)보다 안전한 것으로 간주되지 않습니다. 안전한 것으로 간주되려면 웹 애플리케이션에 하이퍼텍스트 전송 보안 프로토콜(HTTPS)이라고도 하는 보안 소켓 계층(SSL) 인증이 있어야 합니다.

API 호출에 대한 다른 검증 방법은 다음과 같습니다.

인증 토큰

API 토큰이라고도 하는 인증 토큰은 요청을 하는 애플리케이션뿐만 아니라 특정 사용자를 식별할 수 있기 때문에 API 보안에 추가적인 계층을 더해 줍니다. 이러한 토큰은 데이터를 요청하는 API에 대한 사용자를 식별하는 코드 스니펫입니다. 단일 영숫자 문자열이 아닌 여러 줄의 코드이기 때문에 요청을 하는 사람이나 프로젝트에 대한 자세한 정보를 API에 제공합니다. API 토큰은 제한된 범위로 생성될 수도 있으며 제한된 기간 동안만 특정 정보에 대한 액세스 권한을 부여할 수 있습니다. 

OAuth 프로토콜

OAuth(공개 인증) 프로토콜은 OpenID Connect(OIDC)와 함께 사용할 때 API에 대한 호출을 승인하고 인증하는 업계 표준 방식의 일부입니다. OAuth 프로토콜은 사용자에게 요청된 정보에 대한 접근 권한을 부여하며, 더 광범위한 사용자 인증 프로세스에 사용됩니다.

OAuth는 액세스 토큰이라는 일종의 API 토큰을 사용합니다. 액세스 토큰은 사용자가 액세스를 요청하는 API를 통해 사용자에게 발급됩니다. 이러한 토큰은 API와 사용자 간의 일련의 통신을 통해 자격 증명 또는 기타 보안 정보를 API와 공유할 필요 없이 사용자가 요청한 특정 정보에 대한 액세스 권한을 부여합니다.

OpenID Connect는 OAuth를 기반으로 구축된 인증 프로토콜로, OAuth가 액세스 토큰뿐 아니라 ID 토큰도 발급하여 사용자를 인증할 수 있도록 해줍니다. 이러한 ID 토큰에는 프로젝트뿐만 아니라 요청을 하는 특정 계정에 대한 정보도 포함되어 있습니다. OpenID Connect는 API에 대한 액세스 권한을 부여하기 전에 액세스 토큰과 ID 토큰을 모두 요구하여 OAuth의 인증 흐름을 약간 조정합니다.

API 키는 다른 형태의 API 호출 인증과 함께 사용하거나 별도로 사용할 수 있습니다. 기업 내에서 API는 액세스를 요청하는 사용자에 따라 다양한 종류의 인증 및 권한 부여를 사용할 수 있습니다. 개발 부서와 같은 조직의 부서는 API에 대한 무제한 액세스가 필요할 수 있는 반면, 다른 부서는 보다 엄격하게 제어된 액세스가 필요할 수 있습니다.

API 키에는 어떤 유형이 있나요?

API 키에는 두 가지 주요 유형이 있으며 둘 다 API 호출을 인증하는 역할을 합니다. 때로는 함께 사용되기도 합니다.

공개 키

이러한 키는 민감하지 않은 데이터 또는 사용자 인증이 필요하지 않은 기능 대한 액세스를 제공하는 키 입니다. 개발자와 API로 작업하는 다른 이해관계자 간에 공개적으로 공유할 수 있습니다.

개인키

비공개 키는 중요한 데이터에 액세스하는 데 사용되며 키 사용자에게 쓰기 액세스 권한을 부여할 수도 있습니다. 비공개 API 키를 공개 키와 함께 사용하여 보안 계층을 추가할 수 있습니다.

API 키가 API 호출을 인증하는 유일한 방법은 아니지만 공개키와 개인키를 쌍으로 사용하면 추가 보안 계층을 제공할 수 있습니다. API를 호출할 때 개인키는 API의 특정 기능에 액세스해야 하는 특정 클라이언트를 위한 일종의 디지털 서명으로 사용될 수 있습니다. 그런 다음 공개키는 서명을 확인하고 API 호출이 합법적인지 재확인할 수 있습니다.

API 키의 다른 사용 사례에는 어떤 것이 있나요? 

API 키는 단순한 인증을 넘어 조직 내에서 유용한 기능을 제공합니다. 이러한 키는 API 액세스를 결정하는 데 도움이 되기 때문에 애플리케이션을 계속 유지하고 실행하며 사용 방식에 대한 유용한 데이터를 제공하는 데에도 사용할 수 있습니다.

익명 트래픽 차단

API 키는 액세스 관리의 중요한 측면으로, 조직이 API에 액세스할 수 있는 사용자를 제어할 수 있게 해줍니다. API에 대한 익명 트래픽은 악의적인 활동의 지표일 수 있습니다. 조직은 API 키를 사용하여 익명 API 호출과 같은 API에 대한 무단 액세스를 차단할 수 있으며, 이로 인해 잠재적 사이버 공격의 범위가 제한될 수 있습니다. 이러한 방식으로 API 서비스를 제한하면 API에 요청이 폭주하는 것을 방지하여 중요한 애플리케이션의 다운타임 가능성을 최소화할 수 있습니다.

API 호출 횟수 제어

API 키를 사용하여 API의 트래픽을 제한할 수 있으며, 이를 속도 제한이라고 합니다. 속도 제한을 통해 조직은 특정 기간 동안 클라이언트가 API에 요청하는 횟수를 제어할 수 있습니다. 트래픽이 정의된 임계값에 도달하면 API 액세스가 거부됩니다.

정의된 매개 변수 내에서만 애플리케이션 트래픽을 허용함으로써 조직은 API 리소스 및 대역폭 사용을 최적화할 수 있습니다. 이러한 설정은 조직의 API 문서에서 확인할 수 있습니다.

API 사용 동향 모니터링

API 키는 고유 식별자이므로 조직은 API 키를 사용하여 API에 대한 트래픽 및 호출을 추적할 수 있습니다. API 키를 사용하여 조직은 API에 대한 각 호출을 특정 애플리케이션으로 다시 추적할 수 있습니다. 또한 통화 수, 통화 유형, 사용자의 IP 주소 범위, iOS 또는 Android를 사용하는지 여부도 확인할 수 있습니다.

사용 패턴을 분석하면 조직은 기업의 어느 부분이 특정 엔드포인트에 가장 자주 액세스하는지 더 잘 이해할 수 있습니다. 트래픽 모니터링 및 로그 필터링은 API 보안에도 유용합니다. 사이버 공격이 발생한 경우 특정 API 키에 대한 API 서버의 활동을 확인하면 공격에 대한 인사이트와 어떤 키가 유출되었을 수 있는지 파악할 수 있습니다.

API 키를 보호하는 방법

API 키는 API, 데이터, 네트워크를 보호하는 데 도움이 될 수 있지만, 안전한 방식으로 사용되는 경우에만 가능합니다. 많은 조직에서 API 키의 보안을 유지하고 API가 사이버 공격의 벡터가 되는 것을 방지하기 위해 이러한 방법을 사용합니다.

여러 인증 방법 결합

API 키는 API 호출을 인증하는 유일한 방법으로는 충분히 안전하지 않습니다. 이는 개별 사용자를 검증할 수 없으며 쉽게 손상될 수 있습니다. API 키는 OAuth, JSON 웹 토큰(JWT) 또는 인증 토큰과 같은 다른 인증 방법과 함께 사용할 때 조직의 API 에코시스템에 추가적인 보안 장벽을 추가할 수 있습니다.

조직에서 둘 이상의 인증 방법을 사용하는 것은 드문 일이 아닙니다. 예를 들어 개발자는 개발 중에 API에 대한 무제한 액세스를 제공하기 위해 내부적으로 API 키를 사용할 수 있지만, 외부 클라이언트에는 OAuth를 사용할 수 있습니다. OAuth는 만료되는 토큰을 제공하고 특정 데이터에만 액세스하도록 설정할 수 있기 때문입니다.

보안 키 스토리지

키는 생성될 때 일반 텍스트로 생성되는 경우가 많습니다. 암호와 마찬가지로 해당 키의 보안은 키가 저장되는 방법과 위치에 따라 달라집니다. 보안 전문가는 이러한 키를 도난에 취약하지 않도록 데이터베이스에 해시된 값으로 저장할 것을 권장합니다.

소스 코드나 리포지토리에 API 키를 임베딩하면 애플리케이션이 게시될 때 키가 공개적으로 노출될 수 있으므로 악의적인 공격자에게도 취약해집니다. 가능하면 안전하고 암호화된 데이터 볼트를 사용하여 생성된 API 키를 저장하세요.

키 순환 또는 교체

개발자가 만료일을 설정하지 않는 한 API 키는 만료되지 않으며, 키 생성기가 액세스를 취소하거나 키를 다시 생성하지 않는 한 만료되지 않습니다. 권한이 없는 사용자가 API 키를 획득하면 조직 내 누구도 모르게 민감한 데이터에 액세스할 수 있습니다. 이들은 올바른 키를 사용하여 데이터를 요청하고 수집하는 것이기 때문입니다.

90일에서 180일마다 새 API 키를 교체하고 생성하면 API를 안전하게 유지하는 데 도움이 될 수 있습니다. 더 이상 사용하지 않는 API 키는 삭제하는 것도 좋은 방법입니다. 추가적인 보호 계층을 위해 조직은 액세스 권한을 적용하여 클라이언트와 공유되는 API 키의 액세스 범위를 제한할 수 있습니다. 이러한 권한을 통해 사용자는 필요한 엔드포인트에만 액세스할 수 있으며 다른 곳은 액세스할 수 없습니다. 일부 조직에서는 정기적으로 키를 교체하기 위해 새 키 생성을 자동화하기도 합니다.

관련 솔루션
IBM webMethods Hybrid Integration

AI 기반 자동화를 통해 API, 앱, 이벤트, 파일, B2B/EDI 전반에서 민첩성을 확장합니다.

IBM webMethods Hybrid Integration 살펴보기
통합 소프트웨어 및 솔루션

애플리케이션과 시스템을 연결하여 중요 데이터에 빠르고 안전하게 액세스할 수 있는 IBM 통합 솔루션을 활용해 비즈니스 잠재력을 실현하세요.

클라우드 통합 솔루션 살펴보기
클라우드 컨설팅 서비스 

IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.

클라우드 서비스 살펴보기
다음 단계 안내

 

IBM webMethods Hybrid Integration은 위치, 환경, 팀 전반에서 애플리케이션, API, B2B, 파일 등의 통합 패턴을 위한 통합 인터페이스와 컨트롤 플레인을 제공하며 민첩성을 확장할 수 있습니다.

 

 

IBM webMethods Hybrid Integration 살펴보기 실제 사용 사례 보기