암호화
S3 Files는 저장 데이터와 전송 중 데이터를 보호할 수 있는 포괄적인 암호화 기능을 제공합니다.
저장 시 암호화
S3 버킷은 Amazon S3의 암호화 메커니즘을 사용하여 암호화됩니다. S3의 데이터 암호화에 대한 자세한 내용은 암호화를 사용한 데이터 보호를 참조하세요.
S3 Files는 서버 측 암호화를 사용하여 S3 파일 시스템의 저장 데이터를 암호화합니다. 서버 측 암호화는 데이터를 받는 애플리케이션 또는 서비스에 의해 해당 대상에서 데이터를 암호화하는 것입니다. S3 파일 시스템에서 데이터 및 메타데이터는 스토리지에 기록되기 전에 기본적으로 암호화되며 읽을 때 자동으로 해독됩니다. 이러한 프로세스는 S3 Files에 의해 투명하게 처리되기 때문에 애플리케이션을 수정할 필요가 없습니다. 파일 시스템의 모든 저장 데이터는 다음 방법 중 하나를 사용하여 AWS Key Management Service(KMS) 키를 사용하여 암호화됩니다.
(기본값) AWS 소유 KMS 키를 사용한 서버 측 암호화(SSE-KMS)
고객 관리형 KMS 키를 사용한 서버 측 암호화(SSE-KMS-CMK)
AWS KMS 키를 사용하면 추가 요금이 부과됩니다. 자세한 내용은 AWS Key Management Service 개발자 설명서의 AWS KMS 핵심 개념 및 AWS KMS 가격
AWS 소유 KMS 키를 사용한 서버 측 암호화(SSE-KMS)
이는 S3 파일 시스템에서 저장 데이터를 암호화하기 위한 기본 키입니다. AWS 소유 키는 AWS 서비스가 소유하고 관리하는 KMS 키 모음입니다. S3 Files는 AWS 소유 키를 사용할 때 S3 파일 시스템에서 저장 데이터 및 메타데이터의 암호화를 소유하고 관리합니다. AWS 소유 키에 대한 자세한 내용은 AWS KMS 키를 참조하세요.
고객 관리형 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS-CMK)
파일 시스템을 생성하는 동안 관리하는 AWS Key Management Service(AWS KMS) 키를 구성하도록 선택할 수 있습니다. S3 파일 시스템에서 SSE-KMS 암호화를 사용할 경우 AWS KMS 키는 파일 시스템과 동일한 리전에 있어야 합니다.
AWS KMS에 대한 S3 Files 키 정책
키 정책은 고객 관리형 키(CMK)에 대한 액세스를 제어하는 기본적인 방법입니다. 키 정책에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS 키 정책을 참조하세요. 다음 목록은 S3 Files에서 저장된 파일 시스템을 암호화하기 위해 지원하는 모든 AWS KMS 관련 권한을 설명합니다.
- kms:Encrypt
(선택 사항) 일반 텍스트를 사이퍼텍스트로 암호화합니다. 이 권한은 기본 키 정책에 포함되어 있습니다.
- kms:Decrypt
(필수) 사이퍼텍스트를 해독합니다. 사이퍼텍스트는 이전에 암호화한 일반 텍스트입니다. 이 권한은 기본 키 정책에 포함되어 있습니다.
- kms:ReEncrypt
(선택 사항) 클라이언트 측에서 데이터의 일반 텍스트를 노출하지 않으면서 새 고객 관리형 키로 서버 측의 데이터를 암호화합니다. 먼저 데이터를 복호화한 후 다시 암호화합니다. 이 권한은 기본 키 정책에 포함되어 있습니다.
- kms:GenerateDataKeyWithoutPlaintext
(필수 사항) 고객 관리형 키로 암호화된 데이터 암호화 키를 반환합니다. 이 권한은 kms:GenerateDataKey* 아래 기본 키 정책에 포함되어 있습니다.
- kms:CreateGrant
(필수 사항) 특정 조건 아래 키를 사용할 수 있는 사람을 지정할 수 있도록 키에 권한을 추가합니다. 이런 권한 부여는 키 정책을 대체하는 권한 메커니즘입니다. 권한 부여에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS에서의 권한 부여를 참조하세요. 이 권한은 기본 키 정책에 포함되어 있습니다.
- kms:DescribeKey
(필수 사항)지정한 고객 관리형 키에 대한 세부 정보를 제공합니다. 이 권한은 기본 키 정책에 포함되어 있습니다.
- kms:ListAliases
(선택 사항) 계정의 모든 키 별칭을 나열합니다. 콘솔을 사용해 암호화된 파일 시스템을 생성하는 경우, 이 권한이 KMS 키 선택 목록을 채웁니다. 최상의 사용자 경험을 제공하기 위해 이 권한을 사용하는 것이 좋습니다. 이 권한은 기본 키 정책에 포함되어 있습니다.
주요 상태 및 그 효과
KMS 키의 상태는 암호화된 파일 시스템에 대한 액세스에 직접적인 영향을 미칩니다.
- 활성화됨
일반 작업 - 파일 시스템에 대한 전체 읽기 및 쓰기 액세스입니다.
- 비활성화됨
일정 시간 이후 파일 시스템에 액세스할 수 없게 됩니다. 다시 활성화할 수 있습니다.
- 삭제 보류 중
파일 시스템에 액세스할 수 없게 됩니다. 삭제는 대기 기간 동안 취소할 수 있습니다. 키 삭제를 취소한 후에는 키를 활성화 상태로 이동해야 합니다.
- 삭제됨
파일 시스템에 영구적으로 액세스할 수 없습니다. 이 작업은 되돌릴 수 없습니다.
주의
파일 시스템에 사용되는 KMS 키를 비활성화 또는 삭제하거나 키에 대한 Amazon S3 Files 액세스를 취소하면 파일 시스템에 액세스할 수 없게 됩니다. 백업이 없는 경우 데이터가 손실될 수 있습니다. 암호화 키를 변경하기 전에 항상 적절한 백업 절차를 마련해야 합니다.
전송 중 암호화
S3 Files는 Transport Layer Security(TLS)를 사용하여 전송 중 데이터를 암호화해야 합니다. 탑재 도우미를 사용하여 파일 시스템을 탑재하면 클라이언트와 파일 시스템 간에 이동하는 모든 데이터가 TLS를 사용하여 암호화됩니다. 탑재 도우미는 efs-proxy 프로세스를 초기화하여 파일 시스템과의 보안 TLS 연결을 설정합니다. 또한 탑재 도우미는 탑재 상태를 모니터링하는 amazon-efs-mount-watchdog이라는 프로세스를 생성하고 S3 파일 시스템을 처음 탑재할 때 자동으로 시작됩니다. 이는 각 탑재의 efs-proxy 프로세스가 실행 중임을 보장하고 파일 시스템이 탑재 해제될 때 해당 프로세스를 중지합니다. 어떤 이유로 프로세스가 예기치 않게 종료된 경우, 이 감시 프로세스가 프로세스를 다시 시작합니다.
다음은 전송 중 TLS 암호화의 작동 방식을 설명합니다.
클라이언트와 파일 시스템 간에 보안 TLS 연결이 설정됨
모든 NFS 트래픽은 이 암호화된 연결을 통해 라우팅됩니다.
전송 전에 데이터가 암호화되고 수신 시 복호화됨
전송 중 데이터 암호화는 NFS 클라이언트 설정을 변경합니다. 능동적으로 탑재한 파일 시스템을 검사할 때, 다음 예와 같이 127.0.0.1이나 localhost에 탑재된 파일 시스템을 확인할 수 있습니다.
$ mount | column -t 127.0.0.1:/ on /home/ec2-user/s3files type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=20127,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)
항상 TLS를 사용하여 전송 중 데이터를 암호화하는 탑재 도우미를 사용하여 파일 시스템을 탑재합니다. 따라서 탑재하는 동안 NFS 클라이언트가 로컬 포트에 탑재되도록 재구성됩니다.