검색

9.4. 사용자 관리

download PDF

Ceph Object Storage 사용자 관리는 Ceph Storage 클러스터의 클라이언트 애플리케이션으로 Ceph Object Gateway가 아닌 Ceph Object Storage 서비스의 클라이언트 애플리케이션인 사용자를 나타냅니다. 클라이언트 애플리케이션이 Ceph Object Gateway 서비스와 상호 작용할 수 있도록 사용자, 키 및 시크릿을 생성해야 합니다.

다음 두 가지 사용자 유형이 있습니다.

  • 사용자: 'user'라는 용어는 S3 인터페이스의 사용자를 반영합니다.
  • 하위 사용자: 'subuser'라는 용어는 Swift 인터페이스의 사용자를 반영합니다. 하위 사용자는 사용자와 연결됩니다.

사용자와 하위 사용자를 생성, 수정, 보기, 일시 중단 및 제거할 수 있습니다.

중요

다중 사이트 배포에서 사용자를 관리하는 경우 ALWAYS는 master 영역 그룹의 마스터 영역 내의 Ceph Object Gateway 노드에서 radosgw-admin 명령을 실행하여 사용자가 다중 사이트 클러스터 전체에서 동기화되도록 합니다. 보조 영역 또는 보조 영역 그룹에서 다중 사이트 클러스터에서 사용자를 생성, 수정 또는 삭제하지 마십시오.

사용자 및 하위 사용자 ID를 만드는 것 외에도 사용자의 표시 이름과 이메일 주소를 추가할 수 있습니다. 키와 시크릿을 지정하거나 키와 시크릿을 자동으로 생성할 수 있습니다. 키를 생성하거나 지정할 때 사용자 ID는 S3 키 유형에 해당하고 하위 사용자 ID는 swift 키 유형에 해당합니다. Swift 키에는 읽기,쓰기,읽기 쓰기 전체 액세스 수준도 있습니다.

사용자 관리 명령줄 구문은 일반적으로 사용자 COMMAND USER_ID 패턴을 따릅니다. 여기서 USER_ID--uid= 옵션 뒤에 사용자의 ID(S3) 또는 --subuser= 옵션 뒤에 사용자 이름(Swift)이 옵니다.

구문

radosgw-admin user <create|modify|info|rm|suspend|enable|check|stats> <--uid=USER_ID|--subuser=SUB_USER_NAME> [other-options]

실행한 명령에 따라 추가 옵션이 필요할 수 있습니다.

9.4.1. 멀티 테넌시

Ceph Object Gateway는 S3 및 Swift API 모두에 대해 멀티 테넌시를 지원합니다. 여기서 각 사용자와 버킷은 "테넌트"에 있습니다. 멀티 테넌시는 여러 테넌트가 "test", "main" 등과 같은 공통 버킷 이름을 사용하는 경우 네임스페이스 충돌을 방지합니다.

각 사용자 및 버킷은 테넌트 아래에 있습니다. 이전 버전과의 호환성을 위해 빈 이름을 가진 "레거시" 테넌트가 추가됩니다. 특히 테넌트를 지정하지 않고 버킷을 참조할 때마다 Swift API는 "기존" 테넌트를 가정합니다. 기존 사용자는 또한 레거시 테넌트 아래에 저장되므로 이전 릴리스와 동일한 방식으로 버킷 및 개체에 액세스합니다.

이와 같은 테넌트에는 작업이 없습니다. 사용자는 필요에 따라 표시되고 사라집니다. 명시적 테넌트가 있는 사용자를 생성, 수정 및 제거하기 위해 추가 옵션 --tenant 가 제공되거나 radosgw-admin 명령의 매개변수에 "TENANT$USER" 구문이 사용됩니다.

S3에 대한 testx$tester 사용자를 생성하려면 다음 명령을 실행합니다.

예제

[root@host01 ~]# radosgw-admin --tenant testx --uid tester \
                    --display-name "Test User" --access_key TESTER \
                    --secret test123 user create

