Kubernetes에서 비밀 TLS를 생성하는 방법

Kubernetes Eseo Bimil Tlsleul Saengseonghaneun Bangbeob



Kubernetes는 클러스터 내에서 컨테이너화된 애플리케이션을 실행하고 관리하는 데 사용되는 오픈 소스 도구입니다. 비밀 및 수신을 통해 애플리케이션의 자격 증명을 제어, 실행 및 보호하는 다양한 작업을 수행합니다.

Ingress는 애플리케이션 수신 트래픽을 관리하고 SSL 종료에도 사용됩니다. 대조적으로, 비밀은 기밀 정보와 애플리케이션용 TLS 인증서를 저장하는 데 사용됩니다.

이 게시물에서는 다음을 설명합니다.







Kubernetes 비밀은 무엇입니까?

비밀은 사용자 로그인 자격 증명, 키, 인증서 또는 토큰과 같은 기밀 정보를 저장하는 데 사용되는 Kubernetes 리소스 중 하나입니다. 비밀은 개별적으로 생성되어 포드에 연결될 수 있습니다. 이는 개발자가 코드에 기밀 데이터를 제공하는 것을 방지하고 추가 보안 계층을 제공합니다. 다양한 종류의 비밀을 생성하고 사용할 수 있습니다. 가장 일반적으로 사용되는 비밀은 다음과 같습니다.



일반 비밀번호: 일반 비밀은 비밀번호, 토큰, API 키, OAuth 키 등과 같은 기본 정보를 저장하는 데 사용됩니다.



TLS 비밀: TLS 비밀은 CA에서 서명한 개인 키와 인증서를 저장하는 데 사용됩니다. Kubernetes 내부에서 실행되는 애플리케이션의 보안과 클러스터 내 통신의 보안을 보장하기 위해 사용자는 일반적으로 TLS 비밀을 생성하여 포드에 포함해야 합니다.





도커 레지스트리: 레지스트리에서 이미지를 쉽게 가져오기 위해 Docker 레지스트리 자격 증명을 저장하는 데 사용됩니다.

전제 조건: 개인 키 및 인증서 생성

보안 강화를 위해 인증서와 개인키를 생성하려면 CSR(인증서 서명 요청)과 개인키를 생성하는 OpenSSL을 활용하세요. 그런 다음 CSR을 사용하여 자체 서명 또는 CA 인증서를 생성하십시오.



Windows에서 OpenSSL 명령을 활용하려면 Git을 설치해야 합니다. 이를 위해 링크된 “ 윈도우에 git 설치 ' 기사.

Git을 설치한 후 아래 지침에 따라 개인 키와 서명된 인증서를 생성하세요.

1단계: Git Bash 터미널 실행

'를 검색해 보세요. 힘내 배쉬 '를 시작 메뉴에서 실행하고 터미널을 시작합니다.

현재 디렉토리를 확인하려면 ' 비밀번호 ' 명령:

비밀번호

현재 우리는 %USERPROFILE% 디렉터리에서 작업하고 있습니다.

2단계: 새 디렉터리 생성

인증서와 개인 키를 저장할 새 디렉터리를 만듭니다.

mkdir 인증서

'를 사용하여 새로 생성된 디렉터리로 이동합니다. CD ' 명령:

CD 인증서

3단계: 개인 키 생성

이제 주어진 명령을 통해 개인 키를 생성하십시오. 여기서 생성된 개인키는 “ mycert.key ':

openssl genpkey -연산 RSA -밖으로 mycert.key

4단계: CSR 생성

서명된 인증서를 얻기 위해 CSR(인증서 서비스 요청)을 생성하려면 다음 명령을 사용하십시오.

openssl 요청 -새로운 -열쇠 mycert.key -밖으로 mycert.csr

5단계: 인증서 생성

마지막으로 생성된 개인키와 CSR을 이용하여 인증서를 생성하고 “ mycert.crt ” 파일. 이를 위해 아래 명령을 실행하십시오.

openssl x509 -요구 -안에 mycert.csr -사인키 mycert.key -밖으로 mycert.crt -날 365

TLS 인증서를 생성한 후 사용자는 아래 섹션에 따라 비밀 TLS를 생성할 수 있습니다.

Kubernetes에서 비밀 TLS를 만드는 방법은 무엇입니까?

Kubernetes 클러스터 내부 및 외부에서 애플리케이션 보안과 보안 통신을 보장하려면 데이터 암호화에 사용되는 TLS(전송 계층 보안) 인증서가 필수적입니다. Kubernetes 비밀을 사용하면 비밀 TLS를 통해 실행 중인 포드에 TLS 인증서를 내장할 수 있습니다. Kubernetes에서 비밀 TLS를 생성하려면 다음 지침을 따르십시오.

1단계: Minikube 클러스터 시작

Minikube 클러스터를 시작하려면 먼저 Windows PowerShell을 관리자로 시작하세요. 그런 다음 '를 사용하여 클러스터를 생성하고 실행합니다. 미니쿠베 시작 ' 명령:

미니쿠베 시작

2단계: 노드 가져오기

Kubernetes 노드에 액세스하여 클러스터가 시작되었는지 확인합니다.

minikube get nodes

3단계: 비밀 TLS 생성

“를 사용하여 Kubernetes에서 TLS 비밀을 생성합니다. kubectl create secret –cert= –key= ' 명령. 여기서 비밀 유형은 “ 일반적인 ', ' tls ', 또는 ' 도커 레지스트리 '. TLS 비밀을 생성하기 위해 비밀 유형을 'tls'로 설정했습니다.

kubectl은 비밀 TLS 데모 비밀을 생성합니다. --인증서 =C:\Users\Dell\cert\mycert.crt --열쇠 =C:\Users\Dell\cert\mycert.key

