시크릿으로 작업하기
Code Engine에서 시크릿에 대해 작업하는 방법을 학습하십시오. Code Engine 에서 환경 변수를 사용하여 기능, 작업 또는 애플리케이션에서 사용할 수 있는 키-값 쌍으로 정보를 시크릿에 저장할 수 있습니다.
시크릿이란 무엇이며 왜 사용해야 하나요?
Code Engine에서 시크릿 (및 configmaps) 은 키-값 쌍의 콜렉션입니다. 환경 변수로 맵핑되면, 환경 변수 이름이 해당 맵에 있는 각 항목의 "키"에 해당하고, 환경 변수 값은 해당 키의 "값"인 것과 같이 NAME=VALUE 관계가 설정됩니다.
시크릿은 비밀번호 또는 SSH 키와 같은 민감한 구성 정보를 배치에 포함하는 방법을 제공합니다. 시크릿의 값을 참조하면 배포에서 민감한 정보를 분리하여 앱, 기능 또는 작업의 이식성을 유지할 수 있습니다. 프로젝트에 대한 권한이 있는 사용자는 누구나 시크릿을 볼 수 있습니다. 시크릿 정보는 이러한 사용자와 공유될 수 있다는 점을 알고 있어야 합니다. 시크릿에는 키-값 쌍의 정보가 포함되어 있습니다.
시크릿과 구성 맵은 비슷한 엔티티이므로(시크릿이 더 안전하게 저장된다는 점만 제외하면) 시크릿과 구성 맵을 상호 작용하고 작업하는 방식도 비슷합니다. configmap에 대한 자세한 정보는 configmap에 대한 작업 을 참조하십시오.
Code Engine에서 작성할 수 있는 시크릿 유형은 무엇입니까?
Code Engine 는 다양한 시크릿을 지원하고 시크릿을 작성하고 이에 대해 작업하기 위한 옵션을 제공합니다.
다음 표에는 Code Engine에서 지원되는 시크릿이 요약되어 있습니다.
| 이름 | 설명 |
|---|---|
| 기본 인증 | username 및 password 키를 포함하는 시크릿입니다.기본 인증이 필요한 서비스( HTTP )에 액세스할 때는 기본 인증 비밀번호를 사용하세요. |
| 일반 | 단순 키-값 쌍 및 Code Engine 를 저장하는 시크릿은 정의된 키-값 쌍 또는 시크릿의 의도된 사용에 대해 가정하지 않습니다. 서비스에 액세스하기 위해 사용자 고유의 키-값 쌍을 정의하려는 경우 일반 시크릿을 사용하십시오. |
| HMAC | access_key_id 및 secret_access_key 키가 포함된 비밀 번호입니다.인증이 필요하지만 IBM Cloud® Identity and Access Management API 키를 지원하지 않는 S3-compatible 도구 및 라이브러리를 사용하려면 HMAC 자격 증명을 사용하세요. |
| 레지스트리 | 컨테이너 레지스트리에 액세스하기 위한 신임 정보를 저장하는 시크릿입니다. 컨테이너 이미지에 액세스하기 위해 Code Engine 앱 또는 작업에 대해 작업할 때 레지스트리 시크릿을 사용하십시오. 또는 Code Engine 를 사용하여 컨테이너 이미지를 빌드하고 Code Engine 에서 레지스트리 시크릿을 사용하여 빌드된 컨테이너 이미지를 저장할 레지스트리에 액세스합니다. 이 시크릿은 CLI에서 Registry access secret 라고도 합니다. |
| 서비스 액세스 | IBM Cloud 서비스 인스턴스에 액세스하기 위한 신임 정보를 저장하는 시크릿입니다. Code Engine 에서 서비스 바인딩으로 작업할 때 서비스 액세스 비밀번호를 사용하세요. Code Engine 에서 이 비밀번호를 자동으로 생성하거나 사용자 지정 서비스 액세스 비밀번호를 직접 만들 수 있습니다. |
| SSH | SSH키를 사용하여 서비스에 인증하기 위한 신임 정보를 저장하는 시크릿입니다 (예: GitHub 또는 GitLab과 같은 Git 저장소에 대한 인증). Code Engine 에서 컨테이너 이미지를 빌드하려는 경우 SSH 시크릿을 사용하십시오. Code Engine 는 이 시크릿을 사용하여 코드 저장소의 소스 코드에 액세스합니다. 예를 들어, GitHub 또는 GitLab과 같은 저장소의 소스 코드에 액세스하려면 빌드 실행과 함께 이 시크릿을 사용하십시오. 이 시크릿은 CLI에서 Git repository access secret 로 사용되고 콘솔에서 Code repo access 로도 사용됩니다. |
| TLS(Transport Layer Security) | 모든 중간 인증서 및 인증 기관 (CA) 의 해당 개인 키를 포함하여 서명된 TLS 인증서를 포함하는 시크릿입니다. Code Engine에서 사용자 정의 도메인 맵핑 에 대해 작업할 때 TLS 시크릿을 사용하십시오. |
시크릿 작성
앱, 작업 또는 기능에 민감한 정보를 제공하려면 비밀 번호를 사용하세요. 시크릿은 키-값 쌍으로 정의되며 시크릿에 저장된 데이터는 인코딩됩니다.
콘솔에서 시크릿 작성
Code Engine 콘솔에서 시크릿을 작성하는 방법을 학습합니다.
콘솔에서 다음 유형의 시크릿을 작성하는 방법을 학습합니다.
콘솔에서 일반 비밀 만들기
Code Engine 콘솔에서 함수, 작업 또는 앱에서 환경 변수로 사용할 수 있는 일반 시크릿을 만드는 방법을 알아보세요.
시작하기 전에 프로젝트를 작성하십시오.
- 프로젝트가 활성 상태가 되면 Code Engine 프로젝트 페이지에서 프로젝트 이름을 클릭합니다.
- 컴포넌트 페이지에서 시크릿 및 configmap을 클릭하십시오.
- 시크릿 및 configmap 페이지에서 작성을 클릭하여 시크릿을 작성하십시오.
- 시크릿 또는 configmap 작성 페이지에서 다음 단계를 완료하십시오.
- 일반 시크릿을 선택하고 다음을 클릭하십시오.
- 이름을 입력합니다(예:
mysecret-generic). - 키-값 쌍 추가를 클릭하십시오. 이 시크릿에 대해 하나 이상의 키-값 쌍을 지정하십시오. 예를 들어, 하나의 키를
mysecret1값으로secret1으로 지정하고 다른 키를secret2값으로target-secret으로 지정합니다. 키에 대해 선택하는 이름은 환경 변수 이름과 같을 필요가 없습니다. 키 값은 숨겨지지만 필요한 경우 볼 수도 있습니다. - 작성을 클릭하여 시크릿을 작성하십시오.
이제 콘솔에서 비밀번호가 만들어졌으므로 비밀번호 및 구성 맵 페이지로 이동하여 정의된 비밀번호 및 구성 맵 목록을 확인합니다. 필터를 적용하여 필요에 맞게 목록을 사용자 정의할 수 있습니다.
콘솔에서 HMAC 비밀 만들기
Code Engine 콘솔에서 함수, 작업 또는 앱에서 환경 변수로 사용할 수 있는 HMAC 시크릿을 만드는 방법을 알아보세요. 인증이 필요하지만 IBM Cloud® Identity and Access Management API 키를 지원하지 않는 S3-compatible 도구 및 라이브러리와 함께 사용됩니다.
시작하기 전에 프로젝트를 작성하십시오.
- 프로젝트가 활성 상태가 되면 Code Engine 프로젝트 페이지에서 프로젝트 이름을 클릭합니다.
- 컴포넌트 페이지에서 시크릿 및 configmap을 클릭하십시오.
- 시크릿 및 configmap 페이지에서 작성을 클릭하여 시크릿을 작성하십시오.
- 시크릿 또는 configmap 작성 페이지에서 다음 단계를 완료하십시오.
- HMAC 비밀 번호를 선택하고 다음을 클릭합니다.
- 이름을 입력합니다(예:
mysecret-hmac). - 액세스 키 ID를 지정합니다.
- 비밀 액세스 키를 지정합니다. 키 값은 숨겨지지만 필요한 경우 볼 수도 있습니다.
- 작성을 클릭하여 시크릿을 작성하십시오.
이제 콘솔에서 비밀번호가 만들어졌으므로 비밀번호 및 구성 맵 페이지로 이동하여 정의된 비밀번호 및 구성 맵 목록을 확인합니다. 필터를 적용하여 필요에 맞게 목록을 사용자 정의할 수 있습니다.
HMAC 비밀키에 대한 자세한 내용은 IBM Cloud Object Storage- API 키와 HMAC을 참조하세요.
콘솔에서 레지스트리 비밀 만들기
컨테이너 이미지를 가져오거나 푸시하기 위한 액세스를 위해 기능, 작업, 앱 또는 빌드에서 이용할 수 있는 Code Engine 콘솔에서 레지스트리 시크릿을 작성하는 방법을 학습합니다.
시작하기 전에 프로젝트를 작성하십시오.
- 프로젝트가 활성 상태가 되면 Code Engine 프로젝트 페이지에서 프로젝트 이름을 클릭합니다.
- 컴포넌트 페이지에서 시크릿 및 configmap을 클릭하십시오.
- 시크릿 및 configmap 페이지에서 작성을 클릭하여 시크릿을 작성하십시오.
- 시크릿 또는 configmap 작성 페이지에서 다음 단계를 완료하십시오.
- 레지스트리 시크릿을 선택하고 다음을 클릭하십시오.
- 이름을 입력합니다(예:
mysecret-registry). - 이 시크릿의 대상 레지스트리를 지정하십시오 (예: IBM Cloud Container Registry 또는 Docker Hub).
- 레지스트리의 위치를 지정하십시오.
- 사용자 이름을 지정합니다. 이 시크릿이 IBM Cloud Container Registry에 대한 것인 경우 사용자 이름은
iamapikey입니다. 이 시크릿이 Docker 허브에 대한 것이면 Docker ID입니다. - 사용자 아이디에 대한 자격 증명을 입력합니다. IBM Cloud Container Registry의 경우 IAM API키를 사용하십시오. Docker Hub의 경우 Docker Hub 비밀번호 또는 액세스 토큰을 사용할 수 있습니다. 기타 대상 레지스트리의 경우 사용자 이름에 대한 비밀번호 또는 API키를 지정하십시오.
- 작성을 클릭하여 시크릿을 작성하십시오.
이제 콘솔에서 비밀번호가 만들어졌으므로 비밀번호 및 구성 맵 페이지로 이동하여 정의된 비밀번호 및 구성 맵 목록을 확인합니다. 필터를 적용하여 필요에 맞게 목록을 사용자 정의할 수 있습니다.
이미지 레지스트리 작업에 대한 자세한 정보는 컨테이너 레지스트리 액세스 를 참조하십시오.
콘솔에서 SSH 시크릿 작성
개인용 소스 코드 저장소에 액세스하기 위해 빌드에서 이용할 수 있는 콘솔에서 SSH 시크릿을 작성하는 방법을 학습합니다. SSH 시크릿은 SSH키를 사용하여 서비스에 인증하기 위한 신임 정보를 저장합니다 (예: GitHub 또는 GitLab과 같은 Git 저장소에 대한 인증).
시작하기 전에 프로젝트를 작성하십시오.
- 프로젝트가 활성 상태가 되면 Code Engine 프로젝트 페이지에서 프로젝트 이름을 클릭합니다.
- 컴포넌트 페이지에서 시크릿 및 configmap을 클릭하십시오.
- 시크릿 및 configmap 페이지에서 작성을 클릭하여 시크릿을 작성하십시오.
- 시크릿 또는 configmap 작성 페이지에서 다음 단계를 완료하십시오.
- SSH 시크릿을 선택하고 다음을 클릭하십시오.
- 이름을 입력합니다(예:
mysecret-ssh). - 이 시크릿에 대한 SSH 개인 키를 추가하십시오.
- 작성을 클릭하여 시크릿을 작성하십시오.
이제 콘솔에서 비밀번호가 만들어졌으므로 비밀번호 및 구성 맵 페이지로 이동하여 정의된 비밀번호 및 구성 맵 목록을 확인합니다. 필터를 적용하여 필요에 맞게 목록을 사용자 정의할 수 있습니다.
Git 저장소와 같은 개인용 코드 저장소에 대해 작업할 때 SSH 시크릿을 사용하십시오. 개인용 코드 저장소 액세스를 참조하십시오.
콘솔에서 TLS 비밀 만들기
Code Engine에서 사용자 정의 도메인 맵핑에 대해 작업할 때 앱에서 이용할 수 있는 콘솔에서 TLS 시크릿을 작성하는 방법을 학습합니다. TLS (Transport Layer Security) 시크릿에는 모든 중간 인증서 및 인증 기관 (CA) 의 해당 개인 키를 포함하여 서명된 TLS 인증서가 포함되어 있습니다.
시작하기 전에 프로젝트를 작성하십시오.
- 프로젝트가 활성 상태가 되면 Code Engine 프로젝트 페이지에서 프로젝트 이름을 클릭합니다.
- 컴포넌트 페이지에서 시크릿 및 configmap을 클릭하십시오.
- 시크릿 및 configmap 페이지에서 작성을 클릭하여 시크릿을 작성하십시오.
- 시크릿 또는 configmap 작성 페이지에서 다음 단계를 완료하십시오.
- TLS 시크릿을 선택하고 다음을 클릭하십시오.
- 이름을 입력합니다(예:
mysecret-tls). - 인증서 체인 및 해당 개인 키를 추가하십시오. 인증서를 각각 새 줄에서 시작하여 연결할 수 있습니다. 이 정보를 파일에 제공할 수 있습니다.
- 작성을 클릭하여 시크릿을 작성하십시오.
이제 콘솔에서 비밀번호가 만들어졌으므로 비밀번호 및 구성 맵 페이지로 이동하여 정의된 비밀번호 및 구성 맵 목록을 확인합니다. 필터를 적용하여 필요에 맞게 목록을 사용자 정의할 수 있습니다.
Code Engine에서 사용자 정의 도메인 맵핑 에 대해 작업할 때 TLS 시크릿을 사용하십시오.
CLI로 비밀 만들기
앱, 작업 또는 함수에서 환경 변수로 사용할 수 있는 Code Engine CLI를 사용하여 시크릿을 만드는 방법을 알아보세요.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
CLI 버전 1.42.0 부터는 CLI에서 비밀 번호를 정의하고 작업하는 것이 secret 명령 그룹으로 통합됩니다. ibmcloud ce secret 명령을 참조하십시오. --format 옵션을 사용하여 basic_auth, generic, hmac, ssh, tls 또는 registry 과 같은 비밀 카테고리를 지정합니다. --format 옵션의 기본값은 generic 입니다.
secret create 명령을 사용하여 다양한 시크릿 형식을 작성하고 관리할 수 있습니다. 다양한 시크릿 형식에 대한 설명은 Code Engine에서 작성할 수 있는 시크릿 유형 을 참조하십시오.
CLI를 사용하여 다음 유형의 시크릿을 작성하는 방법을 학습합니다.
CLI로 기본 인증 비밀번호 만들기
기본 인증 비밀은 사용자 이름과 비밀번호 키를 포함하며 기본 HTTP 인증이 필요한 서비스에 액세스하는 데 사용됩니다. 다음 예제에서는 myusername 에 대한 신임 정보를 사용하여 기본 인증 시크릿을 작성하고 연관된 비밀번호가 로컬 워크스테이션의 파일에 제공됩니다.
ibmcloud ce secret create --name mysecret-basicauth --format basic_auth --username myusername --password-from-file ./password.txt
이 비밀 정보의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name mysecret-basicauth
출력 예
Getting secret 'mysecret-basicauth'...
OK
Name: mysecret-basicauth
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: basic_auth
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2021-03-10T18:44:18-05:00
Data:
---
password: REDACTED
username: bXl1c2VybmFtZQ==
이 기본 인증 시크릿에 대한 키 username 의 값이 인코딩되고 password 의 값이 수정됩니다. 디코딩하는 대로 시크릿 데이터를 표시하려면 --decode 옵션을 secret get 명령에 사용하십시오.
CLI로 일반 시크릿 만들기
일반 시크릿은 단순 키-값 쌍을 저장하고 Code Engine 는 정의된 키-값 쌍 또는 시크릿의 의도된 사용에 대해 가정하지 않습니다.
명령을 사용하여 일반 비밀글을 만들 수 있습니다 secret create 명령으로 일반 비밀을 만들 수 있습니다. 기본적으로 --format 옵션이 지정되지 않으면 일반 시크릿이 작성됩니다.
-
--from-literal형식으로KEY=VALUE옵션을 사용하여 명령행에서 직접 시크릿을 작성하십시오. 예를 들면 다음과 같습니다.ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My literal secret" -
--from-file옵션을 사용하여 파일을 가리킴으로써 시크릿을 작성하십시오. 이 옵션을 사용하면 파일의 모든 컨텐츠가 키-값 쌍의 값이 됩니다. 이 예에서는secrets.txt이 포함되어 있는my little secret1파일을 사용하십시오.-
다음 예에서는
--from-file KEY=FILE명령에secret create형식을 사용합니다.ibmcloud ce secret create --name mysecretmsg1 --from-file TARGET=secrets.txt -
다음 예에서는
--from-file FILE명령에secret create형식을 사용합니다. 이 예에서TARGET(확장자 없음)은 파일 이름으로, 작업에 알려진 환경 변수의 이름과 같습니다.ibmcloud ce secret create --name mysecretmsg2 --from-file TARGET
-
-
--from-env-file옵션을 사용하여KEY=VALUE형식과 일치하는 하나 이상의 행이 포함된 파일을 가리키는 시크릿을 작성하십시오. 지정된 파일의 각 행은 키-값 쌍으로 추가됩니다. 지정된 파일에서 비어 있거나#으로 시작하는 행은 무시됩니다. 이 예제의 경우, 키-값 쌍(secrets_multi.txt,sec1=mysec1,sec2=mysec2)이 포함된sec3=mysec3파일을 사용하십시오.ibmcloud ce secret create --name mysecretmulti --from-env-file secrets_multi.txt
파일에서 일반 시크릿을 작성 (또는 업데이트) 하려면 다음 형식 중 하나로 --from-file 옵션을 사용하십시오. --from-file FILE 또는 --from-file KEY=FILE Code Engine에서 --from-file 옵션을 사용하여 시크릿 값을 지정하는 경우 파일 내의 모든 컨텐츠는 키-값 쌍의
값입니다. --from-file KEY=FILE 의 옵션 형식을 사용하는 경우 KEY 은 작업, 기능 또는 앱에 알려진 환경 변수의 이름입니다. --from-file FILE 의 옵션 형식을 사용하는 경우 FILE 은 작업, 함수 또는 앱에 알려진 환경 변수의 이름입니다. 파일에 하나 이상의 키-값 쌍이 있으면, --from-env-file 옵션을 사용하여 지정된 파일에 있는 각 키-값 쌍에 대해 환경 변수를 추가하십시오. 지정된 파일에서 비어 있거나 # 로 시작하는 줄은 모두 무시됩니다.
일반 시크릿 myliteralsecret 의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name myliteralsecret
출력 예
Getting secret 'myliteralsecret'...
OK
Name: myliteralsecret
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: generic
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 21:06:34 +0000 UTC
Data:
---
TARGET: TXkgbGl0ZXJhbCBzZWNyZXQ=
이 일반 비밀에 대한 TARGET 키의 값은 인코딩되어 있습니다. 디코딩하는 대로 시크릿 데이터를 표시하려면 --decode 옵션을 secret get 명령에 사용하십시오.
CLI로 HMAC 비밀 생성하기
HMAC 비밀은 access_key_id 및 secret_access_key 키를 포함하며 인증이 필요하지만 IBM Cloud® Identity and Access Management API 키를 지원하지 않는 S3-compatible 도구 및 라이브러리와 함께 사용됩니다. IBM Cloud® Identity and Access Management API 키 또는 HMAC 자격
증명을 사용해야 하는 경우 IBM Cloud Object Storage- API 키와 HMAC을 참조하세요. 다음 예에서는 샘플 자격 증명을 사용하여 메시지가 표시될 때 제공할 HMAC 비밀 번호를 생성합니다.
ibmcloud ce secret create --name mysecret-hmac --format hmac --access-key-id-prompt --secret-access-key-prompt
이 비밀 정보의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name mysecret-hmac
출력 예
Getting secret 'mysecret-hmac'...
OK
Name: mysecret-hmac
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: hmac_auth
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 86s
Created: 2025-05-15T12:41:15-05:00
Data:
---
access_key_id: MWEyYjNjNGQ1ZTZmMWEyYjNjNGQ1ZTZmMWEyYjNjNGQK
secret_access_key: REDACTED
이 HMAC 비밀에 대한 access_key_id 키의 값은 인코딩되어 있고 secret_access_key 값은 삭제되어 있습니다. 디코딩하는 대로 시크릿 데이터를 표시하려면 --decode 옵션을 secret get 명령에 사용하십시오.
CLI로 레지스트리 비밀 만들기
레지스트리 시크릿은 컨테이너 레지스트리에 액세스하기 위한 신임 정보를 저장합니다.
다음 예제에서는 mysecret-registry 이라는 레지스트리 시크릿을 작성하여 us.icr.io 레지스트리 서버에 있는 IBM Cloud Container Registry 인스턴스에 액세스하고 username 및 password 에 대한 신임 정보를 지정합니다.
ibmcloud ce secret create --name mysecret-registry --format registry --server us.icr.io --username iamapikey --password API_KEY
이 비밀 정보의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name mysecret-registry
출력 예
Getting secret 'mysecret-registry'...
OK
Name: mysecret-registry
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: registry
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 20:00:45 +0000 UTC
Data:
---
email: ""
password: REDACTED
server: dXMuaWNyLmlv
username: aWFtYXBpa2V5
이 레지스트리 시크릿에 대한 username 및 server 키의 값이 인코딩되고 password 의 값이 수정됩니다. 디코딩하는 대로 시크릿 데이터를 표시하려면 --decode 옵션을 secret get 명령에 사용하십시오.
CLI를 사용하여 SSH 시크릿 작성
SSH 시크릿은 SSH키를 사용하여 서비스에 인증하기 위한 신임 정보를 저장합니다. 예를 들어, GitHub 또는 GitLab과 같은 Git 저장소에 인증합니다.
다음 예제에서는 /<filepath>/.ssh/<key_name> 에 있는 암호화되지 않은 SSH 개인 키 파일로 인증하여 known_hosts 파일에 포함된 호스트에 액세스하기 위해 이름이 mysecret-ssh 인 SSH 시크릿을 작성합니다. 여기서 <filepath> 는 로컬 워크스테이션의 경로입니다.
이 명령에는 이름 및 키 경로가 필요하며 알려진 호스트 파일에 대한 경로와 같은 기타 선택적 인수도 허용됩니다.
ibmcloud ce secret create --name mysecret-ssh --format ssh --key-path ~/.ssh/<key_name> --known-hosts-path ~/.ssh/known_hosts
이 비밀 정보의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name mysecret-ssh
출력 예
Getting secret 'mysecret-ssh'...
OK
Name: mysecret-ssh'
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: ssh
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 19:19:59 +0000 UTC
Data:
---
known_hosts: fDF8bGh0ekpiSFVXdXRxZWg1NUlrWTk4RjdOdjJZPXxsUmhZd0txVmIwd3dSV2xzcjEySFdoWURUTG89IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQXEyQTdoUkdtZG5tOXRVRGJPOUlEU3dCSzZUYlFhK1BYWVBDUHk2cmJUclR0dzdQSGtjY0tycHAweVZocDVIZEVJY0tyNnBMbFZEQmZPTFg5UVVzeUNPVjB3emZqSUpObEdFWXNkbExKaXpIaGJuMm1VanZTQUhRcVpFVFlQODFlRnpMUU5uUEh0NEVWVlVoN1ZmREVTVTg0S2V6bUQ1UWxXcFhMbXZVMzEveU1mK1NlOHhoSFR2S1NDWklGSW1Xd29HNm1iVW9XZjluenBJb2FTakIrd2VxcVVVbXBhYWFzWFZhbDcySitVWDJCKzJSUFczUmNUMGVPelFncWxKTDNSS3JUSnZkc2pFM0pFQXZHcTNsR0hTWlh5MjhHM3NrdWEyU21WaS93NHlDRTZnYk9EcW5UV2xnNyt3QzYwNHlkR1hBOFZKaVM1YXA0M0pYaVVGRkFhUT09CnwxfEpUSjI4MCt0RkFSMGcxZ3VrZW56U3ZBYm5sQT18RDlSUWppenZlR3UxS0FnNjhNeisrUHM3RmZrPSBlY2RzYS1zaGEyLW5pc3RwMjU2IEFBQUFFMlZqWkhOaExYTm9ZVEl0Ym1semRIQXlOVFlBQUFBSWJtbHpkSEF5TlRZQUFBQkJCRW1LU0VOalFFZXpPbXhrWk15N29wS2d3RkI5bmt0NVlScllNak51RzVOODd1UmdnNkNMcmJvNXdBZFQveTZ2MG1LVjBVMncwV1oyWUIvKytUcG9ja2c9CnwxfDhIOXpNb0VORklZVDNPeVZYWlQrY25wb0srND18dVdhVThFV1FPc0ttSDMzREVVd0xnNUtiUk44PSBzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJT01xcW5rVnpybTBTZEc2VU9vcUtMc2FiZ0g1Qzlva1dpMGRoMmw5R0tKbAo=
ssh-privatekey: REDACTED
이 SSH 시크릿에 대한 known_hosts 키의 값이 인코딩되고 ssh-privatekey 의 값이 수정됩니다. 디코딩하는 대로 시크릿 데이터를 표시하려면 --decode 옵션을 secret get 명령에 사용하십시오.
CLI로 TLS 비밀 만들기
TLS (Transport Layer Security) 시크릿에는 모든 중간 인증서 및 인증 기관 (CA) 의 해당 개인 키를 포함하여 서명된 TLS 인증서가 포함되어 있습니다. 사용자 정의 도메인 맵핑에 대해 작업할 때 TLS 시크릿을 사용하십시오.
다음 예제는 이름이 mysecret-tls 인 TLS 시크릿을 작성합니다. 사용자 정의 도메인에 해당하는 인증서 체인은 certificate.txt 파일에 포함되어 있으며 일치하는 개인 키 파일은 privatekey.txt 파일에 포함되어 있습니다. 이 예제에서 이 두 파일은 모두 로컬 워크스테이션의 루트 디렉토리에 있습니다.
ibmcloud ce secret create --name mysecret-tls --format tls --cert-chain-file certificate.txt --private-key-file privatekey.txt
이 비밀 정보의 세부사항을 표시하려면 다음을 수행하십시오.
ibmcloud ce secret get --name mysecret-tls
출력 예
Getting secret 'mysecret-tls'...
OK
Name: mysecret-tls'
ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format: tls
Project Name: myproject
Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111
Age: 66s
Created: 2023-03-07 16:14:46 +0000 UTC
Data:
---
tls.crt: REDACTED
tls.key: REDACTED
CLI를 사용하여 시크릿 나열
시크릿이 작성된 후 secret list 명령을 사용하여 프로젝트의 모든 시크릿을 나열하십시오. 예를 들면 다음과 같습니다.
ibmcloud ce secret list
출력 예
Listing secrets...
OK
Name Format Data Age
ce-auto-icr-private-us-south registry 4 333d
ce-auto-private-icr-us-south registry 4 335d
myregistry-seccmd registry 4 3h31m
mysecret-basicauth basic_auth 2 7m37s
mysecret-generic generic 1 7m7s
mysecret-genericfromfile generic 2 2m29s
mysecret-hmac hmac_auth 2 21m
mysecret-registry registry 4 111s
mysecret-ssh ssh_auth 2 42m
mysecret-tls tls 2 3h47m
시크릿 업데이트
기존 시크릿의 키-값 쌍을 변경할 수 있습니다.
콘솔에서 시크릿 업데이트
콘솔에서 정의된 시크릿의 키-값 쌍을 업데이트할 수 있습니다.
-
다음 중 한 가지 방식으로 콘솔에서 정의된 시크릿의 키-값 쌍을 업데이트할 수 있습니다.
- 프로젝트의 시크릿 및 configmap 페이지로 이동하여 업데이트하려는 시크릿을 찾으십시오. 업데이트하려는 시크릿 이름을 클릭하여 여십시오.
- 앱, 작업 또는 함수에서 비밀번호를 참조하는 경우 앱, 작업 또는 함수의 환경 변수 탭에 있는 환경 변수 표의 링크를 사용하세요. 이 링크는 비밀글로 바로 연결됩니다. 프로젝트의 시크릿 및 configmap 페이지로 이동하여 업데이트하려는 시크릿을 찾으십시오. 업데이트하려는 시크릿 이름을 클릭하여 여십시오.
-
편집을 클릭하고 사용자 시크릿을 업데이트하십시오.
-
저장을 클릭하고 사용자 시크릿 변경사항을 저장하십시오.
업데이트된 비밀 번호가 작업, 함수 또는 앱에서 참조되는 경우 새 데이터를 적용하려면 해당 작업, 함수 또는 앱을 다시 시작해야 합니다.
- 앱 - 앱의 페이지에서 새 개정판을 클릭한 후 저장 및 배치를 클릭하십시오. 또는 앱의 크기가 0이 될 때까지 기다린 다음 앱을 다시 키울 때 앱은 업데이트된 시크릿을 사용합니다.
- 작업 - 작업 페이지에서 작업 제출을 클릭하여 작업을 실행하십시오. 또는 작업을 재실행할 수 있습니다. 이 새 작업 실행에서는 업데이트된 시크릿을 사용합니다.
- 기능-기능 페이지에서 기능 테스트를 클릭하십시오. URL, 브라우저를 새로고침합니다.
CLI를 사용하여 시크릿 업데이트
CLI를 사용하여 기존 시크릿 및 해당 키-값 쌍을 업데이트할 수 있습니다.
-
정의된 시크릿에서 키-값 쌍의 값을 변경하려면
secret update명령을 사용하십시오. 다른 서버를 사용하도록mysecret-registry시크릿을 업데이트하십시오.ibmcloud ce secret update --name mysecret-registry --format registry --server <new_server> --username <new_username> --password <password> -
이제 시크릿이 업데이트되었으므로
secret get명령을 사용하여 특정 시크릿에 대한 세부사항을 표시하십시오. 필요한 경우--decode옵션을 사용하여 시크릿 데이터를 디코딩된 것으로 표시하십시오. 예를 들면 다음과 같습니다.ibmcloud ce secret get --name mysecret-registry --decode출력 예
Getting generic secret 'mysecret-registry'... OK Name: mysecret-registry ID: abcdefgh-abcd-abcd-abcd-c88e2775388e Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 21m Created: 2023-03-07 20:00:45 +0000 UTC Data: --- email: "" password: REDACTED server: newserver username: newuser
시크릿 참조
작업, 기능 또는 앱은 환경 변수를 사용하여 비밀로 저장된 정보를 소비하고 사용할 수 있습니다.
콘솔에서 시크릿 참조
콘솔을 사용하여 앱, 작업 및 함수에 대해 시크릿을 완전히 참조하거나 시크릿의 개별 키를 참조하는 환경 변수를 만들 수 있습니다.
시크릿을 참조하기 전에 이미 존재해야 합니다. 시크릿 작성을 참조하십시오. 이 예의 경우 키-값 쌍 TARGET=Sunshine을 사용하여 target-secret이라는 시크릿을 작성합니다.
-
앱, 작업 및 기능에서 정의된 시크릿을 참조하려면 환경 변수를 작성 하십시오. 환경 변수는 기존 시크릿을 완전히 참조하거나 기존 시크릿에 있는 개별 키를 참조할 수 있습니다. 시크릿 또는 configmap을 완전히 참조하는 경우 선택적으로
prefix를 지정할 수 있습니다. 예를 들어,myapp애플리케이션에서mysecret시크릿을 완전히 참조하고mysecret_접두부를 사용하는 경우 시크릿의 각 키에는mysecret_이 접두부로 추가됩니다. -
환경 변수를 만든 후에는 변경 사항을 적용하려면 앱, 작업 및 함수를 다시 시작해야 합니다. 앱의 경우 앱을 저장 후 배치하여 사용자가 정의한 환경 변수로 앱을 업데이트하십시오. 작업의 경우 작업을 제출하여 사용자가 정의한 환경 변수로 작업을 업데이트하십시오.
-
앱, 작업 및 기능 상태가 준비로 변경되면 애플리케이션 또는 기능을 테스트하거나 작업을 실행할 수 있습니다. 앱의 경우 애플리케이션 테스트를 클릭한 후 애플리케이션 테스트 분할창에서 요청 전송을 클릭하십시오. 애플리케이션을 웹 페이지에서 열려면 애플리케이션 URL을 클릭하십시오.
myapp예제에서는 완전히 참조된mysecret비밀에 접두사가 지정되었으므로 이 비밀의 모든 키는 환경 변수로 참조되고mysecret_로 접두사가 붙습니다. 예를 들어, 이러한 환경 변수는mysecret_secret1=mysecret1및mysecret_secret2=mysecret2로 표시됩니다.
시크릿을 참조하는 환경 변수를 업데이트하려면 환경 변수 업데이트 및 환경 변수 업데이트 고려사항을 참조하십시오.
시크릿을 참조하는 환경 변수를 제거하려면 환경 변수 삭제를 참조하십시오.
예를 들어 작업에서는 콘솔에서 정의된 이전에 정의된 mysecret 시크릿을 사용하고 환경 변수에서는 이 시크릿을 완전히 참조합니다.
-
작업을 작성하고 실행하십시오. 이 예에서는
icr.io/codeengine/codeengine이미지를 사용하는 Code Engine 작업을 작성한 후 작업을 실행합니다. 이 샘플 작업에 요청이 전송되면 작업은TARGET환경 변수를 읽고Hello ${TARGET} from Code Engine을 인쇄하여 환경 변수 목록을 인쇄합니다.TARGET환경 변수가 비어 있으면Hello World from Code Engine가 리턴됩니다.작업 페이지에서 다음을 수행하십시오.
- 작업을 작성합니다. 예:
myjob. - 이미지 참조로
icr.io/codeengine/codeengine을 지정하십시오. - 작성을 클릭하여 작업을 작성하십시오.
시크릿과 함께 사용하려는 워크로드가 이미 Code Engine 에 정의되어 있는 경우 애플리케이션, 작업 또는 함수 페이지로 이동한 다음 앱, 작업 또는 함수 이름을 클릭하여 구성 요소를 엽니다.
- 작업을 작성합니다. 예:
-
작업이 작성되면, 작업 페이지에서 작업 이름을 클릭하여 여십시오.
-
환경 변수로서 시크릿을 추가하도록 작업을 업데이트하십시오. 환경 변수를 클릭하여 탭을 열고 추가를 클릭하여 환경 변수를 추가하십시오.
-
환경 변수 추가 페이지에서 다음을 수행하십시오.
- 이전에 정의된 시크릿을 사용하려면 전체 시크릿 참조를 선택하십시오.
- 메뉴에서 원하는 시크릿의 이름을 선택하십시오(예:
target-secret). - 추가를 클릭하여 환경 변수를 추가하십시오.
- 저장을 클릭하여 작업 변경사항을 저장하십시오.
-
시크릿을 참조하는 환경 변수로 작업을 실행하려면 작업 제출을 클릭하십시오. 이 예제의 경우
myjob작업 실행의 로그는Hello Sunshine from Code Engine를 표시하고 환경 변수에서 참조되는 시크릿 값을 포함하여 환경 변수를 인쇄합니다.
CLI를 사용한 시크릿 참조
앱, 작업 및 함수에서 시크릿을 사용하려면 CLI로 시크릿을 완전히 참조하는 환경 변수를 설정하거나 시크릿의 개별 키를 참조하는 환경 변수를 설정할 수 있습니다.
CLI를 사용하여 기존의 시크릿 참조
다음 예제는 --format 옵션이 지정되지 않은 경우 기본 시크릿인 일반 시크릿을 참조합니다. --format 옵션을 사용하여 시크릿의 카테고리 (예: basic_auth, generic, ssh, tls 또는 registry) 를 지정하십시오.
CLI에서 워크로드와 함께 비밀 번호를 사용하려면 다음 명령어에 --env-from-secret 옵션을 지정하세요.
다음 예에서는 CLI를 사용하여 작업에서 기존 일반 시크릿을 참조하는 방법을 설명합니다.
-
명령을 사용하여
secret create명령을 사용하여 이 시나리오에 대한 다음 두 가지 일반 비밀을 만듭니다. 기본적으로--format옵션이 지정되지 않으면 일반 시크릿이 작성됩니다.ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My big literal secret"ibmcloud ce secret create --name myliteralsecret2 --from-literal "TARGET=My little literal secret" -
작업을 작성하고
myliteralsecret시크릿을 참조하십시오. 이 예에서는icr.io/codeengine/codeengine이미지를 사용하는 Code Engine 작업을 작성한 후 작업을 실행합니다. 이 샘플 작업에 요청이 전송되면 작업은TARGET환경 변수를 읽고Hello ${TARGET} from Code Engine을 인쇄하여 환경 변수 목록을 인쇄합니다.TARGET환경 변수가 비어 있으면Hello World from Code Engine가 리턴됩니다.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --array-indices 2-3 --env-from-secret myliteralsecret -
myjob작업을 실행하십시오.ibmcloud ce jobrun submit --name myjobrun --job myjob -
jobrun get명령을 사용하여 작업 실행 인스턴스를 포함하여 작업 실행의 세부사항을 표시하십시오.ibmcloud ce jobrun get --name myjobrun출력 예
Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... Getting events of jobrun 'myjobrun'... Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances. OK Name: myjobrun [...] Job Ref: myjob Environment Variables: Type Name Value Secret full reference myliteralsecret Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 2-3 Array Size: 2 JOP_ARRAY_SIZE Value: 2 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 9s Instance Statuses: Succeeded: 2 Conditions: Type Status Last Probe Last Transition Pending True 13s 13s Running True 9s 9s Complete True 9s 9s Events: Type Reason Age Source Messages Normal Updated 10s (x4 over 14s) batch-job-controller Updated JobRun "myjobrun" Normal Completed 10s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-2-0 0/1 Succeeded 0 14s myjobrun-3-0 0/1 Succeeded 0 14s -
myjobrun작업 실행의 로그를 표시하십시오. 작업 실행의 모든 인스턴스에 대한 로그를 표시하거나 작업 실행의 특정 인스턴스에 대한 로그를 표시할 수 있습니다. 이번에는 작업 실행의 모든 인스턴스에 대한 로그를 표시합니다. 이 로그에서는 시크릿으로 환경 변수를 사용하여 지정된Hello my big literal secret!을 표시합니다.icr.io/codeengine/codeengine이미지로 정의된 이 작업의 경우, 작업 실행의 출력은 환경 변수와 함께 참조된 시크릿의 값을 포함하여 환경 변수를 출력합니다.ibmcloud ce jobrun logs --jobrun myjobrun출력 예
Getting logs for all instances of job run 'myjobrun'... Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... OK myjobrun-2-0/myjob: Hello from helloworld! I'm a batch job! Index: 2 Hello My big literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrun-2-0 JOB_INDEX=2 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My big literal secret myjobrun-3-0/myjob: Hello from helloworld! I'm a batch job! Index: 3 Hello My big literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrun-3-0 JOB_INDEX=3 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My big literal secret -
작업 실행을 다시 제출하고 이 작업 실행에
myliteralsecret2시크릿을 사용하도록 지정하십시오.ibmcloud ce jobrun resubmit --jobrun myjobrun --name myjobrunresubmit --env-from-secret myliteralsecret2시크릿을 완전히 참조하는 환경 변수로 작업, 앱 또는 함수를 업데이트하여 다른 시크릿을 완전히 참조하는 경우, 전체 참조는 설정된 순서대로 다른 전체 참조를 재정의합니다(마지막으로 참조된 집합이 첫 번째 집합을 재정의함).
-
jobrun get명령을 사용하여 작업 실행 인스턴스를 포함하여 작업 실행의 세부사항을 표시하십시오. 작업 실행은myliteralsecret및myliteralsecret2시크릿을 모두 참조합니다.ibmcloud ce jobrun get --name myjobrunresubmit출력 예
Getting jobrun 'myjobrunresubmit'... Getting instances of jobrun 'myjobrunresubmit'... Getting events of jobrun 'myjobrunresubmit'... [...] Name: myjobrunresubmit ID: 79f01367-932b-4a76-be18-b1e68790a85b Project Name: myproject Project ID: 841f0f38-420d-4388-b5d8-f230657d7dc6 Age: 14s Created: 2021-06-15T21:15:37-04:00 Job Ref: myjob Environment Variables: Type Name Value Secret full reference myliteralsecret Secret full reference myliteralsecret2 Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 4G Memory: 4G Runtime: Mode: task Array Indices: 2-3 Array Size: 2 JOP_ARRAY_SIZE Value: 2 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 11s Instance Statuses: Succeeded: 2 Conditions: Type Status Last Probe Last Transition Pending True 14s 14s Running True 12s 12s Complete True 11s 11s Events: Type Reason Age Source Messages Normal Updated 13s (x4 over 16s) batch-job-controller Updated JobRun "myjobrunresubmit" Normal Completed 13s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrunresubmit-2-0 0/1 Succeeded 0 16s myjobrunresubmit-3-0 0/1 Succeeded 0 16s -
myjobrunresubmit작업 실행 인스턴스의 작업 실행 로그를 표시하십시오. 이번에는myjobrunresubmit-3-0인스턴스의 로그를 표시하십시오. 로그에는Hello My little literal secret!이 표시됩니다. 이는myliteralsecret2시크릿에 지정된 값입니다. 작업 실행의 실행 중인 인스턴스를 포함하여 작업 실행의 세부사항을 표시하려면jobrun get명령을 사용하십시오.ibmcloud ce jobrun logs --instance myjobrunresubmit-3-0출력 예
Getting logs for job run instance 'myjobrunresubmit-3-0'... OK myjobrunresubmit-3-0/myjob: Hello from helloworld! I'm a batch job! Index: 3 Hello My little literal secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrunresubmit-3-0 JOB_INDEX=3 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=My little literal secret -
시크릿에서 키-값 쌍의 값을 변경하려면
secret update명령을 사용하십시오.myliteralsecret시크릿을 업데이트하여TARGET키의 값을My big literal secret에서My new big literal secret으로 변경하십시오.ibmcloud ce secret update --name myliteralsecret --from-literal "TARGET=My new big literal secret" -
새 데이터를 적용하려면 작업을 다시 실행하십시오. 작업 실행을 다시 제출하고 이 작업 실행에 대해
myliteralsecret시크릿을 사용하도록 지정하십시오.
ibmcloud ce jobrun resubmit --jobrun myjobrun --name myjobrunresubmit2 --env-from-secret myliteralsecret
myjobrunresubmit2작업 실행의 로그를 표시하십시오. 이번에는 작업 로그에Hello My new big literal secret!이 표시됩니다. 이는 업데이트된myliteralsecret시크릿의 값입니다.jobrun get명령을 사용하면 작업 실행의 실행 중인 인스턴스를 포함하여 작업 실행의 세부사항을 표시할 수 있습니다. 작업 실행의 실행 중인 인스턴스에 대한 로그를 표시하십시오.
ibmcloud ce jobrun logs --instance myjobrunresubmit2-2-0
출력 예
Getting logs for job run instance 'myjobrunresubmit2-2-0'...
OK
myjobrunresubmit2-2-0/myjob:
Hello from helloworld! I'm a batch job! Index: 2
Hello My new big literal secret from:
. ___ __ ____ ____
./ __)/ \( \( __)
( (__( O )) D ( ) _)
.\___)\__/(____/(____)
.____ __ _ ___ __ __ _ ____
( __)( ( \ / __)( )( ( \( __)
.) _) / /( (_ \ )( / / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
HOME=/root
HOSTNAME=myjobrunresubmit2-2-0
JOB_INDEX=2
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TARGET=My new big literal secret
요약하면, 시크릿 내에서 기존의 전체 시크릿을 참조하고 키를 업데이트하여 작업에서 시크릿을 사용하는 방법에 대해 설명하는 기본 시나리오를 완료했습니다.
CLI를 사용하여 아직 정의되지 않은 시크릿 참조
참조하기 전에 비밀이 존재하지 않으면 앱이 성공적으로 배포되지 않으며 참조된 비밀이 생성될 때까지 작업 또는 함수가 성공적으로 실행되지 않습니다.
앱, 작업 또는 함수로 작업 중이고 참조된 비밀이 아직 정의되지 않은 경우 참조된 비밀의 존재 여부를 확인하지 않으려면 --force 옵션을 사용하세요.
--force 옵션은 다음 명령과 함께 사용할 수 있습니다.
이러한 명령과 함께 --force 옵션을 사용하면 앱, 작업 또는 함수를 만들거나 업데이트하거나 실행하는 작업이 완료됩니다. 그러나 참조된 비밀이 존재할 때까지 앱, 작업 또는 함수는 성공적으로 실행되지 않습니다. 명령에 --force 옵션 외에 --no-wait 옵션을 추가하면 시스템이 작업을 완료하고 앱, 작업 또는 함수가 성공적으로 실행될 때까지
기다리지 않습니다.
다음 예에서는 CLI를 사용하여 아직 작업에 정의되지 않은 시크릿을 참조하는 방법에 대해 설명합니다.
-
작업을 작성하십시오. 이 예에서는
icr.io/codeengine/codeengine이미지를 사용하는 Code Engine 작업을 작성한 후 작업을 실행합니다. 이 샘플 작업에 요청이 전송되면 작업은TARGET환경 변수를 읽고Hello ${TARGET} from Code Engine을 인쇄하여 환경 변수 목록을 인쇄합니다.TARGET환경 변수가 비어 있으면Hello World from Code Engine가 리턴됩니다.ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine -
jobrun submit명령을 사용하여myjob작업을 실행하십시오.mynewliteralsecret이 존재하지 않습니다.jobrun submit명령에--no-wait옵션을 사용하면 작업 실행이 제출되고 이 작업 실행의 인스턴스가 완료될 때까지 기다리지 않습니다.ibmcloud ce jobrun submit --name myjobrun1 --job myjob --env-from-secret mynewliteralsecret --force --no-wait -
jobrun get명령을 사용하여 환경 변수 정보를 포함한 작업 실행의 세부사항을 표시하십시오. 작업 실행이pending상태임에 유의하십시오.ibmcloud ce jobrun get --name myjobrun1출력 예
Getting jobrun 'myjobrun1'... Getting instances of jobrun 'myjobrun1'... Getting events of jobrun 'myjobrun1'... [...] Name: myjobrun1 [...] Job Ref: myjob Environment Variables: Type Name Value Secret full reference mynewliteralsecret Image: icr.io/codeengine/codeengine Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Instance Statuses: Pending: 1 Conditions: Type Status Last Probe Last Transition Pending True 100s 100s Events: Type Reason Age Source Messages Normal Updated 108s (x5 over 2m29s) batch-job-controller Updated JobRun "myjobrun1" Instances: Name Running Status Restarts Age myjobrun1-0-0 0/1 Pending 0 2m29s -
시크릿을 작성하십시오.
ibmcloud ce secret create --name mynewliteralsecret --from-literal "TARGET=Fun secret" -
myjobrun1작업 실행을 다시 실행하십시오.ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name myjobrunresubmit1ibmcloud ce jobrun get -n myjobrunresubmit1명령을 실행하여 이 작업 실행 상태를 확인하십시오. -
myjobrunresubmit1작업 실행의 로그를 표시하십시오. 로그에Hello Fun secret from Code Engine가 표시됩니다. 이는myliteralsecret시크릿을 참조하는 작업 실행을 확인합니다.ibmcloud ce jobrun logs --jobrun myjobrunresubmit1출력 예
Getting logs for all instances of job run 'myjobrunresubmit1'... Getting jobrun 'myjobrunresubmit1'... Getting instances of jobrun 'myjobrunresubmit1'... OK myjobrunresubmit1-0-0/myjob: Hello from helloworld! I'm a batch job! Index: 0 Hello Fun secret from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- HOME=/root HOSTNAME=myjobrunresubmit1-0-0 JOB_INDEX=0 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 TARGET=Fun secret
전체 시크릿 및 configmap을 환경 변수로 참조하고, 참조를 대체하며, CLI에서 참조를 제거하는 방법에 대한 자세한 시나리오는 시크릿 및 configmap 참조를 참조하십시오.
시크릿 삭제
더 이상 비밀이 필요하지 않은 경우 삭제할 수 있습니다.
콘솔에서 비밀 삭제하기
- 콘솔에서 비밀을 삭제하려면 다음과 같이 하세요,
- Code Engine 프로젝트 페이지에서 비밀 및 구성 맵 페이지로 이동합니다.
- 삭제하려는 비밀 번호를 클릭하면 해당 페이지가 열립니다.
- 특정 시크릿의 페이지에서 조치 > 시크릿 삭제를 클릭하십시오.
- 콘솔에서 특정 비밀에 대한 키-값 쌍을 삭제하려면 다음과 같이 하세요,
- Code Engine 프로젝트 페이지에서 비밀 및 구성 맵 페이지로 이동합니다.
- 변경하려는 비밀번호를 클릭하면 해당 페이지가 열립니다.
- 특정 비밀 페이지에서 제거하려는 키-값 쌍을 삭제합니다.
시크릿 및 configmap을 참조하는 정의된 환경 변수도 삭제할 수 있습니다. 정의된 환경 변수를 삭제하려면 앱, 작업 또는 함수의 환경 변수 탭에서 삭제하려는 환경 변수를 삭제합니다. 정의된 환경 변수를 삭제한 후에는 저장을 클릭하여 앱, 작업 또는 함수에 변경 사항을 저장하세요. 자세한 정보는 환경 변수 삭제를 참조하십시오.
CLI로 비밀 삭제하기
CLI를 사용하여 시크릿을 삭제하려면 secret delete 명령을 사용하십시오. 예를 들면, 다음과 같습니다.
ibmcloud ce secret delete --name myliteralsecret -f
출력 예
Deleting secret myliteralsecret...
OK
CLI에서 시크릿 및 configmap을 참조하는 환경 변수도 삭제할 수 있습니다.