11.4. 서비스 계정의 인증 정보를 외부에서 사용
API 인증이 필요한 외부 애플리케이션에 서비스 계정의 토큰을 배포할 수 있습니다.
이미지를 가져오려면 인증된 사용자에게 요청된 imagestreams/layers
에 대한 get
권한이 있어야 합니다. 이미지를 밀어 넣으려면 인증된 사용자에게 요청된 imagestreams/layers
에 대한 update
권한이 있어야 합니다.
기본적으로 프로젝트의 모든 서비스 계정에는 해당 프로젝트의 이미지를 가져올 수 있는 권한이 있고, builder 서비스 계정에는 해당 프로젝트에 이미지를 밀어 넣을 권한이 있습니다.
절차
서비스 계정의 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...
가져온 토큰을 사용하여 로그인합니다.
$ 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>
서비스 계정으로 로그인했는지 확인합니다.
$ oc whoami
출력 예
system:serviceaccount:top-secret:robot