4단계: 비밀 가져오기

확인을 위해 주어진 명령을 사용하여 Kubernetes 비밀을 나열하십시오.

kubectl은 비밀을 얻습니다

여기에서 우리가 효과적으로 ' 데모 비밀 ”에는 “이 포함되어 있습니다. 2 ” 데이터 값:

5단계: 비밀 설명

데이터가 비밀로 조회되거나 저장되는 방식을 보려면 '를 사용하여 비밀을 설명하세요. kubectl 설명 비밀 ' 명령:

kubectl은 비밀 데모-비밀을 설명합니다.

값은 바이트 단위로 저장되며 Kubernetes ConfigMap과 달리 직접 볼 수는 없습니다.

Yaml 파일을 통해 비밀 TLS를 만드는 방법은 무엇입니까?

yaml 파일을 통해 비밀 TLS를 생성하려면 먼저 “ 비밀.yml ” 파일을 추가하려면 TLS Base64로 인코딩된 인증서 “에서 TLS.crt ” 키를 누르고 base64로 인코딩된 키 “에서 TLS.키 '.

데모를 위해 나열된 단계를 따르십시오.

1단계: Yaml 파일 생성

'라는 이름의 파일을 만듭니다. 비밀.yml ” 그리고 주어진 코드를 붙여넣으세요:

api버전 : v1

데이터
:

TLS.crt
: 'base64로 인코딩된 인증서'

TLS.키
: 'base64로 인코딩된 키'

친절한
: 비밀

metadata
:

이름
: mytls-비밀

네임스페이스
: 기본

유형
: kubernetes.io/tls

위 코드 조각에서 'tls.crt' 및 'tls.key' 키 값을 원래 인증서 및 키 값으로 바꿉니다.

2단계: 비밀 만들기

이제 “를 통해 비밀 yaml 파일을 적용합니다. kubectl apply -f ' 명령:

kubectl 적용 -에프 비밀.yml

출력에는 ' mytls-비밀 'yaml 파일을 사용하여:

참고: TLS 인증서 및 개인 키 보기

base64로 인코딩된 인증서를 보고 이를 yaml 파일에서 사용하려면 ' cat <인증서 파일 경로> | 베이스64 'git bash 터미널에서 명령:

고양이 mycert.crt | 베이스64

base64로 인코딩된 키를 보려면 '를 사용하세요. cat <키 파일 경로> | 베이스64 ' 명령:

고양이 mycert.key | 베이스64

Kubernetes Pod에 비밀 TLS를 포함하는 방법은 무엇입니까?

비밀 TSL을 생성한 후 사용자는 이를 Kubernetes Pod에 포함할 수 있습니다. 이렇게 하려면 다음 지침을 따르십시오.

1단계: Yaml 파일 생성

'라는 이름의 파일을 만듭니다. pod.yml ” 파일을 복사하고 아래 스니펫을 파일에 붙여넣습니다.

api버전: v1

종류: 포드

metadata:

이름: 데모 포드

투기:

컨테이너:

- 이름: html-cont

이미지 : rafia098 / HTML-img: 1.0

envFrom:

- 비밀참조:

이름: 데모-비밀

위의 스니펫에서:

  • 친절한 ” 키는 사용자가 생성하는 Kubernetes 리소스를 지정합니다.
  • 이름 ” 키를 누르면 포드 이름이 설정됩니다.
  • 컨테이너 ” 키는 컨테이너 정보를 저장합니다.
  • 이름 'containers' 키 아래의 ' 키를 누르면 컨테이너 이름이 설정됩니다.
  • 영상 ” 키는 컨테이너 내부에서 애플리케이션을 생성하고 시작하기 위한 애플리케이션 또는 컨테이너 이미지를 제공합니다.
  • envFrom ” 키는 다른 Kubernetes 리소스에서 환경 변수를 설정합니다. 여기서 비밀 TLS를 포드에 삽입하려면 ' 비밀Ref '는 비밀 참조를 제공하는 데 사용됩니다. 위 비밀 TLS를 포함하려면 'name' 키에 비밀 이름을 지정하세요.

2단계: 포드 생성 또는 업그레이드

다음으로 ' pod.yml ' 파일이 생성됩니다.

CD C:\Users\Dell\Documents\Kubernetes\비밀

yaml 파일을 적용하여 '를 사용하여 포드를 생성하거나 재구성합니다. kubectl 적용 ' 명령:

kubectl 적용 -에프 pod.yml

3단계: Kubernetes 포드에 액세스

확인을 위해 Kubernetes Pod를 나열합니다.

kubectl은 포드를 얻습니다

여기에서 ' 데모 포드 ” 성공적으로:

4단계: 포드 설명

Pod에 비밀 TLS가 포함되어 있는지 확인하려면 아래 명령을 사용하여 Pod를 설명하세요.

kubectl 설명 포드 데모 포드

아래 출력은 TLS 암호를 Pod에 성공적으로 삽입했음을 보여줍니다.

비밀 TLS를 생성하고 이를 포드에서 실행되는 Kubernetes 애플리케이션에 포함하는 방법을 다루었습니다.

결론

Kubernetes에서 비밀 TLS를 생성하려면 먼저 TLS 서명 인증서와 개인 키를 생성하십시오. 그런 다음 Kubernetes 클러스터를 시작하고 ' kubectl create secret –cert= –key= ' 명령. 사용자는 yaml 매니페스트를 사용하여 비밀 TLS를 생성할 수도 있습니다. 이 게시물에서는 비밀 TLS를 생성하는 방법과 실행 중인 애플리케이션 또는 Pod에 비밀을 포함하는 방법을 설명했습니다.