인증 관리자 통합을 통한 인증서 생성
외부 발급자(sn-external-issuer)를 사용하여 인증 관리자를 ServiceNow 통해 Kubernetes 인증서를 요청하고 인증서 및 관련 정보를 클러스터 내에 Kubernetes 비밀로 안전하게 저장합니다. 에서 Kubernetes비밀은 암호, API 키 및 인증서와 같은 중요한 정보를 저장하고 관리할 수 있는 개체입니다.
외부 발급자 빌드에 대한 자세한 내용은 인증서 관리용 외부 발급자 빌드 및 배포 [KB1435392]를 참조하십시오.
배포 요구 사항
- 사용자 환경에 인증 관리자를 배포합니다 Kubernetes . 인스턴스 URL, 인증서 소유자 그룹, 인증서 소유자, 환경 및 갱신 추적으로 manager.yaml 을 업데이트합니다.
- 사용자 Kubernetes 환경에 외부 발급자(sn-external-issuer)를 ServiceNow 배포합니다. 인스턴스 사용자 이름 및 암호로 비밀 clusterissuer-servicenow-credentials 을 Kubernetes 생성하여 사용자가 인증서를 요청하는 데 필요한 역할을 갖도록 합니다.
- ServiceNow 외부 발급자는 최신 버전 Kubernetes1.33.3과 함께 amd64 아키텍처를 지원합니다.
ServiceNow 외부 발급자(sn-external-issuer)
- 외부 발급자는 비핵심 API 및 서비스를 통해 인증서를 발급하도록 인증 관리자 기능을 확장합니다.
- ServiceNow 외부 발급자는 외부 발급자의 ServiceNow 특정 구현입니다.
- 새 인증서 작업이 생성되면 해당 인증서 요청 UID 및 인증서 작업 시스템 ID가 로컬 JSON 캐시에 저장되고 인증서 요청 UID는 인스턴스의 작업 맵 테이블에 저장됩니다.
- ServiceNow 외부 발급자는 인증 작업의 상태를 모니터링하기 위해 인스턴스를 폴링합니다.
- 인증서 작업이 진행 중 상태인 경우 해당 인증서 요청 UID 및 인증서 작업 시스템 ID가 인스턴스의 외부 발급자 UID 맵 테이블과 로컬 JSON 캐시에 추가됩니다. 이 시간 동안 인증 관리자는 자동으로 인증서 요청을 시도합니다.
- 인증서 요청을 받으면 인증 관리자는 로컬 JSON 캐시에서 일치하는 작업을 확인합니다. 발견되면 동일한 작업을 폴링합니다. 그렇지 않으면 외부 발급자 UID 맵 테이블에서 인스턴스에 레코드를 쿼리하고 로컬 JSON 캐시를 채웁니다.
- 작업이 완료로 표시되고 인증서가 생성 ServiceNow 되면 외부 발급자는 인스턴스에 다른 요청을 보내고 인증서 첨부 파일을 다운로드한 다음 에서 인증서 자원과 해당 비밀을 업데이트합니다 Kubernetes.
에 ServiceNow 외부 발급자 배포 Kubernetes
ServiceNow 외부 발급자를 Kubernetes 배포하려면 다음 단계를 수행해야 합니다.
- ServiceNow 인스턴스 다운로드 페이지에서 Helm 차트 또는 YAML zip 패키지를 가져옵니다.
- 특정 사용 사례에 필요한
manager.yaml또는values.yaml파일을 사용자 지정합니다. 이러한 파일은 인스턴스 URL 및 인증서 소유자 그룹과 같은 필수 정보를 포함할 수 있습니다. - 인스턴스 사용자 이름 및 암호로
clusterissuer-servicenow-credentials라는 비밀을 생성합니다Kubernetes.예제 명령:- 인스턴스 사용자 이름 및 암호로
clusterissuer-servicenow-credentials라는 비밀을 생성합니다Kubernetes. 예제 명령:kubectl create secret generic clusterissuer-servicenow-credentials --from-literal=user=<user_name> --from-literal=password=<password> -n system - 사용자에게 인증서를 요청하는 데 필요한 역할이 있는지 확인합니다.
- 인스턴스 사용자 이름 및 암호로
- 배포를 위해 다음 명령을 실행합니다.
kubectl create ns system kubectl apply -f crd kubectl apply -f rbac kubectl apply -f issuers kubectl apply -f manager/manager.yaml - (선택 사항) 특정 요구 사항에 맞게 파일의 추가 구성을 사용자 지정합니다.
- 배포가 성공하고 ServiceNow 외부 발급자가 실행 중인지 확인합니다.
새 인증서 플로우 요청
배포 후 certificate_clusterissuer.yaml이라는 파일에 다음 정보가 포함된 인증서 자원을 제출합니다.
- issuerRef : clusterissuer-servicenow
- issuer : issuer-servicenow
- 종류 : ClusterIssuer
- issuerRef: servicenow-issuer.servicenow.com
샘플 인증서 자원은 다음과 같습니다.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: certificate-by-clusterissuer
spec:
commonName: certificate-by-clusterissuer.servicenow.com
secretName: certificate-by-clusterissuer
dnsNames:
- servicenow.com
- foo.servicenow.com
issuerRef:
name: clusterissuer-servicenow
group: servicenow-issuer.servicenow.com
kind: ClusterIssuer
kubectl apply -f certificate_clusterissuer.yaml을 사용하여 인증서 자원을 적용합니다.