Swift에 대한 testx$tester 사용자를 만들려면 다음 명령 중 하나를 실행합니다.

예제

[root@host01 ~]# radosgw-admin --tenant testx --uid tester \
                    --display-name "Test User" --subuser tester:swift \
                    --key-type swift --access full subuser create

[root@host01 ~]# radosgw-admin key create --subuser 'testx$tester:swift' \
                    --key-type swift --secret test123

참고

명시적 테넌트를 사용하는 하위 사용자는 쉘에서 인용해야 했습니다.

9.4.2. 사용자 생성

user create 명령을 사용하여 S3-interface 사용자를 생성합니다. 사용자 ID와 표시 이름을 지정해야 합니다. 이메일 주소도 지정할 수 있습니다. 키 또는 시크릿을 지정하지 않으면 radosgw-admin 이 자동으로 생성됩니다. 그러나 생성된 키/시크릿 쌍을 사용하지 않으려면 키 및/또는 시크릿을 지정할 수 있습니다.

구문

radosgw-admin user create --uid=USER_ID \
[--key-type=KEY_TYPE] [--gen-access-key|--access-key=ACCESS_KEY]\
[--gen-secret | --secret=SECRET_KEY] \
[--email=EMAIL] --display-name=DISPLAY_NAME

예제

[root@host01 ~]# radosgw-admin user create --uid=janedoe --access-key=11BS02LGFB6AL6H1ADMW --secret=vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY --email=jane@example.com --display-name=Jane Doe

{ "user_id": "janedoe",
  "display_name": "Jane Doe",
  "email": "jane@example.com",
  "suspended": 0,
  "max_buckets": 1000,
  "auid": 0,
  "subusers": [],
  "keys": [
        { "user": "janedoe",
          "access_key": "11BS02LGFB6AL6H1ADMW",
          "secret_key": "vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY"}],
  "swift_keys": [],
  "caps": [],
  "op_mask": "read, write, delete",
  "default_placement": "",
  "placement_tags": [],
  "bucket_quota": { "enabled": false,
      "max_size_kb": -1,
      "max_objects": -1},
  "user_quota": { "enabled": false,
      "max_size_kb": -1,
      "max_objects": -1},
  "temp_url_keys": []}
중요

키 출력을 확인합니다. radosgw-admin 이 JSON 이스케이프(\) 문자를 생성하고 일부 클라이언트는 JSON 이스케이프 문자를 처리하는 방법을 모르는 경우가 있습니다. 조치에는 JSON 이스케이프 문자(\) 제거, 따옴표로 문자열 캡슐화, JSON 이스케이프 문자가 없는지 확인하기 위해 키를 다시 생성하거나 키와 시크릿을 수동으로 지정하는 작업이 포함됩니다.

9.4.3. 하위 사용자 생성

하위 사용자(Swift 인터페이스)를 생성하려면 사용자 ID(--uid=USERNAME), 하위 사용자 ID 및 하위 사용자의 액세스 수준을 지정해야 합니다. 키 또는 시크릿을 지정하지 않으면 radosgw-admin 이 자동으로 생성합니다. 그러나 생성된 키 및 시크릿 쌍을 사용하지 않으려면 키, 시크릿 또는 둘 다 지정할 수 있습니다.

참고

full 은 액세스 제어 정책도 포함되어 있으므로 readwrite 가 아닙니다.

구문

 radosgw-admin subuser create --uid=USER_ID --subuser=SUB_USER_ID --access=[ read | write | readwrite | full ]

예제

[root@host01 ~]# radosgw-admin subuser create --uid=janedoe --subuser=janedoe:swift --access=full

{ "user_id": "janedoe",
  "display_name": "Jane Doe",
  "email": "jane@example.com",
  "suspended": 0,
  "max_buckets": 1000,
  "auid": 0,
  "subusers": [
        { "id": "janedoe:swift",
          "permissions": "full-control"}],
  "keys": [
        { "user": "janedoe",
          "access_key": "11BS02LGFB6AL6H1ADMW",
          "secret_key": "vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY"}],
  "swift_keys": [],
  "caps": [],
  "op_mask": "read, write, delete",
  "default_placement": "",
  "placement_tags": [],
  "bucket_quota": { "enabled": false,
      "max_size_kb": -1,
      "max_objects": -1},
  "user_quota": { "enabled": false,
      "max_size_kb": -1,
      "max_objects": -1},
  "temp_url_keys": []}

