영역별 파일 공유를 위한 전송 중 암호화 설정하기

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으로 전송 중 암호화 구성을 시작하기 전에 다음과 같이 하세요

이 기능을 사용하려면 다음 요구 사항을 충족해야 합니다:

IBM Cloud® 파일 서비스는 컴퓨팅 호스트에서 수행되는 다음 작업을 자동화하기 위한 ‘마운트 헬퍼(Mount Helper)’ 유틸리티를 제공합니다.

동일한 존 내의 서로 다른 VPC에서 실행 중인 인스턴스에 파일 공유를 연결하려면 여러 개의 마운트 대상을 생성할 수 있습니다. VPC마다 하나의 마운트 대상을 생성할 수 있습니다.

인스턴스 ID 인증서 얻기

인증에 필요한 X.509 인증서를 받습니다. 동일한 인증서를 여러 지역에서 사용할 수 없습니다.

  1. 다음 명령은 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도 거부됩니다.

  2. 다음 명령을 사용하여 메타데이터 서비스에 대한 API 호출을 하기 전에 CSR을 포맷합니다.

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr
    
  3. 그런 다음 가상 서버 인스턴스 또는 베어메탈 서버에서 메타데이터 서비스를 사용하여 클라이언트 인증서를 만듭니다.

    1. PUT /instance_identity/v1/token (가상 서버 인스턴스) 또는 PUT /identity/v1/tokens (베어메탈 서버)로 요청하여 이후 호출에 사용할 토큰을 VPC ID 서비스로부터 받습니다. 자세한 정보는 다음 주제를 참조하십시오.
    2. 신원 토큰을 사용하여 신원 인증서를 만듭니다. 가상 서버 인스턴스의 경우 POST /instance_identity/v1/certificates, 베어메탈 서버의 경우 POST /identity/v1/certificates 으로 요청하세요. HTTP 권한 부여 헤더에 ID 토큰을 지정하고 인증서 서명 요청( csr 속성)과 유효 기간( expires_in 속성)을 지정합니다. 호출은 새 클라이언트 인증서와 중간 인증서 체인을 반환하여 클라이언트가 전송 중 IPsec 암호화를 사용하여 파일 공유에 액세스할 수 있도록 합니다. 자세한 정보는 다음 주제를 참조하십시오.
    3. -----BEGIN CERTIFICATE----------END CERTIFICATE----- 줄을 포함한 API 응답 출력을 복사하여 ca-cert.pem 과 같이 알아볼 수 있는 이름의 파일에 저장합니다. 생성하는 파일의 확장자가 .pem 인지 확인하세요.
  4. /etc/ipsec.d/cacerts 디렉터리에 인스턴스 ID 인증서를 복사합니다.

    sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts
    

호스트 구성 및 공유 마운트하기

  1. strongSwan 클라이언트를 설치하고 구성합니다. 마운트 대상 주소에 대해 IPsec 전송 모드를 구성해야 합니다.

  2. 인증에 필요한 플러그인(libcharon-extra-plugins)을 설치하고 인스턴스 ID 인증서의 위치로 구성 파일을 업데이트해야 합니다.

  3. strongSwan 클라이언트를 시작하여 보안 연결을 설정합니다.

  4. 파일 공유를 마운트합니다.