이 기능이 지원되는 버전: Frontline Plus, Enterprise Plus, Education Standard 및 Education Plus 사용 중인 버전 비교하기
Gmail용 Google Workspace 클라이언트 측 암호화 (CSE)와 함께 S/MIME을 사용하려면 Gmail API를 사용 설정하고 해당 API에 전체 조직에 대한 액세스 권한을 부여해야 합니다. 그런 다음 각 사용자에 대해 Gmail API를 사용하여 S/MIME (Secure/Multipurpose Internet Mail Extensions) 인증서 (공개 키) 및 비공개 키 메타데이터를 Gmail에 업로드해야 합니다. 암호화 키 관리 서비스를 사용하는 경우 키 관리 서비스를 사용하여 사용자의 비공개 키 메타데이터를 암호화 (또는 '래핑')해야 합니다.
언제든지 새 서비스로 암호화된 새 S/MIME 인증서 및 비공개 키 메타데이터를 업로드하여 다른 키 관리 서비스로 전환할 수 있습니다.
요구사항
사용자의 S/MIME를 구성하는 단계를 완료하려면 다음이 필요합니다.
- 조직의 Google 계정에 대한 최고 관리자 권한(Gmail API에 도메인 전체 액세스 권한을 제공하기 위해 필요)
- 조직의 암호화 키 관리 서비스 도구 또는 지원팀에 대한 액세스 권한
- API 및 Python 스크립트를 사용해 본 경험
S/MIME에 대한 정보
S/MIME는 이메일 디지털 서명 및 암호화를 위해 널리 사용되는 업계 표준 프로토콜로, 메일의 무결성과 보안을 보장합니다. Gmail CSE는 S/MIME 3.2 IETF 표준에 따라 보안 MIME 데이터를 주고받습니다. S/MIME를 사용하려면 이메일 발신자와 수신자에게 Gmail이 신뢰하는 X.509 인증서가 있어야 합니다.
참고: 또는 CSE에서 제공하는 추가 암호화 레이어 및 개인 정보 보호 기능 없이 S/MIME를 사용할 수 있습니다. Google 서버에서 CSE를 사용하여 데이터를 복호화하지 못하도록 할 필요가 없는 경우에만 이 방법을 사용하세요. 자세한 내용은 메일 암호화에 호스팅된 S/MIME 사용 설정하기를 참고하세요.
시작하기 전에
다음 단계를 완료했는지 확인하세요.
- 키 관리 서비스 선택
- ID 공급업체 (IdP)에 연결합니다.
- 외부 키 관리 서비스 또는 하드웨어 키 암호화를 설정합니다.
조직 단위 또는 그룹에 키 관리 서비스 또는 하드웨어 키 암호화를 할당합니다.
여러 개의 키 관리 서비스를 사용하는 경우 적절한 조직 단위 또는 구성 적용 그룹에 할당되었는지 확인하세요.
Gmail API 설정하기
참고: API를 사용하려면 프로그래밍 관련 지식이 있어야 합니다.
1단계: Gmail API 사용 설정
- 새 GCP 프로젝트를 만듭니다. 자세한 내용은 프로젝트 만들기 및 관리를 참고하세요.
프로젝트 ID를 메모해 두세요. API에 도메인 전체 액세스 권한을 부여할 때 프로젝트 ID가 필요합니다.
- Google API 콘솔로 이동하여 새 프로젝트에 Gmail API를 사용 설정합니다. 자세한 내용은 Google Cloud 프로젝트에서 API 사용 설정하기를 참고하세요.
2단계: 도메인 전체 서비스 계정 만들기
- Google Cloud 콘솔에서 서비스 계정 페이지로 이동하여 도메인 전체 서비스 계정을 만듭니다. 자세한 내용은 서비스 계정 만들기 및 관리하기를 참고하세요.
- 서비스 계정 비공개 키를 만들고 키를 로컬 시스템에 JSON 파일(예:
svc_acct_creds.json)로 저장합니다. 이 파일에는 사용자의 Gmail을 설정할 때 사용할 사용자 인증 정보가 포함되어 있습니다. 자세한 내용은 서비스 계정 키 만들기 및 관리하기를 참고하세요.
3단계: Gmail API 도메인 전체 액세스 권한 부여하기
이 단계에서는 만든 서비스 계정을 사용하여 모든 사용자에게 Gmail API 수정 액세스 권한을 부여합니다.
- 도메인 전체 위임으로 API 액세스 제어하기 안내를 따릅니다.
- 메시지가 표시되면 다음을 입력합니다.
클라이언트 ID: 위의 2단계에서 만든 서비스 계정의 클라이언트 ID입니다.
OAuth 범위:
gmail.settings.readonly및 둘 중 하나gmail.settings.basic또는gmail.settings.sharing
사용자의 Gmail CSE 사용 설정하기
조직 단위 또는 그룹에 Gmail용 CSE를 사용 설정합니다. 자세한 내용은 클라이언트 측 암호화 사용 또는 사용 중지하기를 참고하세요.
참고: 조직 단위의 경우 기본적으로 모든 이메일 (작성, 답장, 전달)을 암호화하도록 설정할 수 있습니다. 사용자는 필요한 경우 암호화를 사용 중지할 수 있습니다. Assured Controls 또는 Assured Controls Plus 부가기능이 필요합니다.
사용자의 CSE S/MIME 인증서 설정하기
관리 콘솔에서 사용자의 Gmail API를 설정하고 Gmail CSE를 사용 설정한 후 사용자에게 CSE S/MIME 인증서 및 비공개 키 메타데이터를 설정할 수 있습니다.
1단계: S/MIME 인증서 및 비공개 키 메타데이터 준비하기
Gmail CSE를 사용하여 이메일을 보내거나 받을 각 사용자에 대해 다음을 수행합니다.
인증 기관 (CA)을 사용하여 인증서 체인이 포함된 S/MIME 공개 키/비공개 키 쌍을 생성합니다. S/MIME 리프 인증서에는 사용자의 기본 Gmail 주소가 주체 이름 또는 SAN 확장 주체로 포함되어야 합니다.
다음 중 하나를 수행할 수 있습니다.
- Google에서 신뢰하는 CA 루트 인증서 사용: 루트 인증서 목록은 S/MIME용 Gmail에서 신뢰할 수 있는 CA 인증서를 참고하세요.
- Google에서 신뢰하지 않는 CA 사용: 예를 들어 자체 CA를 사용하려는 경우 관리 콘솔에서 루트 인증서를 추가하면 됩니다. 자세한 내용은 S/MIME용 신뢰할 수 있는 인증서 관리하기를 참고하세요.
참고: Google에서 신뢰하지 않는 CA를 사용하고 사용자가 조직 외부에서 클라이언트 측 암호화 이메일을 보내는 경우에는 수신자도 해당 CA를 신뢰해야 합니다.
2단계: 인증서 및 비공개 키 메타데이터 래핑하기
키 암호화 서비스를 사용하여 S/MIME 비공개 키 메타데이터를 암호화하거나 '래핑'합니다. 이를 수행하려면 키 관리 서비스에 문의하거나 해당 서비스에서 제공하는 안내를 따르세요.
하드웨어 키 암호화를 사용하는 경우: 이 단계를 건너뛰고 하드웨어 키 암호화를 사용할 모든 사용자에 대해 비공개 키 메타데이터를 래핑하지 마세요. 이 경우 Gmail에 대한 사용자의 비공개 키가 스마트 카드에 있기 때문에 메타데이터를 래핑할 필요가 없습니다. Assured Controls 또는 Assured Controls Plus 부가기능이 필요합니다.
3단계: 사용자의 S/MIME 인증서 및 비공개 키 메타데이터를 Gmail에 업로드하기
Gmail API를 사용하여 각 사용자의 공개 키 S/MIME 인증서 체인과 비공개 키 메타데이터를 Gmail에 업로드한 후 ID를 만들어 사용자의 기본 키로 설정합니다.
참고: Gmail 클라이언트가 아닌 Gmail API를 사용하여 인증서를 업로드해야 합니다. 또한 Gmail용 CSE를 사용 설정하면 Gmail 클라이언트에서 인증서를 업로드하는 기능이 사용 중지됩니다.
인증을 위해 도메인 전체 서비스 계정을 만드는 경우 다운로드한 비공개 키 파일을 사용하여 각 사용자에 대해 다음 단계를 완료하세요.
- Gmail API 호출
keypairs.create를 사용하여 인증서 체인 및 비공개 키 메타데이터를 업로드합니다. - Gmail API 호출
identities.create를 사용하여 사용자의 기본 이메일 주소에 키 쌍을 사용 설정합니다.identities.create호출에는keypairs.create호출의 응답 본문에 반환되는 키 쌍 ID가 필요합니다.참고: 사용자의 이메일 주소에 키 쌍을 사용 설정하려면 다음 안내를 따르세요.
- 사용자 계정에서 이메일을 보내도록 승인된 CSE ID를 만듭니다.
- 발신 CSE 메일에 서명할 수 있는 비공개 키 메타데이터를 사용하도록 Gmail을 구성합니다.
- 조직의 다른 CSE 사용자가 해당 사용자에게 보낸 메시지를 암호화할 수 있도록 도메인 전체 공유 저장소에 인증서를 게시합니다.
이 단계를 완료하려면 Gmail API와 상호작용하는 스크립트를 사용합니다. 다음 중 하나를 수행할 수 있습니다.
- 직접 스크립트를 작성합니다.
- Google에서 제공하는 Python 샘플 스크립트를 사용합니다. 자세한 내용은 이 페이지 뒷부분의 Google의 Python 스크립트를 사용하여 Gmail에 사용자 인증서 및 래핑된 키 업로드하기를 참고하세요.
참고: 이 스크립트는 Gmail 콘텐츠를 암호화하기 위해 키 관리 서비스를 사용하는 사용자에게만 적용됩니다. 하드웨어 키 암호화를 사용할 사용자의 경우 다른 스크립트를 만들어 래핑 해제된 비공개 키 메타데이터를 업로드해야 합니다.
인증서를 업로드한 후 Gmail에서 인증서를 사용할 수 있게 되는 데 최대 24시간이 걸릴 수 있지만, 일반적으로 더 빨리 적용됩니다.
(선택사항) Google의 Python 샘플 스크립트를 사용하여 사용자의 인증서 및 래핑된 비공개 키를 Gmail에 업로드하기
위의 3단계를 완료하기 위해 직접 스크립트를 작성하는 대신 Google에서 제공하는 Python 스크립트를 사용할 수 있습니다.
참고: 이 스크립트는 Gmail API 도메인 전체 액세스 권한을 부여하는 데 사용할 수 있는 3가지 범위를 요청합니다 (이 페이지 상단에 나열됨). gmail.settings.readonly, gmail.settings.basic, gmail.settings.sharing. 스크립트를 사용하려면 세 가지 범위를 모두 사용 설정하거나 사용하지 않는 범위를 스크립트에서 삭제하면 됩니다.
스크립트 다운로드
Python 스크립트 패키지 (.zip)를 컴퓨터 (Mac, Linux, Windows)에 다운로드한 후 작업 디렉터리에 파일의 압축을 풉니다.
가상 환경 만들기 및 모듈 설치하기
작업 디렉터리에서 명령줄을 사용하여 다음 명령어를 입력합니다.
스크립트 호출
사용자의 인증서 및 키 업로드하기
1단계: 래핑된 모든 비공개 키를 저장할 디렉터리 만들기
- 예를 들어
$root/wrapped_keys디렉터리를 만들 수 있습니다. - 래핑된 각 비공개 키의 파일 이름은 확장자가
.wrap인 사용자의 전체 이메일 주소여야 합니다. 예를 들면$root/wrapped_keys/user1@example.com.wrap입니다. - 래핑된 비공개 키 파일에 두 개의 필수 필드가 있는 JSON 객체가 있는지 확인합니다.
2단계: 모든 인증서를 저장할 디렉터리 만들기
- 인증서는 P7 PEM 형식이어야 하므로
$root/p7pem_certs디렉터리를 만들 수 있습니다. - 인증서 파일에 루트 인증 기관 (CA)의 전체 체인이 포함되어 있는지 확인합니다.
- 각 인증서의 파일 이름은
.p7pem확장자가 포함된 사용자의 전체 이메일 주소여야 합니다. 예를 들면$root/p7pem_certs/user1@example.com.p7pem입니다.
P7B 파일이 있는 경우: 다음과 같은 openssl 주석을 사용하여 P7 PEM 형식으로 변환할 수 있습니다.
3단계: 사용자의 키 쌍 및 ID 업로드하기
이 단계에서는 위의 2단계: 서비스 계정 만들기에서 컴퓨터에 저장한 서비스 계정의 사용자 인증 정보가 포함된 JSON 파일이 필요합니다.
사용자의 키 쌍과 ID를 업로드하는 가장 쉬운 방법은 insert 명령어를 실행하는 것입니다. 각 명령어에는 인수가 있어야 합니다. 예를 들면 다음과 같습니다.
또는 각 사용자에 대해 다음을 수행할 수 있습니다.
insert_keypair를 실행하고 키 쌍 ID를 기록합니다.- 해당 키 쌍 ID를 사용하여
insert_identity를 실행합니다.
list_keypair 명령어를 실행하여 키 쌍 ID를 가져올 수도 있습니다.
4단계: 사용자에게 CSE 키 쌍 및 ID가 있는지 확인하기
각 사용자에 대해 다음 명령어를 실행하여 Gmail에 유효한 키 쌍과 ID가 있는지 확인합니다.
list_keypair
list_identity
Gmail CSE의 다른 키 관리 서비스로 전환하는 방법
Gmail CSE의 다른 키 관리 서비스로 전환하려면 위의 사용자에게 CSE S/MIME 인증서 설정하기에서 2단계와 3단계를 반복하고 새 키 관리 서비스를 사용하여 비공개 키를 래핑합니다.
참고: 사용자의 새 인증서를 업로드해도 콘텐츠가 새 키 관리 서비스로 이전되지 않습니다. 그러나 사용자는 이전 인증서로 암호화된 이메일 및 이전 키 관리 서비스로 래핑된 비공개 키 메타데이터에 계속 액세스할 수 있습니다.
메일을 클라이언트 측에서 암호화된 이메일로 Gmail에 이전하기
이제 Gmail CSE가 설정되었으므로 원하는 경우 메일을 가져올 수 있습니다. 자세한 내용은 메일을 클라이언트 측에서 암호화된 이메일로 Gmail에 이전하기를 참고하세요.