9.4.4. 사용자 정보 가져오기

사용자에 대한 정보를 얻으려면 사용자 정보와 사용자 ID를 지정합니다(--uid=USERNAME).

예제

[root@host01 ~]# radosgw-admin user info --uid=janedoe

테넌트된 사용자에 대한 정보를 얻으려면 사용자 ID와 테넌트의 이름을 둘 다 지정합니다.

[root@host01 ~]# radosgw-admin user info --uid=janedoe --tenant=test

9.4.5. 사용자 정보 수정

사용자에 대한 정보를 수정하려면 사용자 ID(--uid=USERNAME)와 수정할 속성을 지정해야 합니다. 일반적인 수정 사항은 키와 시크릿, 이메일 주소, 표시 이름 및 액세스 수준에 대한 것입니다.

예제

[root@host01 ~]# radosgw-admin user modify --uid=janedoe --display-name="Jane E. Doe"

하위 사용자 값을 수정하려면 하위 사용자 수정 및 하위 사용자 ID를 지정합니다.

예제

[root@host01 ~]# radosgw-admin subuser modify --subuser=janedoe:swift --access=full

9.4.6. 사용자 활성화 및 일시 중단

사용자를 생성하면 기본적으로 사용자가 활성화됩니다. 그러나 사용자 권한을 중지하고 나중에 다시 활성화할 수 있습니다. 사용자를 일시 중지하려면 사용자 일시 중단 및 사용자 ID를 지정합니다.

[root@host01 ~]# radosgw-admin user suspend --uid=johndoe

일시 중지된 사용자를 다시 활성화하려면 사용자 활성화 및 사용자 ID를 지정합니다.

[root@host01 ~]# radosgw-admin user enable --uid=johndoe
참고

사용자를 비활성화하면 하위 사용자가 비활성화됩니다.

9.4.7. 사용자 제거

사용자를 제거하면 사용자와 하위 사용자가 시스템에서 제거됩니다. 그러나 원하는 경우에만 하위 사용자를 제거할 수 있습니다. 사용자(및 하위 사용자)를 제거하려면 사용자 rm 과 사용자 ID를 지정합니다.

구문

radosgw-admin user rm --uid=USER_ID[--purge-keys] [--purge-data]

예제

[ceph: root@host01 /]# radosgw-admin user rm --uid=johndoe --purge-data

하위 사용자만 제거하려면 하위 사용자 rm 과 하위 사용자 이름을 지정합니다.

예제

