Watson 서비스 인증
IBM Watson®의 IBM Cloud® 서비스에서는 인증을 위해 IBM Cloud® Identity and Access Management(IAM)을 사용합니다. IBM Cloud Pak® for Data에 설치된 서비스는 추가 메소드를 지원합니다. IAM 액세스 정책을 사용하면 단일 키에서 둘 이상의 리소스에 대한 액세스를 지정할 수 있습니다. 또한 사용자, 서비스 ID 및 서비스 인스턴스가 여러 API 키를 보유할 수 있습니다.
권한 정보 전달
API를 통해 서비스를 인증하려면 API에 인증 정보를 전달하십시오. 인증 방법은 보안 요구 및 서비스가 IBM Cloud®에 있거나 IBM Cloud Pak® for Data에 설치되어 있는지 여부에 따라 다릅니다.
IBM Cloud에 대한 인증
IBM Cloud
IBM Cloud® Identity and Access Management(IAM)를 사용하여 공용 IBM Watson® 서비스에 대한 인증된 요청을 수행합니다. 권한 헤더 또는 API 키에서 운반자 토큰을 전달할 수 있습니다.
-
IAM 토큰으로 인증합니다.
IAM 토큰은 최대 60분 동안 유효한 임시 보안 권한 정보입니다. 토큰이 만료되면 새 토큰을 생성합니다. 토큰은 리소스에 임시로 액세스하는 데 유용할 수 있습니다. 자세한 정보는 API 키를 사용하여 IBM Cloud IAM 토큰 생성을 참조하십시오.
다음
curl명령은 IAM 액세스 토큰을 생성합니다.{apikey}를 API 키 값으로 대체합니다.curl -X POST \ -header "Content-Type: application/x-www-form-urlencoded" \ -data "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey={apikey}" \ "https://iam.cloud.ibm.com/identity/token"응답에는
access_token특성이 포함됩니다. 서비스에 대한 요청을 인증하려면{access_token}을 응답의 토큰으로 바꾸십시오.{url}를 서비스 인스턴스의 URL값으로 바꾸십시오. 서비스 인스턴스에 대한 관리 페이지의 신임 정보 상자에서 신임 정보 표시 를 클릭하여 찾을 수 있습니다.curl -header "Authorization: Bearer {access_token}" \ "{url}/v1/{method}" -
IBM Cloud API 키, 서비스 ID API 키 또는 서비스 특정 API 키로 인증합니다.
{url}를 서비스 인스턴스의 URL값으로 바꾸십시오. 서비스 인스턴스에 대한 관리 페이지의 신임 정보 상자에서 신임 정보 표시 를 클릭하여 찾을 수 있습니다.API 키는 사용하기 쉽고 자동으로 만료되지 않습니다. 유효한 키가 있는 모든 사용자가 리소스에 액세스할 수 있습니다. 다른 사용자, 다른 애플리케이션에 대해 또는 키 순환 시나리오를 지원하기 위해 별도의 API 키를 작성할 수 있습니다. 다른 API 키 또는 사용자에게 영향을 주지 않고 콘솔에서 API 키를 취소할 수 있습니다.
다음 예제
curl명령은 API키f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI에 대해 인증합니다.curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \ "{url}/v1/{method}"
테스트 및 개발을 위해 직접 API 키를 전달할 수 있습니다. 그러나 프로덕션에 사용하려면 Watson SDK를 사용하지 않는 한 IAM 토큰을 사용하십시오. API 키를 전달할 때 서비스가 API 키 세부사항을 검색하므로 성능에 영향을 줄 수 있습니다. 자세한 정보는 IBM Cloud 서비스 API 호출을 참조하십시오.
Watson SDK는 두 방법을 모두 지원합니다. 자세한 정보는 서비스 및 SDK에 대한 API 참조 의 인증 섹션을 참조하십시오.
일부 서비스 계획은 데이터에 대한 액세스를 지원하는 IBM® Key Protect for IBM Cloud®을(를) 지원합니다. 자세한 정보는 Watson 서비스에서 민감한 정보 보호를 참조하십시오.
IBM Cloud Pak for Data에 대한 인증
IBM Cloud Pak for Data
각 요청에 액세스 토큰을 전달하여 서비스에 대해 인증합니다. 인증할 Authorization 헤더의 베어러 토큰을 전달합니다. API 키를 사용하거나 사용자 이름을 사용하여 토큰을 생성하는 몇 가지 방법이 있습니다. 자세한 정보는 권한 부여 토큰 또는 API키 생성을
참조하십시오.
IBM Cloud Pak for Data에 설치된 서비스의 Watson SDK에서 지원하는 인증 메소드에 대한 자세한 정보는 서비스 및 SDK에 대한 API 참조 의 인증 섹션을 참조하십시오.
API 키 정보
세 가지 유형의 API 키가 Watson 서비스에서 지원됩니다.
-
서비스 특정 API 키
서비스 특정 키는 서비스를 사용하여 생성됩니다. 이 유형의 API 키는 특정 서비스 인스턴스에만 액세스할 수 있습니다. 서비스 특정 키를 보려면 자원 목록에서 Watson 서비스의 이름을 클릭하십시오.
-
IBM Cloud API 키
IBM Cloud API 키는 사용자의 ID와 연관됩니다. 키와 연관된 사용자만 키를 삭제할 수 있습니다. 동일한 IBM Cloud API 키를 사용하여 여러 서비스에 액세스할 수 있습니다. IBM Cloud API 키 관련 작업에 대한 자세한 정보는 사용자 API 키 관리를 참조하십시오.
-
서비스 ID API 키
서비스 ID를 사용하면 IBM Cloud 내부 및 외부 모두에서 호스팅되는 애플리케이션에서 IBM Cloud 애플리케이션에 액세스할 수 있습니다. 서비스 ID와 연관된 API 키에는 해당 서비스 ID와 연관된 액세스가 부여됩니다. 서비스 ID 키에 대한 자세한 정보는 서비스 ID API 키 관리를 참조하십시오.
API 키 우수 사례
계정 및 애플리케이션을 손상시키는 인증 정보를 공개적으로 노출할 가능성을 줄이려면 API 키를 안전하게 보관하십시오. API 키를 안전하게 보관하려면 다음 가이드라인을 따르십시오.
-
필요한 액세스 레벨에 적합한 가장 제한적인 서비스 역할을 지정하십시오.
예를 들어, 애플리케이션에서
ReaderAPI 메소드로의 호출에는GET서비스 역할을 지정하십시오. 이 역할에는 읽기 전용 액세스 권한만 있으므로 리소스를 작성하거나 편집할 수 없습니다. -
API 키를 코드에 직접 임베드하지 마십시오.
코드에 임베드된 API 키는 사용자에게 노출될 수 있습니다. 코드에 API 키를 임베드하는 대신 환경 변수 또는 소스 코드 제어 시스템 외부의 파일에 저장하십시오.
-
애플리케이션의 소스 코드 제어 시스템 내 파일에 API 키를 저장하지 마십시오.
이러한 파일에 API 키를 저장하는 경우에는 해당 파일을 애플리케이션의 소스 코드에 포함시키지 마십시오. 이러한 관행은 GitHub와 같은 공용 소스 코드 관리 시스템을 사용하는 경우에 중요합니다.
-
API 키를 다시 생성하거나 순환하십시오.
주기적으로 새 키를 작성하거나 키를 순환하십시오. 더 이상 사용하지 않는 키를 삭제하는 것도 잊지 마십시오.
다음 단계
- IBM Cloud IAM의 개요 읽기
- IBM Cloud에서 액세스 관리 학습
- 정책, 사용자 역할 및 권한 살펴보기
- API 키 및 토큰 전달 방법 알아보기