영역별 파일 공유를 위한 전송 중 암호화 설정하기
IPsec 보안 프로토콜과 X.509 인증서를 사용하여, 종단 간 데이터 암호화를 통해 존별 파일 공유에 대한 암호화된 마운트 연결을 설정합니다.
IPsec은 장치 간에 암호화된 연결을 설정하는 프로토콜 그룹입니다. 공용 네트워크를 통해 전송되는 데이터를 안전하게 보호하는 데 도움이 됩니다. IPsec은 IP 패킷을 암호화하고 패킷의 출처를 인증합니다. 가상 서버 인스턴스에서 IPsec을 구성하려면 오픈 소스 IPsec 기반 VPN 솔루션인 StrongSwan을 사용할 수 있습니다. strongSwan 작동 방식에 대한 자세한 내용은 strongSwan 및 IPsec 프로토콜 strongSwan 를 참조하세요.
IPsec 연결을 사용하려면 인증을 위한 X.509 인증서가 필요합니다. X.509 는 웹사이트, 개인 또는 조직과 같은 신원과 암호화 키 쌍을 안전하게 연결하는 디지털 문서인 공개 키 인증서의 국제 표준 형식입니다. 메타데이터 서비스는 인증서를 만드는 데 사용됩니다.
CSR(인증서 서명 요청)은 사용자가 인증서를 신청할 때 CA(인증 기관)에 전달되는 인코딩된 텍스트 블록입니다. CSR은 인증서를 설치할 서버에 만들어집니다. CSR에는 도메인 이름, 조직 이름, 지역 및 국가와 같은 정보가 포함됩니다. 요청에는 생성한 인증서와 연결된 공개 키와 개인 키도 포함되어 있습니다. CA는 인증서를 만들 때 공개 키만 사용합니다. 개인 키는 저장하고 비밀로 유지해야 합니다. 개인 키는 공개 키와 키 쌍의 일부이며 개인 키를 분실하면 인증서가 작동하지 않습니다.
IPsec 연결을 사용하여 영역 파일 공유를 마운트할 경우, 유지보수 중이나 노드 장애 발생 시 일시적인 마운트 중단 현상이 발생할 수 있습니다. 극히 드문 경우, IPsec이 구성된 마운트에서 최대 3분 동안 서비스가 중단될 수 있습니다. 자세한 내용은 ‘유지보수 중 IPsec이 구성된 영역 파일 공유에서 발생할 수 있는 마운트 중단’을 참조하십시오.
IPsec으로 전송 중 암호화 구성을 시작하기 전에 다음과 같이 하세요
이 기능을 사용하려면 다음 요구 사항을 충족해야 합니다:
- 파일 공유는
dp2프로필을 기반으로 해야 하며 보안 그룹 액세스 모드로 구성해야 합니다. - 마운트 대상은 가상 네트워크 인터페이스를 사용하여 만들어야 합니다. 가상 서버 인스턴스와 마운트 대상은 동일한 보안 그룹의 구성원이어야 합니다. 자세한 내용은 파일 공유 및 마운트 대상 만들기를 참조하세요.
- 전송 중인 데이터 암호화를 사용하도록 설정해야 합니다. 콘솔에서 마운트 대상을 만들 때 전송 중 암호화를 켜고 끌 수 있습니다. API
transit_encryption속성은ipsec값을 허용하여 기능을 활성화합니다. - 컴퓨팅 호스트에서 메타데이터 서비스가 활성화되어 있어야 합니다. 자세한 내용은 가상 서버 인스턴스의 메타데이터 서비스 및 베어메탈 서버의 메타데이터 서비스를 참조하세요.
IBM Cloud® 파일 서비스는 컴퓨팅 호스트에서 수행되는 다음 작업을 자동화하기 위한 ‘마운트 헬퍼(Mount Helper)’ 유틸리티를 제공합니다.
동일한 존 내의 서로 다른 VPC에서 실행 중인 인스턴스에 파일 공유를 연결하려면 여러 개의 마운트 대상을 생성할 수 있습니다. VPC마다 하나의 마운트 대상을 생성할 수 있습니다.
인스턴스 ID 인증서 얻기
인증에 필요한 X.509 인증서를 받습니다. 동일한 인증서를 여러 지역에서 사용할 수 없습니다.
-
다음 명령은 openssl을 사용하여 CSR( 인증서 서명 요청 ) 및 RSA 키 쌍을 생성합니다.
openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodes명령을 실행할 때 국가 코드
US를'/C=US'에서 두 자리 국가 코드로 바꿉니다.OpenSSL X.509 인증서, 인증서 서명 요청(CSR) 및 암호화 키를 다루는 데 사용할 수 있는 오픈 소스 명령줄 툴킷입니다. 자세한 내용은 OpenSSL 문서에서 확인하십시오.
다른 소프트웨어를 사용하여 CSR을 생성하는 경우 사용자 위치에 대한 정보를 입력하라는 메시지가 표시될 수 있습니다. 위치 정보에는 국가 코드(C), 주(ST), 지역(L), 조직 이름(O) 및 조직 단위(OU)가 포함될 수 있습니다. 이러한 명명 속성 중 하나를 사용할 수 있습니다. 일반 이름과 같은 다른 명명 속성은 거부됩니다. 일반 이름이 지정된 CSR은 요청할 때 시스템에서 자동으로 인스턴스 ID 값을 인스턴스 ID 인증서의 주체 일반 이름에 적용하기 때문에 거부됩니다. 확장자가 있는 CSR도 거부됩니다.
-
다음 명령을 사용하여 메타데이터 서비스에 대한 API 호출을 하기 전에 CSR을 포맷합니다.
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr -
그런 다음 가상 서버 인스턴스 또는 베어메탈 서버에서 메타데이터 서비스를 사용하여 클라이언트 인증서를 만듭니다.
PUT /instance_identity/v1/token(가상 서버 인스턴스) 또는PUT /identity/v1/tokens(베어메탈 서버)로 요청하여 이후 호출에 사용할 토큰을 VPC ID 서비스로부터 받습니다. 자세한 정보는 다음 주제를 참조하십시오.- 신원 토큰을 사용하여 신원 인증서를 만듭니다. 가상 서버 인스턴스의 경우
POST /instance_identity/v1/certificates, 베어메탈 서버의 경우POST /identity/v1/certificates으로 요청하세요. HTTP 권한 부여 헤더에 ID 토큰을 지정하고 인증서 서명 요청(csr속성)과 유효 기간(expires_in속성)을 지정합니다. 호출은 새 클라이언트 인증서와 중간 인증서 체인을 반환하여 클라이언트가 전송 중 IPsec 암호화를 사용하여 파일 공유에 액세스할 수 있도록 합니다. 자세한 정보는 다음 주제를 참조하십시오. -----BEGIN CERTIFICATE-----및-----END CERTIFICATE-----줄을 포함한 API 응답 출력을 복사하여ca-cert.pem과 같이 알아볼 수 있는 이름의 파일에 저장합니다. 생성하는 파일의 확장자가.pem인지 확인하세요.
-
/etc/ipsec.d/cacerts디렉터리에 인스턴스 ID 인증서를 복사합니다.sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts
호스트 구성 및 공유 마운트하기
-
strongSwan 클라이언트를 설치하고 구성합니다. 마운트 대상 주소에 대해 IPsec 전송 모드를 구성해야 합니다.
-
인증에 필요한 플러그인(
libcharon-extra-plugins)을 설치하고 인스턴스 ID 인증서의 위치로 구성 파일을 업데이트해야 합니다. -
strongSwan 클라이언트를 시작하여 보안 연결을 설정합니다.
-
파일 공유를 마운트합니다.