클러스터의 모든 노드에 Apigee mTLS를 설치한 후에는 다음을 수행합니다.
apigee-mtls
구성요소를 구성하고 초기화해야 합니다. 이렇게 하려면
인증서/키 쌍을 추가하고
구성 파일을 관리 머신에 설치합니다. 그런 다음
생성된 동일한 파일 및 구성 파일을 클러스터의 모든 노드에 적용하고
apigee-mtls
구성요소.
apigee-mtls 구성 (초기 설치 후)
이 섹션에서는 다음을 완료한 후 직접 Apigee mTLS를 구성하는 방법을 설명합니다. 초기 설치를 해야 합니다. GCP Console의 기존 Apigee mTLS 설치에 대한 자세한 내용은 기존 apigee-mtls 변경 참조 구성을 참조하세요.
이 섹션은 단일 데이터 센터에 설치하는 경우에 적용됩니다. 정보 여러 데이터 센터 설정에서 Apigee mTLS 구성에 대한 자세한 내용은 Apigee mTLS를 위한 여러 데이터 센터 구성
apigee-mtls
를 구성하는 일반적인 프로세스는 다음과 같습니다.
- 구성 파일을 업데이트합니다.
관리 머신에서
apigee-mtls
를 포함하도록 구성 파일을 업데이트합니다. 설정을 변경할 수 있습니다. - Consul 설치 및 사용자 인증 정보 생성: 설치
Consul을 사용하고 필요한 경우 이를 사용하여 TLS 사용자 인증 정보를 생성합니다(한 번만).
또한 Apigee mTLS 구성 파일을 수정하여 다음을 수행합니다.
- 사용자 인증 정보 추가
- 클러스터의 토폴로지 정의
기존 사용자 인증 정보 또는 Consul을 사용하여 생성하는 방법을 알아봅니다.
- 사용자 인증 정보 및 구성 파일을 배포합니다. 생성된 동일한 인증서/키 쌍과 업데이트된 구성 파일을 모든 노드에 배포합니다. 살펴봤습니다
- Apigee-mtls 초기화:
각 노드의
apigee-mtls
구성요소
다음 섹션에서 각 단계를 설명합니다.
1단계: 구성 파일 업데이트
이 섹션에서는 mTLS 구성을 포함하도록 구성 파일을 수정하는 방법을 설명합니다. 속성 구성 파일에 대한 자세한 내용은 다음을 참조하세요. 구성 만들기 파일을 참고하세요.
mTLS 관련 속성으로 구성 파일을 업데이트한 후 파일을
클러스터에서 apigee-mtls
구성요소를 초기화하기 전에 클러스터의 모든 노드
노드라는 두 가지 리소스가 있습니다
구성 파일을 업데이트하려면 다음 안내를 따르세요.
- 관리 머신에서 수정할 구성 파일을 엽니다.
- 다음 mTLS 구성 속성 집합을 복사하여 구성에 붙여넣으세요.
파일:
ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER" ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS" CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS" PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS" RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS" MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS" MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS" QP_MTLS_HOSTS="QPID_PRIVATE_IPS" LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS" MTLS_ENCAPSULATE_LDAP="y" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE" PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem" PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem" APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS" TLS_MIN_VERSION="tls12" TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
구성에 맞게 각 속성의 값을 설정합니다.
다음 표에서는 이러한 구성 속성을 설명합니다.
속성 설명 ALL_IP
클러스터에 있는 모든 노드의 비공개 호스트 IP 주소가 공백으로 구분된 목록입니다. IP 주소의 순서는 중요하지 않습니다. 단, 모든 IP 주소가 동일해야 합니다. kube-apiserver와 통신하는 역할을 합니다
여러 데이터 센터에 Apigee mTLS를 구성하는 경우 다음 항목을 나열하세요. 모든 리전의 모든 호스트에 대한 모든 IP 주소가 생성됩니다
LDAP_MTLS_HOSTS
클러스터에 있는 OpenLDAP 노드의 비공개 호스트 IP 주소입니다. ZK_MTLS_HOSTS
주키퍼 노드가 호스팅되는 비공개 호스트 IP 주소의 공백으로 구분된 목록 kube-APIserver입니다
요구사항에 따라 주키퍼 노드가 3개 이상 있어야 합니다.
CASS_MTLS_HOSTS
Cassandra 서버가 호스팅되는 공백으로 구분된 비공개 호스트 IP 주소의 목록 kube-APIserver입니다 PG_MTLS_HOSTS
Postgres 서버가 호스팅되는 비공개 호스트 IP 주소의 공백으로 구분된 목록 kube-APIserver입니다 RT_MTLS_HOSTS
라우터가 호스팅되는 비공개 호스트 IP 주소의 공백으로 구분된 목록은 kube-APIserver입니다 MTLS_ENCAPSULATE_LDAP
메시지 프로세서와 LDAP 서버 간의 LDAP 트래픽을 암호화합니다. 다음으로 설정 y
MS_MTLS_HOSTS
관리 서버 노드가 있는 비공개 호스트 IP 주소의 공백으로 구분된 목록 kube-apiserver와 통신하는 역할을 합니다 MP_MTLS_HOSTS
메시지 프로세서가 있는 비공개 호스트 IP 주소의 공백으로 구분된 목록 kube-apiserver와 통신하는 역할을 합니다 QP_MTLS_HOSTS
Qpid 서버가 호스팅되는 비공개 호스트 IP 주소의 공백으로 구분된 목록 kube-APIserver입니다 ENABLE_SIDECAR_PROXY
Cassandra 및 Postgres가 서비스 메시를 인식해야 하는지 여부를 결정합니다. 이 값은 'y'로 설정해야 합니다.
ENCRYPT_DATA
Consul에서 사용하는 base64로 인코딩된 암호화 키입니다. 이 키는 다음을 사용하여 생성했습니다. consul keygen
명령어 2단계: Consul 설치 및 사용자 인증 정보를 생성합니다.이 값은 클러스터에 있는 모든 노드에서 동일해야 합니다.
PATH_TO_CA_CERT
노드에 있는 인증서 파일의 위치입니다. 이 파일을 다음에서 생성했습니다. 2단계: Consul 설치 및 사용자 인증 정보 생성 이 위치는 클러스터의 모든 노드에서 동일해야 하므로 동일합니다.
인증서는 X509v3으로 인코딩되어야 합니다.
PATH_TO_CA_KEY
노드에 있는 키 파일의 위치입니다. 이 파일을 다음에서 생성했습니다. 2단계: Consul 설치 및 사용자 인증 정보 생성 이 위치는 클러스터의 모든 노드에서 동일해야 하므로 동일합니다.
키 파일은 X509v3으로 인코딩되어야 합니다.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR
취득이 허용되는 기간(일수)입니다. 커스텀 인증서를 생성합니다.
기본값은 365입니다. 최댓값은 7,865일 (5년)입니다.
TLS_MIN_VERSION
허용되는 최소 TLS 버전을 지정합니다. 최소 TLS 1.2를 적용하려면 tls12
로 설정합니다.TLS_CIPHER_SUITES
허용되는 TLS 암호화 스위트를 쉼표로 구분한 목록입니다. 예:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
위에 나열된 속성 외에도 Apigee mTLS는 몇 가지 추가 속성을 사용합니다. 멀티 데이터 센터 구성에 설치할 때 자세한 내용은 여러 데이터 센터를 구성합니다.
ENABLE_SIDECAR_PROXY
가 'y'로 설정되어 있는지 확인합니다.- 호스트 관련 속성에서 IP 주소를 업데이트합니다. 반드시
각 노드를 참조할 때 public IP 주소가 아닌 private IP 주소를
사용할 수 있습니다
이후 단계에서
ENCRYPT_DATA
,PATH_TO_CA_CERT
,PATH_TO_CA_KEY
필요한 작업: 아직 값을 설정하지 않았습니다.apigee-mtls
구성 속성을 수정할 때는 다음 사항에 유의하세요.- 모든 속성은 문자열입니다. 모든 속성의 값을 단일 또는 이중으로 래핑해야 합니다. 인용부호 포함.
- 호스트 관련 값에 비공개 IP 주소가 2개 이상인 경우 각 IP 주소를 구분하세요. 입력합니다.
- 모든 호스트 관련 작업에 호스트 이름이나 공개 IP 주소가 아닌 비공개 IP 주소를 사용하세요. 구성 파일에 있습니다.
- 속성 값의 IP 주소 순서는 모든 kube-apiserver와 통신하는 역할을 합니다
- 변경 사항을 구성 파일에 저장합니다.
2단계: Consul 설치 및 사용자 인증 정보 생성
이 섹션에서는 Consul을 설치하고 구성 요소가 포함됩니다
사용자 인증 정보를 생성하려면 다음 방법 중 하나를 선택해야 합니다.
- (권장) 이 문서에 설명된 대로 Consul을 사용하여 자체 인증 기관 (CA)을 만듭니다. 섹션
- Apigee mTLS (고급)와 함께 기존 CA의 사용자 인증 정보 사용
사용자 인증 정보
사용자 인증 정보는 다음으로 구성됩니다.
- 인증서: TLS 인증서
- 키: TLS 공개 키
- 가십 메시지: base-64로 인코딩된 암호화 키
이러한 각 파일의 단일 버전은 한 번만 생성합니다. 그런 다음 키와 인증서를 복사합니다. 파일을 클러스터의 모든 노드에 보내고, 구성 파일에 암호화 키를 모든 노드에도 복사됩니다
Consul의 암호화 구현에 관한 자세한 내용은 다음을 참고하세요.
Consul 설치 및 사용자 인증 정보 생성
Apigee mTLS에서 사용할 사용자 인증 정보 생성 프라이빗 클라우드 클러스터의 노드 간 보안 통신을 인증하려면 로컬 Consul 바이너리 . 그 결과 먼저 관리 머신에 Consul을 설치해야 합니다. 사용자 인증 정보를 생성합니다
Consul을 설치하고 mTLS 사용자 인증 정보를 생성하려면 다음 안내를 따르세요.
- 관리 컴퓨터에서 Consul 1.8.0 바이너리를 HashiCorp 웹사이트.
- 다운로드한 보관 파일의 콘텐츠를 추출합니다. 예를 들어
/opt/consul/
- 관리 머신에서 다음 명령어를 실행하여 새 인증 기관 (CA)을 만듭니다.
다음 명령어를 실행합니다.
/opt/consul/consul tls ca create
Consul은 다음 파일을 만들어 인증서/키 쌍을 형성합니다.
consul-agent-ca.pem
(인증서)consul-agent-ca-key.pem
(키)
기본적으로 인증서 및 키 파일은 X509v3으로 인코딩됩니다.
나중에 이 파일을 클러스터의 모든 노드에 복사합니다. 하지만 현재로서는 노드의 위치만 결정합니다. 같은 위치를 지정할 수도 있습니다 예를 들면
/opt/apigee/
입니다. - 구성 파일에서
PATH_TO_CA_CERT
값을 노드의consul-agent-ca.pem
파일을 복사합니다. 예를 들면PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
입니다. PATH_TO_CA_KEY
의 값을 노드의consul-agent-ca-key.pem
파일 예를 들면PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
입니다.- 다음 명령어를 실행하여 Consul의 암호화 키를 만듭니다.
/opt/consul/consul keygen
Consul은 다음과 비슷한 무작위 문자열을 출력합니다.
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- 생성된 이 문자열을 복사하여
ENCRYPT_DATA
속성의 값으로 설정합니다. 구성 파일에 있습니다. 예를 들면 다음과 같습니다.ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - 구성 파일을 저장합니다.
다음 예는 구성 파일의 mTLS 관련 설정을 보여줍니다 (예: 값):
... IP1=10.126.0.121 IP2=10.126.0.124 IP3=10.126.0.125 IP4=10.126.0.127 IP5=10.126.0.130 ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5" LDAP_MTLS_HOSTS="$IP3" ZK_MTLS_HOSTS="$IP3 $IP4 $IP5" CASS_MTLS_HOSTS="$IP3 $IP4 $IP5" PG_MTLS_HOSTS="$IP2 $IP1" RT_MTLS_HOSTS="$IP4 $IP5" MS_MTLS_HOSTS="$IP3" MP_MTLS_HOSTS="$IP4 $IP5" QP_MTLS_HOSTS="$IP2 $IP1" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem" PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem" ...
3단계: 구성 파일 및 사용자 인증 정보 배포하기
scp
와 같은 도구를 사용하여 다음 파일을 모든 노드에 복사합니다.
- 구성 파일: 이 파일의 업데이트된 버전을 복사하고 (ZooKeeper를 실행하는 노드뿐만 아니라) 모든 노드의 기존 버전이 생성됩니다.
- consul-agent-ca.pem:
구성 파일에는
PATH_TO_CA_CERT
가 있어야 합니다. - consul-agent-ca-key.pem:
구성 파일에는
PATH_TO_CA_KEY
가 있어야 합니다.
인증서 및 키 파일을 복사하는 위치가 지정한 값과 일치하는지 2단계: Consul 설치 및 생성의 구성 파일에서 설정합니다. 사용자 인증 정보를 제공합니다.
4단계: apigee-mtls 초기화
각 노드에 apigee-mtls
를 설치한 후 구성 파일을 업데이트하고
사용자 인증 정보를 클러스터의 모든 노드에 복사했다면 이제
각 노드에 apigee-mtls
구성요소가 있습니다.
Apigee-mtls를 초기화하려면 다음 안내를 따르세요.
- 클러스터의 노드에 루트 사용자로 로그인합니다. Cloud Shell의 노드에서 이러한 단계를 원하는 순서로 수행할 수 있습니다.
apigee:apigee
사용자를 업데이트된 구성 파일의 소유자로 설정합니다. 다음 예는 다음과 같습니다.chown apigee:apigee config_file
- 다음 명령어를 실행하여
apigee-mtls
구성요소를 구성합니다./opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (선택사항) 다음 명령어를 실행하여 설정이 성공했는지 확인합니다.
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- 다음 명령어를 실행하여 Apigee mTLS를 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Apigee mTLS를 설치한 후에는 이 구성요소를 먼저 시작해야 하며, 먼저 이 구성요소를 시작해야 합니다. 구성 요소만 볼 수 있습니다
- (Cassandra 노드만 해당) Cassandra를 사용하려면 추가 인수가 필요합니다.
보안 메시를 제공합니다 따라서 각 Cassandra 노드에서 다음 명령어를 실행해야 합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- (Postgres 노드만 해당) Postgres가 작동하려면
보안 메시를 제공합니다 따라서 Postgres 노드에서 다음을 수행해야 합니다.
(기본만)
- Postgres 기본 노드에서 다음 명령어를 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
(대기 모드만 해당)
- 기존 Postgres 데이터를 백업합니다. Apigee mTLS를 설치하려면 다음을 다시 초기화해야 합니다. 데이터 손실이 발생할 수 있습니다 자세한 내용은 다음에 대해 기본/대기 복제 설정: Postgres
- 모든 Postgres 데이터를 삭제합니다.
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- 다음 예와 같이 Postgres를 구성한 후 Postgres를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
다중 데이터 센터 토폴로지에 설치하는 경우 구성 파일을 참조하세요.
- Postgres 기본 노드에서 다음 명령어를 실행합니다.
- 다음 노드의 노드에서 나머지 Apigee 구성요소를 시작합니다.
시작 순서가 됩니다.
다음 예는 다음과 같습니다.
<ph type="x-smartling-placeholder">
/opt/apigee/apigee-service/bin/apigee-service component_name start
</ph> - 클러스터의 각 노드에 이 프로세스를 반복합니다.
- (선택사항) 다음 코드 중 하나를 사용하여
apigee-mtls
초기화가 성공했는지 확인합니다. 다음 중 하나 이상의 메서드를 사용합니다. <ph type="x-smartling-placeholder">- </ph>
- iptables 구성 유효성 검사
- 원격 프록시 상태 확인
- 쿼럼 상태 확인
각 방법은 구성을 참조하세요.
기존 apigee-mtls 구성 변경
기존 apigee-mtls
구성을 맞춤설정하려면
apigee-mtls
를 재설치합니다. 또한 맞춤설정이 모든 Google 계정에
노드라는 두 가지 리소스가 있습니다
이 점을 재차 강조하자면 기존 Apigee mTLS 구성을 변경할 때 다음과 같이 하세요.
- 구성 파일을 변경하는 경우 먼저
apigee-mtls
를 제거하고setup
또는configure
를 다시 실행합니다.# DO THIS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
# BEFORE YOU DO THIS:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
OR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
- 모든 노드에서
setup
또는configure
를 제거하고 다시 실행해야 합니다. 단일 노드가 아닌