검색

6.3. Ceph Object Gateway 및 OpenStack Keystone

download PDF

스토리지 관리자는 OpenStack의 Keystone 인증 서비스를 사용하여 Ceph Object Gateway를 통해 사용자를 인증할 수 있습니다. Ceph Object Gateway를 구성하려면 먼저 Keystone을 구성해야 합니다. 이렇게 하면 Swift 서비스가 활성화되고 Keystone 서비스가 Ceph Object Gateway를 가리킵니다. 다음으로 Keystone 서비스의 인증 요청을 수락하도록 Ceph Object Gateway를 구성해야 합니다.

사전 요구 사항

  • 실행 중인 Red Hat OpenStack Platform 환경.
  • 실행 중인 Red Hat Ceph Storage 환경.
  • 실행 중인 Ceph Object Gateway 환경.

6.3.1. Keystone 인증의 역할

OpenStack Keystone 서비스는 admin,member, reader 의 세 가지 역할을 제공합니다. 이러한 역할은 계층적입니다. admin 역할이 있는 사용자는 멤버 역할의 기능을 상속하고 member 역할이 있는 사용자는 reader 역할의 기능을 상속합니다.

참고

멤버 역할의 읽기 권한은 해당 역할이 속한 프로젝트의 오브젝트에만 적용됩니다.

admin

admin 역할은 특정 범위 내에서 가장 높은 수준의 권한 부여를 위해 예약되어 있습니다. 이는 일반적으로 리소스 또는 API에 대한 모든 생성, 읽기, 업데이트 또는 삭제 작업을 포함합니다.

멤버

member 역할은 기본적으로 직접 사용되지 않습니다. 배포 중에 유연성을 제공하고 관리자에 대한 책임을 줄이는 데 도움이 됩니다.

예를 들어 시스템 멤버가 서비스 및 엔드포인트를 업데이트할 수 있도록 기본 멤버 역할 및 간단한 정책 재정의를 사용하여 배포에 대한 정책을 재정의할 수 있습니다. 이는 adminreader 역할 간의 권한 부여 계층을 제공합니다.

reader

reader 역할은 범위에 관계없이 읽기 전용 작업에 대해 예약되어 있습니다.

주의

reader 를 사용하여 이미지 라이센스 키, 관리 이미지 데이터, 관리 볼륨 메타데이터, 애플리케이션 인증 정보 및 시크릿과 같은 중요한 정보에 액세스하는 경우 의도하지 않게 중요한 정보를 노출할 수 있습니다. 따라서 이러한 리소스를 노출하는 API는 reader 역할의 영향을 신중하게 고려하고 memberadmin 역할에 대한 액세스를 적절하게 지연해야 합니다.

6.3.2. Keystone 인증 및 Ceph Object Gateway

OpenStack Keystone을 사용하여 사용자를 인증하는 조직은 Ceph Object Gateway와 Keystone을 통합할 수 있습니다. Ceph Object Gateway를 사용하면 게이트웨이에서 Keystone 토큰을 수락하고 사용자를 인증하며 해당 Ceph Object Gateway 사용자를 만들 수 있습니다. Keystone에서 토큰을 검증할 때 게이트웨이는 인증된 사용자를 고려합니다.

이점

  • Keystone을 사용하여 사용자에게 admin,member, reader 역할 할당.
  • Ceph Object Gateway에서 자동 사용자 생성
  • Keystone으로 사용자 관리.
  • Ceph Object Gateway는 Keystone에서 취소된 토큰 목록을 주기적으로 쿼리합니다.

6.3.3. Swift 서비스 생성

Ceph Object Gateway를 구성하기 전에 Swift 서비스가 활성화되고 Ceph Object Gateway를 가리키도록 Keystone을 구성합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.
  • OpenStack 컨트롤러 노드에 대한 루트 수준 액세스.

프로세스

  • Swift 서비스를 생성합니다.

    [root@swift~]# openstack service create --name=swift --description="Swift Service" object-store

    서비스를 생성하면 서비스 설정이 에코됩니다.

    표 6.1. 예제
    필드현재의

    description

    Swift 서비스

    enabled

    True

    id

    37c4c0e79571404cb4644201a4a6e5ee

    name

    swift

    type

    object-store

6.3.4. Ceph Object Gateway 엔드포인트 설정

Swift 서비스를 생성한 후 서비스를 Ceph Object Gateway를 가리킵니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.
  • Red Hat OpenStack Platform 17.0 환경에서 실행 중인 Swift 서비스.

