API 키에 대한 이해

API(Application Programming Interface) 키는 호출 애플리케이션 또는 사용자를 식별하도록 API에 전달되는 고유 코드입니다. API 키를 사용하여 API의 사용을 추적 및 제어할 수 있습니다. 예를 들어, 악의적 사용 또는 남용을 방지하는 데 이 API 키를 사용할 수 있습니다. API 키는 종종 인증을 위한 시크릿 토큰 및 고유 ID 모두의 역할을 하며, 이와 연관된 ID에 대한 액세스 세트가 지정됩니다.

API 키를 보려면 IBM Cloud 콘솔에서 관리 > 액세스(IAM) > API 키로 이동하세요.

사용자에 대한 IBM Cloud API 키

IBM Cloud® API 키는 사용자의 ID와 연관됩니다. 사용자가 생성하는 각 API 키는 해당 사용자가 회원으로 가입한 모든 계정에서 동일한 액세스 권한을 갖습니다. API 키는 모든 사용자 액세스 권한을 상속하므로 사용자가 권한을 가진 모든 계정의 리소스에 액세스할 수 있는 기능을 제공할 수 있습니다. 따라서 사용자 API 키는 사용자 이름 및 비밀번호와 유사하게 취급해야 하며 절대 공유해서는 안 됩니다.

기능 ID 사용

사용자의 IBM Cloud API 키를 작성하여 기능 ID와 연관시킬 수 있습니다. 기능 ID는 프로그램, 애플리케이션 또는 서비스를 표시하기 위해 작성된 사용자 ID입니다. 기능 ID가 계정에 초대될 수 있으며 특정 리소스 또는 애플리케이션과의 상호작용과 같은 특정 목적으로만 액세스 지정될 수 있습니다.

서비스가 다른 서비스 또는 애플리케이션과 상호 작용하기 위해 사용자 API 키가 필요한 경우 기능 ID 사용자 API 키를 사용하세요. 기능 ID와 연결된 API 키를 사용하면 해당 서비스에 필요한 액세스 권한만 제공할 수 있습니다. 실제 사용자 ID API 키를 서비스와 공유하면 서비스에서 사용자가 여러 계정에서 액세스할 수 있는 모든 리소스에 액세스할 수 있으므로 적극 권장하지 않습니다.

API 키가 연결된 사용자와 IAM 서비스의 관리자만 API 키를 삭제할 수 있습니다. 명령줄 인터페이스(CLI)에서 IBM Cloud API 키를 사용하거나 자동화의 일부로 사용자 아이디로 로그인할 수 있습니다. 또한 IBM Cloud API 키를 사용하여 클래식 인프라 API에 액세스할 수 있습니다.

사용자 ID와 연관된 API 키 사용에 대한 자세한 정보는 사용자 API 키 관리를 참조하십시오.

다른 유형의 API 키

IBM Cloud API 키 외에도 다른 유형의 API 키를 사용할 수 있습니다:

서비스 ID API 키
서비스 ID를 사용하면 IBM Cloud의 내부나 외부에 있는 애플리케이션을 IBM Cloud 서비스에 연결할 수 있습니다. 서비스 ID API 키는 특정 서비스 ID에 지정된 모든 액세스 권한을 상속합니다. 자세한 정보는 서비스 ID API 키 관리를 참조하십시오.
클래식 인프라 API 키
클래식 인프라 API 키는 클래식 인프라 서비스를 위한 API를 호출하는 데 사용됩니다. 한 번에 하나의 클래식 인프라 API 키만 작성할 수 있습니다. 자세한 정보는 클래식 인프라 API 키 관리를 참조하십시오.
서비스 특정 API 키
IBM Cloud 의 일부 서비스는 서비스 작업 시 API 키를 제공할 수 있습니다. 이는 서비스 ID와 연결된 자동 생성된 API 키입니다. 예를 들어 리소스 목록 페이지에서 Watson 서비스의 제품 세부 정보를 보고 있는 경우 서비스 자격증명 페이지에서 해당 서비스에 특정한 API 키와 비밀번호가 포함된 자격 증명을 만들 수 있습니다.