[ceph: root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift --purge-keys

옵션은 다음과 같습니다.

  • 데이터 제거: --purge-data 옵션은 UID와 관련된 모든 데이터를 제거합니다.
  • 제거 키: --purge-keys 옵션은 UID와 연결된 모든 키를 제거합니다.

9.4.8. 하위 사용자 제거

하위 사용자를 제거하면 Swift 인터페이스에 대한 액세스를 제거합니다. 사용자는 시스템에 남아 있습니다. 하위 사용자를 제거하려면 하위 사용자 rm과 하위 사용자 ID를 지정합니다.

구문

radosgw-admin subuser rm --subuser=SUB_USER_ID

예제

[root@host01 /]# radosgw-admin subuser rm --subuser=johndoe:swift

옵션은 다음과 같습니다.

  • 제거 키: --purge-keys 옵션은 UID와 연결된 모든 키를 제거합니다.

9.4.9. 사용자 이름 변경

사용자 이름을 변경하려면 radosgw-admin 사용자 rename 명령을 사용합니다. 이 명령이 사용하는 시간은 사용자가 보유한 버킷 및 오브젝트 수에 따라 다릅니다. 번호가 크면 screen 패키지에서 제공하는 Screen 유틸리티에서 명령을 사용하는 것이 좋습니다.

사전 요구 사항

  • 작동 중인 Ceph 클러스터입니다.
  • Ceph Object Gateway를 실행하는 호스트에 대한 루트 또는 sudo 액세스.
  • 설치된 Ceph Object Gateway입니다.

프로세스

  1. 사용자 이름을 변경합니다.

    구문

    radosgw-admin user rename --uid=CURRENT_USER_NAME --new-uid=NEW_USER_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin user rename --uid=user1 --new-uid=user2
    
    {
        "user_id": "user2",
        "display_name": "user 2",
        "email": "",
        "suspended": 0,
        "max_buckets": 1000,
        "auid": 0,
        "subusers": [],
        "keys": [
            {
                "user": "user2",
                "access_key": "59EKHI6AI9F8WOW8JQZJ",
                "secret_key": "XH0uY3rKCUcuL73X0ftjXbZqUbk0cavD11rD8MsA"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw"
    }

    사용자가 테넌트 내에 있는 경우 사용자 이름과 테넌트를 둘 다 지정합니다.

    구문

    radosgw-admin user rename --uid USER_NAME --new-uid NEW_USER_NAME --tenant TENANT

    예제

    [ceph: root@host01 /]# radosgw-admin user rename --uid=test$user1 --new-uid=test$user2 --tenant test
    
    1000 objects processed in tvtester1. Next marker 80_tVtester1_99
    2000 objects processed in tvtester1. Next marker 64_tVtester1_44
    3000 objects processed in tvtester1. Next marker 48_tVtester1_28
    4000 objects processed in tvtester1. Next marker 2_tVtester1_74
    5000 objects processed in tvtester1. Next marker 14_tVtester1_53
    6000 objects processed in tvtester1. Next marker 87_tVtester1_61
    7000 objects processed in tvtester1. Next marker 6_tVtester1_57
    8000 objects processed in tvtester1. Next marker 52_tVtester1_91
    9000 objects processed in tvtester1. Next marker 34_tVtester1_74
    9900 objects processed in tvtester1. Next marker 9_tVtester1_95
    1000 objects processed in tvtester2. Next marker 82_tVtester2_93
    2000 objects processed in tvtester2. Next marker 64_tVtester2_9
    3000 objects processed in tvtester2. Next marker 48_tVtester2_22
    4000 objects processed in tvtester2. Next marker 32_tVtester2_42
    5000 objects processed in tvtester2. Next marker 16_tVtester2_36
    6000 objects processed in tvtester2. Next marker 89_tVtester2_46
    7000 objects processed in tvtester2. Next marker 70_tVtester2_78
    8000 objects processed in tvtester2. Next marker 51_tVtester2_41
    9000 objects processed in tvtester2. Next marker 33_tVtester2_32
    9900 objects processed in tvtester2. Next marker 9_tVtester2_83
    {
        "user_id": "test$user2",
        "display_name": "User 2",
        "email": "",
        "suspended": 0,
        "max_buckets": 1000,
        "auid": 0,
        "subusers": [],
        "keys": [
            {
                "user": "test$user2",
                "access_key": "user2",
                "secret_key": "123456789"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw"
    }

  2. 사용자의 이름이 성공적으로 변경되었는지 확인합니다.

    구문

    radosgw-admin user info --uid=NEW_USER_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin user info --uid=user2

    사용자가 테넌트 내에 있는 경우 TENANT$USER_NAME 형식을 사용합니다.

    구문

    radosgw-admin user info --uid= TENANT$USER_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin user info --uid=test$user2

추가 리소스

  • screen(1) 매뉴얼 페이지

9.4.10. 키 생성

사용자의 키를 생성하려면 키 생성 을 지정해야 합니다. 사용자의 경우 사용자 ID 및 s3 키 유형을 지정합니다. 하위 사용자에 대한 키를 생성하려면 하위 사용자 ID와 swift 키 유형을 지정해야 합니다.

예제

[ceph: root@host01 /]# radosgw-admin key create --subuser=johndoe:swift --key-type=swift --gen-secret

{ "user_id": "johndoe",
  "rados_uid": 0,
  "display_name": "John Doe",
  "email": "john@example.com",
  "suspended": 0,
  "subusers": [
     { "id": "johndoe:swift",
       "permissions": "full-control"}],
  "keys": [
    { "user": "johndoe",
      "access_key": "QFAMEDSJP5DEKJO0DDXY",
      "secret_key": "iaSFLDVvDdQt6lkNzHyW4fPLZugBAI1g17LO0+87"}],
  "swift_keys": [
    { "user": "johndoe:swift",
      "secret_key": "E9T2rUZNu2gxUjcwUBO8n\/Ev4KX6\/GprEuH4qhu1"}]}

9.4.11. 액세스 키 추가 및 제거

사용자 및 하위 사용자는 S3 및 Swift 인터페이스를 사용하려면 액세스 키가 있어야 합니다. 사용자 또는 하위 사용자를 생성하고 액세스 키와 시크릿을 지정하지 않으면 키와 시크릿이 자동으로 생성됩니다. 키를 생성하고 액세스 키 및/또는 시크릿을 지정하거나 생성할 수 있습니다. 액세스 키와 시크릿을 제거할 수도 있습니다. 옵션은 다음과 같습니다.

  • --secret=SECRET_KEY 는 시크릿 키를 지정합니다(예: 수동으로 생성).
  • --Gen-access-key 는 임의의 액세스 키(기본적으로 S3 사용자용)를 생성합니다.
  • --Gen-secret 은 임의의 보안 키를 생성합니다.
  • --key-type=KEY_TYPE 은 키 유형을 지정합니다. 옵션은 swift 및 s3입니다.

키를 추가하려면 사용자를 지정합니다.

예제

[root@host01 ~]# radosgw-admin key create --uid=johndoe --key-type=s3 --gen-access-key --gen-secret

키와 시크릿을 지정할 수도 있습니다.

액세스 키를 제거하려면 사용자와 키를 지정해야 합니다.

  1. 특정 사용자의 액세스 키를 찾습니다.

    예제

    [root@host01 ~]# radosgw-admin user info --uid=johndoe

    액세스 키는 출력의 "access_key" 값입니다.

    예제

    [root@host01 ~]# radosgw-admin user info --uid=johndoe
    {
        "user_id": "johndoe",
        ...
        "keys": [
            {
                "user": "johndoe",
                "access_key": "0555b35654ad1656d804",
                "secret_key": "h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=="
            }
        ],
        ...
    }

  2. 액세스 키를 제거하려면 사용자 ID와 이전 단계의 액세스 키를 지정합니다.

    구문

    radosgw-admin key rm --uid=USER_ID --access-key ACCESS_KEY

    예제

    [root@host01 ~]# radosgw-admin key rm --uid=johndoe --access-key 0555b35654ad1656d804

9.4.12. 관리자 기능 추가 및 제거

Ceph Storage 클러스터는 사용자가 REST API를 통해 관리 기능을 실행할 수 있는 관리 API를 제공합니다. 기본적으로 사용자는 이 API에 액세스할 수 없습니다. 사용자가 관리 기능을 수행할 수 있도록 하려면 사용자에게 관리 기능을 제공합니다.

사용자에게 관리 기능을 추가하려면 다음 명령을 실행합니다.

구문

radosgw-admin caps add --uid=USER_ID--caps=CAPS

사용자, 버킷, 메타데이터 및 사용량(utilization)에 읽기, 쓰기 또는 모든 기능을 추가할 수 있습니다.

구문

--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"

예제

[root@host01 ~]# radosgw-admin caps add --uid=johndoe --caps="users=*"

사용자의 관리 기능을 제거하려면 다음 명령을 실행합니다.

예제

[root@host01 ~]# radosgw-admin caps remove --uid=johndoe --caps={caps}

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.