프로세스

  • Ceph Object Gateway를 가리키는 OpenStack 끝점을 만듭니다.

    구문

    openstack endpoint create --region REGION_NAME swift admin "URL"
    openstack endpoint create --region REGION_NAME swift public "URL"
    openstack endpoint create --region REGION_NAME swift internal "URL"

    REGION_NAME 을 게이트웨이 영역 그룹 이름 또는 지역 이름의 이름으로 바꿉니다. URL 을 Ceph Object Gateway에 적합한 URL로 바꿉니다.

    예제

    [root@osp ~]# openstack endpoint create --region us-west swift admin "http://radosgw.example.com:8080/swift/v1"
    [root@osp ~]# openstack endpoint create --region us-west swift public "http://radosgw.example.com:8080/swift/v1"
    [root@osp ~]# openstack endpoint create --region us-west swift internal "http://radosgw.example.com:8080/swift/v1"

    필드현재의

    adminurl

    http://radosgw.example.com:8080/swift/v1

    id

    e4249d2b60e44743a67b5e5b38c18dd3

    internalurl

    http://radosgw.example.com:8080/swift/v1

    publicurl

    http://radosgw.example.com:8080/swift/v1

    region

    us-west

    service_id

    37c4c0e79571404cb4644201a4a6e5ee

    service_name

    swift

    service_type

    object-store

    엔드포인트를 설정하면 서비스 엔드포인트 설정이 출력됩니다.

6.3.5. Openstack에서 Ceph Object Gateway 엔드포인트를 사용하고 있는지 확인

Swift 서비스를 생성하고 엔드포인트를 설정한 후 엔드포인트를 표시하여 모든 설정이 올바른지 확인합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.

프로세스

  1. Swift 서비스 아래의 엔드포인트를 나열합니다.

    [root@swift~]# openstack endpoint list --service=swift
  2. 이전 명령에 나열된 끝점에 대한 설정을 확인합니다.

    구문

    [root@swift~]# openstack endpoint show ENDPOINT_ID

    엔드포인트를 표시하면 엔드포인트 설정 및 서비스 설정이 출력됩니다.

    표 6.2. 예제
    필드현재의

    adminurl

    http://radosgw.example.com:8080/swift/v1

    enabled

    True

    id

    e4249d2b60e44743a67b5e5b38c18dd3

    internalurl

    http://radosgw.example.com:8080/swift/v1

    publicurl

    http://radosgw.example.com:8080/swift/v1

    region

    us-west

    service_id

    37c4c0e79571404cb4644201a4a6e5ee

    service_name

    swift

    service_type

    object-store

추가 리소스

  • 엔드포인트에 대한 자세한 내용은 Red Hat OpenStack 가이드의 끝점 표시를 참조하십시오.

6.3.6. Keystone SSL을 사용하도록 Ceph Object Gateway 구성

Keystone에서 사용하는 OpenSSL 인증서를 변환하는 경우 Keystone에서 사용할 Ceph Object Gateway가 구성됩니다. Ceph Object Gateway가 OpenStack의 Keystone 인증과 상호 작용하면 Keystone이 자체 서명된 SSL 인증서로 종료됩니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.

프로세스

  1. OpenSSL 인증서를 nss db 형식으로 변환합니다.

    예제

    [root@osp ~]# mkdir /var/ceph/nss
    
    [root@osp ~]# openssl x509 -in /etc/keystone/ssl/certs/ca.pem -pubkey | \
        certutil -d /var/ceph/nss -A -n ca -t "TCu,Cu,Tuw"
    
    [root@osp ~]# openssl x509 -in /etc/keystone/ssl/certs/signing_cert.pem -pubkey | \
        certutil -A -d /var/ceph/nss -n signing_cert -t "P,P,P"

  2. Ceph Object Gateway를 실행하는 노드에 Keystone의 SSL 인증서를 설치합니다. 또는 구성 가능한 rgw_keystone_verify_ssl 설정 값을 false 로 설정합니다.

    rgw_keystone_verify_sslfalse 로 설정하면 게이트웨이가 인증서 확인을 시도하지 않습니다.

6.3.7. Keystone 인증을 사용하도록 Ceph Object Gateway 구성

OpenStack의 Keystone 인증을 사용하도록 Red Hat Ceph Storage를 구성합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.
  • 프로덕션 환경에 대한 관리자 권한이 있어야 합니다.

