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 키를 안전하게 보관하려면 다음 가이드라인을 따르십시오.

  • 필요한 액세스 레벨에 적합한 가장 제한적인 서비스 역할을 지정하십시오.

    예를 들어, 애플리케이션에서 Reader API 메소드로의 호출에는 GET 서비스 역할을 지정하십시오. 이 역할에는 읽기 전용 액세스 권한만 있으므로 리소스를 작성하거나 편집할 수 없습니다.

  • API 키를 코드에 직접 임베드하지 마십시오.

    코드에 임베드된 API 키는 사용자에게 노출될 수 있습니다. 코드에 API 키를 임베드하는 대신 환경 변수 또는 소스 코드 제어 시스템 외부의 파일에 저장하십시오.

  • 애플리케이션의 소스 코드 제어 시스템 내 파일에 API 키를 저장하지 마십시오.

    이러한 파일에 API 키를 저장하는 경우에는 해당 파일을 애플리케이션의 소스 코드에 포함시키지 마십시오. 이러한 관행은 GitHub와 같은 공용 소스 코드 관리 시스템을 사용하는 경우에 중요합니다.

  • API 키를 다시 생성하거나 순환하십시오.

    주기적으로 새 키를 작성하거나 키를 순환하십시오. 더 이상 사용하지 않는 키를 삭제하는 것도 잊지 마십시오.

다음 단계