10.4. 서비스 계정의 인증 정보를 외부에서 사용

API 인증이 필요한 외부 애플리케이션에 서비스 계정의 토큰을 배포할 수 있습니다.

이미지를 가져오려면 인증된 사용자에게 요청한 이미지 스트림/레이어에 대한 가져오기 권한이 있어야 합니다. 이미지를 밀어 넣으려면 인증된 사용자에게 요청한 이미지 스트림/레이어에 대한 업데이트 권한이 있어야 합니다.

기본적으로 프로젝트의 모든 서비스 계정에는 해당 프로젝트의 이미지를 가져올 수 있는 권한이 있고, builder 서비스 계정에는 해당 프로젝트에 이미지를 밀어 넣을 권한이 있습니다.

절차

  1. 서비스 계정의 API 토큰을 확인합니다.

    $ oc describe secret <secret_name>

    예를 들면 다음과 같습니다.

    $ oc describe secret robot-token-uzkbh -n top-secret

    출력 예

    Name:		robot-token-uzkbh
    Labels:		<none>
    Annotations:	kubernetes.io/service-account.name=robot,kubernetes.io/service-account.uid=49f19e2e-16c6-11e5-afdc-3c970e4b7ffe
    
    Type:	kubernetes.io/service-account-token
    
    Data
    
    token:	eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

  2. 가져온 토큰을 사용하여 로그인합니다.

    $ oc login --token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

    출력 예

    Logged into "https://server:8443" as "system:serviceaccount:top-secret:robot" using the token provided.
    
    You don't have any projects. You can try to create a new project, by running
    
        $ oc new-project <projectname>

  3. 서비스 계정으로 로그인했는지 확인합니다.

    $ oc whoami

    출력 예

    system:serviceaccount:top-secret:robot