프로세스

  1. 각 게이트웨이 인스턴스에 대해 다음을 수행합니다.

    1. nss_db_path 설정을 NSS 데이터베이스가 저장된 경로로 설정합니다.

      예제

      [ceph: root@host01 /]# ceph config set client.rgw nss_db_path "/var/lib/ceph/radosgw/ceph-rgw.rgw01/nss"

  2. 인증 인증 정보를 제공합니다.

    시스템 관리자가 OpenStack 서비스를 구성하는 방식과 유사하게 OpenStack ID API의 Keystone 서비스 테넌트, 사용자 및 암호를 구성할 수 있습니다. 사용자 이름과 암호를 제공하면 rgw_keystone_admin_token 설정에 공유 시크릿을 제공하지 않습니다.

    중요

    Red Hat은 프로덕션 환경에서 관리자 토큰을 통한 인증을 비활성화하는 것이 좋습니다. 서비스 테넌트 자격 증명에는 관리자 권한이 있어야 합니다.

    필요한 구성 옵션은 다음과 같습니다.

    구문

    ceph config set client.rgw rgw_keystone_verify_ssl TRUE/FALSE
    ceph config set client.rgw rgw_s3_auth_use_keystone TRUE/FALSE
    ceph config set client.rgw rgw_keystone_api_version API_VERSION
    ceph config set client.rgw rgw_keystone_url KEYSTONE_URL:ADMIN_PORT
    ceph config set client.rgw rgw_keystone_accepted_roles ACCEPTED_ROLES_
    ceph config set client.rgw rgw_keystone_accepted_admin_roles ACCEPTED_ADMIN_ROLES
    ceph config set client.rgw rgw_keystone_admin_domain default
    ceph config set client.rgw rgw_keystone_admin_project SERVICE_NAME
    ceph config set client.rgw rgw_keystone_admin_user KEYSTONE_TENANT_USER_NAME
    ceph config set client.rgw rgw_keystone_admin_password KEYSTONE_TENANT_USER_PASSWORD
    ceph config set client.rgw rgw_keystone_implicit_tenants KEYSTONE_IMPLICIT_TENANT_NAME
    ceph config set client.rgw rgw_swift_versioning_enabled TRUE/FALSE
    ceph config set client.rgw rgw_swift_enforce_content_length TRUE/FALSE
    ceph config set client.rgw rgw_swift_account_in_url TRUE/FALSE
    ceph config set client.rgw rgw_trust_forwarded_https TRUE/FALSE
    ceph config set client.rgw rgw_max_attr_name_len MAXIMUM_LENGTH_OF_METADATA_NAMES
    ceph config set client.rgw rgw_max_attrs_num_in_req MAXIMUM_NUMBER_OF_METADATA_ITEMS
    ceph config set client.rgw rgw_max_attr_size MAXIMUM_LENGTH_OF_METADATA_VALUE
    ceph config set client.rgw rgw_keystone_accepted_reader_roles SwiftSystemReader

    예제

    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_verify_ssl false
    [ceph: root@host01 /]# ceph config set client.rgw rgw_s3_auth_use_keystone true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_api_version 3
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_url http://<public Keystone endpoint>:5000/
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_accepted_roles 'member, Member, admin'
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_accepted_admin_roles 'ResellerAdmin, swiftoperator'
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_admin_domain default
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_admin_project service
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_admin_user swift
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_admin_password password
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_implicit_tenants true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_swift_versioning_enabled  true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_swift_enforce_content_length true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_swift_account_in_url true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_trust_forwarded_https true
    [ceph: root@host01 /]# ceph config set client.rgw rgw_max_attr_name_len 128
    [ceph: root@host01 /]# ceph config set client.rgw rgw_max_attrs_num_in_req 90
    [ceph: root@host01 /]# ceph config set client.rgw rgw_max_attr_size  1024
    [ceph: root@host01 /]# ceph config set client.rgw rgw_keystone_accepted_reader_roles SwiftSystemReader

    Ceph Object Gateway 사용자는 Keystone 테넌트에 매핑됩니다. Keystone 사용자에게는 단일 테넌트보다 다양한 역할이 할당될 수 있습니다. Ceph Object Gateway가 티켓을 받으면 테넌트와 해당 티켓에 할당된 사용자 역할을 확인하고 rgw_keystone_accepted_roles 구성 가능에 따라 요청을 수락하거나 거부합니다.

추가 리소스

6.3.8. Ceph Object Gateway 데몬 다시 시작

활성 구성 변경 사항은 Ceph Object Gateway를 다시 시작해야 합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph 소프트웨어 리포지토리에 액세스합니다.
  • 프로덕션 환경에 대한 관리자 권한입니다.

프로세스

  • Ceph 구성 파일을 저장하고 각 Ceph 노드에 배포하면 Ceph Object Gateway 인스턴스를 다시 시작합니다.

    참고

    NAME 열에 있는 ceph orch ps 명령의 출력을 사용하여 SERVICE_TYPE.ID 정보를 가져옵니다.

    1. 스토리지 클러스터의 개별 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.

      구문

      systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service

      예제

      [root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service

    2. 스토리지 클러스터의 모든 노드에서 Ceph Object Gateway를 다시 시작하려면 다음을 수행합니다.

      구문

      ceph orch restart SERVICE_TYPE

      예제

      [ceph: root@host01 /]# ceph orch restart rgw

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.