검색

8장. 보안

download PDF

스토리지 관리자는 스토리지 클러스터 환경을 보호하는 것이 중요합니다. Red Hat Ceph Storage는 Ceph Object Gateway 액세스 지점을 보호하는 암호화 및 키 관리를 제공합니다.

사전 요구 사항

  • 정상 실행 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway 소프트웨어 설치.

8.1. SSE(Server-Side Encryption)

Ceph Object Gateway는 S3 API(애플리케이션 프로그래밍 인터페이스)에 대해 업로드된 오브젝트의 서버 측 암호화를 지원합니다. 서버 측 암호화는 S3 클라이언트가 암호화되지 않은 형식으로 HTTP를 통해 데이터를 전송하고 Ceph Object Gateway는 해당 데이터를 Red Hat Ceph Storage 클러스터에 암호화된 형식으로 저장합니다.

참고
  • Red Hat은 SLO(Dynamic Large Object) 또는 DLO(Dynamic Large Object)의 S3 개체 암호화를 지원하지 않습니다.
  • 현재 SSE(Server-Side Encryption) 모드 중 어느 것도 CopyObject 에 대한 지원을 구현하지 않았습니다. 현재 개발 중입니다 [BZ#2149450].
중요

서버 측 암호화는 알려진 문제로 인해 다중 사이트 복제와 호환되지 않습니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. 자세한 내용은 알려진 문제-Mult-site Object Gateway 를 참조하십시오.

중요

암호화를 사용하려면 클라이언트 요청이 SSL 연결을 통해 요청을 보내야 합니다. Ceph Object Gateway에서 SSL을 사용하지 않는 한 Red Hat은 클라이언트의 S3 암호화를 지원하지 않습니다. 그러나 테스트를 위해 관리자는 ceph config set client.rgw 명령을 사용하여 rgw_crypt_require_ssl 구성 설정을 false 로 설정한 다음 Ceph Object Gateway 인스턴스를 다시 시작하여 테스트 중에 SSL을 비활성화할 수 있습니다.

프로덕션 환경에서는 SSL을 통해 암호화된 요청을 보내지 못할 수 있습니다. 이러한 경우 서버 측 암호화와 함께 HTTP를 사용하여 요청을 보냅니다.

서버 측 암호화를 사용하여 HTTP를 구성하는 방법에 대한 자세한 내용은 아래의 추가 리소스 섹션을 참조하십시오.

암호화 키 관리를 위한 세 가지 옵션이 있습니다.

고객 제공 키

S3 클라이언트는 고객 제공 키를 사용할 때 암호화된 데이터를 읽거나 쓰기 위한 각 요청과 함께 암호화 키를 전달합니다. 이러한 키를 관리하는 것은 고객의 책임이 있습니다. 고객은 각 오브젝트를 암호화하는 데 사용되는 Ceph Object Gateway를 기억할 수 있어야 합니다.

Ceph Object Gateway는 Amazon SSE-C 사양에 따라 S3 API에서 고객 제공 키 동작을 구현합니다.

고객이 키 관리를 처리하고 S3 클라이언트가 키를 Ceph Object Gateway에 전달하므로 Ceph Object Gateway는 이 암호화 모드를 지원하기 위해 특별한 구성이 필요하지 않습니다.

키 관리 서비스

키 관리 서비스를 사용하는 경우 보안 키 관리 서비스는 키를 저장하고 Ceph Object Gateway는 필요에 따라 데이터를 암호화하거나 암호 해독하는 요청을 처리하기 위해 해당 키를 검색합니다.

Ceph Object Gateway는 Amazon SSE-KMS 사양에 따라 S3 API에서 키 관리 서비스 동작을 구현합니다.

중요

현재 테스트된 유일한 키 관리 구현은 HashiCorp Vault 및 OpenStack Barbican입니다. 그러나 OpenStack Barbican은 기술 프리뷰이며 프로덕션 시스템에서 사용할 수 없습니다.

SSE-S3

SSE-S3을 사용하는 경우 키는 vault에 저장되지만 Ceph에서 자동으로 생성 및 삭제하고 데이터를 암호화하거나 암호 해독하기 위한 요청을 처리하는 데 필요한 대로 검색됩니다.

Ceph Object Gateway는 Amazon SSE-S3 사양에 따라 S3 API에서 SSE-S3 동작을 구현합니다.

8.1.1. 기존 S3 버킷의 기본 암호화 설정

스토리지 관리자는 기존 Amazon S3 버킷의 기본 암호화를 설정하여 모든 오브젝트가 버킷에 저장될 때 암호화되도록 할 수 있습니다. Bucket Encryption API를 사용하여 Amazon S3 관리 키(SSE-S3) 또는 Amazon KMS 고객 마스터 키(SSE-KMS)를 사용하여 서버 측 암호화를 지원할 수 있습니다.

참고

SSE-KMS는 Red Hat Ceph Storage 5.x가 아닌 Red Hat Ceph Storage 4.x에서만 지원됩니다.

PutBucketEncryption API를 사용하여 기존 Amazon S3 버킷의 기본 암호화를 관리할 수 있습니다. 이 버킷에 업로드된 모든 파일에는 버킷 수준에서 기본 암호화를 정의하여 이 암호화가 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway 설치
  • S3 버킷이 생성되었습니다.
  • 사용자 액세스 권한이 있는 S3 사용자
  • AWS CLI 패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.

프로세스

  1. 암호화 구성에 대한 JSON 파일을 생성합니다.

    예제

    [user@client ~]$ vi bucket-encryption.json

  2. 암호화 구성 규칙을 파일에 추가합니다.

    예제

    {
    	"Rules": [
            {
    	    "ApplyServerSideEncryptionByDefault": {
                        "SSEAlgorithm": "AES256"
    	    }
           }
        ]
    }

  3. 버킷의 기본 암호화를 설정합니다.

    구문

    aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api put-bucket-encryption --bucket pass:q[_BUCKET_NAME_] --server-side-encryption-configuration pass:q[_file://PATH_TO_BUCKET_ENCRYPTION_CONFIGURATION_FILE/BUCKET_ENCRYPTION_CONFIGURATION_FILE.json_]

    예제

    [user@client ~]$ aws --endpoint-url=http://host01:80 s3api put-bucket-encryption --bucket testbucket --server-side-encryption-configuration file://bucket-encryption.json

검증

  • 버킷의 버킷 암호화 구성을 검색합니다.

    구문

    aws --endpoint-url=pass:q[_RADOSGW_ENDPOINT_URL_]:pass:q[_PORT_] s3api get-bucket-encryption --bucket BUCKET_NAME

    예제

    [user@client ~]$  aws --profile ceph --endpoint=http://host01:80 s3api get-bucket-encryption --bucket testbucket
    
    {
        "ServerSideEncryptionConfiguration": {
            "Rules": [
                {
                    "ApplyServerSideEncryptionByDefault": {
                        "SSEAlgorithm": "AES256"
                    }
                }
            ]
        }
    }

참고

버킷에 기본 암호화 구성이 없는 경우 get-bucket-encryption 명령은 ServerSideEncryptionConfigurationNotFoundError 를 반환합니다.

8.1.2. 기본 버킷 암호화 삭제

s3api delete-bucket-encryption 명령을 사용하여 지정된 버킷의 기본 버킷 암호화를 삭제할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway 설치
  • S3 버킷이 생성되었습니다.
  • 사용자 액세스 권한이 있는 S3 사용자
  • AWS CLI 패키지가 설치된 Ceph Object Gateway 클라이언트에 액세스할 수 있습니다.

프로세스

  • 버킷 암호화 구성을 삭제합니다.

    구문

    aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api delete-bucket-encryption --bucket BUCKET_NAME

    예제

    [user@client ~]$ aws --endpoint-url=http://host01:80 s3api delete-bucket-encryption --bucket testbucket

검증

  • 버킷의 버킷 암호화 구성을 검색합니다.

    구문

    aws --endpoint-url=RADOSGW_ENDPOINT_URL:PORT s3api get-bucket-encryption --bucket BUCKET_NAME

    예제

    [user@client ~]$  aws --endpoint=http://host01:80 s3api get-bucket-encryption --bucket testbucket
    
    An error occurred (ServerSideEncryptionConfigurationNotFoundError) when calling the GetBucketEncryption operation:
    The server side encryption configuration was not found

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.