또한 IBM Cloud API 키는 클래식 인프라 API에 액세스하는 데 사용할 수 있습니다.

API 키에 대한 보안 모범 사례 이해

API 키에 대한 다음 모범 사례를 구현하면 워크로드의 보안과 안전성을 높이는 데 도움이 될 수 있습니다:

  • 노출 위험을 최소화하려면 코드에 키를 포함하지 마세요.
  • API 키를 정기적으로 교체하여 취약한 기간을 제한하세요. Secrets Manager 에서 이를 자동화하는 데 도움을 받을 수 있습니다. 자세한 내용은 비밀 번호 바꾸기를 참조하세요.
  • 권한을 할당할 때 최소 권한 원칙을 적용하세요.
  • 보안 연락처를 업데이트하여 적시에 알림을 받을 수 있도록 하세요.
  • 의심스러운 API 키 사용이 있는지 Activity Tracker Event Routing 모니터링하세요.
  • 적절한 경우 API 키에 만료일을 설정하세요.
  • 유출된 API 키가 유출된 경우 자동으로 비활성화하거나 삭제하도록 유출된 작업 설정을 구성하세요.

API 키 작업

사용자 ID와 연결된 IBM Cloud API 키 또는 계정의 다른 사용자를 위해 관리할 수 있는 액세스 권한이 있는 키를 관리하려면 IBM Cloud 콘솔에서 관리 > 액세스(IAM) > API 키로 이동합니다.

IBM Cloud API 키 페이지에서 IBM Cloud API 키를 직접 생성, 편집 또는 삭제할 수 있습니다. 사용자 계층 구조에 있는 사용자의 모든 클래식 인프라 API 키를 관리할 수도 있습니다. 계정 소유자이거나 계정에서 다른 사용자의 API 키를 관리하는 데 필요한 액세스 권한이 있는 사용자라면 보기 필터를 사용하여 해당 API 키를 나열하고 관리할 수 있습니다.

API 키 만료

API 키가 생성되거나 업데이트될 때 만료일을 설정할 수 있습니다. 만료일을 지정한 경우 해당 날짜 이후에는 API 키가 유효하지 않습니다. 만료된 API 키는 만료 후 90일이 지나면 자동으로 삭제됩니다. API 키가 만료되기 며칠 전에 API 키를 소유한 사용자(사용자 수준 키의 경우) 또는 계정 소유자(서비스 ID API 키의 경우)에게 IBM Cloud 알림 서비스를 통해 알림이 전송됩니다.

유출된 API 키 보호

API 키는 IBM Cloud 리소스 및 서비스에 액세스할 수 있는 강력한 자격 증명입니다. 이러한 키가 공개 리포지토리, 로그 또는 기타 위치에 실수로 노출되면 심각한 보안 위험을 초래할 수 있습니다. 악의적인 공격자는 공개 리포지토리에서 유출된 인증 정보를 적극적으로 스캔하여 무단 액세스, 암호화폐 채굴 작업 또는 기타 악의적인 활동에 신속하게 악용할 수 있으며, 노출 후 몇 분 이내에 이러한 악용이 이루어지는 경우가 많습니다. 키와 연결된 사용자 또는 서비스 ID에 부여된 액세스 권한에 따라 악의적인 공격자가 이를 악용할 수 있습니다:

  • 데이터에 액세스하거나 삭제합니다.
  • 비트코인 채굴에 사용할 수 있는 리소스를 포함하여 계정에 리소스를 프로비저닝합니다.
  • 계정의 서비스에서 다른 작업을 수행합니다.
  • 계정 내에 추가 ID 또는 API 키를 생성하여 유출된 키를 교체한 후에도 지속적인 액세스 권한을 부여할 수 있습니다.

IBM Cloud 는 GitHub 및 GitLab 같은 플랫폼의 비밀 스캔 기능을 활용하여 노출된 API 키를 식별하는 데 도움을 줍니다. 키가 유출된 것으로 확인되면 회원님 또는 보안팀은 해당 키에 대해 구성한 처리에 따라 신속하게 적절한 조치를 취할 수 있습니다. 구성에 따라 IBM 에서 다음 작업을 수행할 수 있습니다:

유출된 키 사용 안함
API 키는 IBM 에서 즉시 비활성화되어 다음 단계를 조사하고 결정하는 동안 무단 사용을 방지합니다. 이 접근 방식은 평가가 완료되었고 노출된 키로 인한 위험이 낮은 상황을 제외하고 대부분의 키에 권장됩니다. 키가 비활성화되면 클라우드 서비스에 대한 애플리케이션의 API 호출이 실패하여 서비스 중단이 발생할 수 있습니다.
유출된 키 삭제
API 키는 감지 즉시 IBM 에서 영구적으로 삭제됩니다. 이렇게 하면 가장 강력한 보호 기능을 제공하지만 새 키를 만들어야 합니다. 키가 삭제되면 애플리케이션의 클라우드 서비스에 대한 API 호출이 실패하여 서비스 중단이 발생할 수 있습니다.
아무 조치도 수행하지 않음
자동 조치가 취해지지 않습니다. 노출에 대한 알림을 계속 받을 수 있지만 수동으로 문제를 해결해야 합니다.

결정을 내리기 전에 키 노출로 인한 보안 결과와 애플리케이션 중단으로 인한 결과를 비교 검토하는 것이 중요합니다. IBM 에서는 평가가 완료되었고 제한된 액세스로 인해 키 노출 시 위험이 낮은 상황을 제외하고 대부분의 키에 대해 '사용 안 함' 옵션을 사용할 것을 권장합니다. 조직에서 프로덕션 요구 사항으로 인해 특정 API 키에 대해 '아무것도 하지 않음' 설정이 필요한 경우 IBM 에서 정기적으로 보안 상태를 분석하고, 빈번한 키 교체와 같은 보완 제어를 구현하며, 환경이 허용하는 경우 자동 보호를 활성화하는 계획을 세울 것을 권장합니다.

자세한 내용은 유출된 사용자 API 키 검토하기 또는 유출된 서비스 ID API 키 검토하기를 참조하세요.

API 키 관리를 위한 필수 액세스 권한

기본적으로 고유 API 키를 작성하기 위한 액세스 권한은 항상 있으며 필요한 경우 업데이트하고 삭제할 수 있습니다. 또한 자신의 클래식 인프라스트럭처 API 키와 클래식 인프라스트럭처 사용자 계층 구조에서 조상인 모든 사용자의 클래식 인프라스트럭처 API 키를 관리할 수도 있습니다.

API 키 생성 제한 IAM 계정 설정을 사용 설정하면 명시적인 액세스 권한이 할당되지 않는 한 계정 소유자를 포함하여 계정의 모든 사람이 API 키를 만들 수 없도록 차단됩니다. 자세한 정보는 사용자가 API 키를 작성하지 않도록 제한을 참조하십시오.

계정 소유자이거나 필수 액세스 권한이 있는 사용자인 경우 API 키 페이지에서 보기 필터를 사용하여 다른 사용자의 API 키 또는 서비스 ID API 키에 액세스할 수 있습니다. 지정된 액세스 권한에 따라 API 키를 편집하거나 삭제할 수 있습니다. 보고 관리할 수 있는 API 키 유형에 대한 필터 옵션만 표시됩니다.

표 1. API 키 페이지에서 API 키 관리를 위해 필요한 액세스 권한
필터 옵션 표시된 API 키 필수 액세스 권한 허용된 조치
내 IBM Cloud API 키 IBM Cloud API 키 액세스 권한이 필요하지 않음 보기, 작성, 편집, 삭제
모든 IBM Cloud 사용자 API 키 계정의 모든 사용자가 작성한 모든 IBM Cloud API 키 IAM ID 서비스의 관리자 역할 보기, 편집 및 삭제
모든 서비스 ID API 키 계정의 서비스 ID에 대해 작성된 모든 API 키 IAM ID 서비스의 관리자 역할 보기, 편집 및 삭제
클래식 인프라 API 키 사용자 클래식 인프라 API 키 및 사용자 계층 구조에서 최상위인 사용자의 클래식 인프라 API 키 사용자 계층 구조에서 최상위 사용자 외에는 액세스 권한이 필요하지 않음 세부사항 보기 및 삭제