검색

2.3.9. AWS CLI를 사용하여 Ceph Object Gateway에 액세스

download PDF

S3 액세스를 위해 AWS CLI를 사용할 수 있습니다. 이 절차에서는 AWS CLI 및 MFA-Delete 활성화된 버킷에서 오브젝트 삭제와 같은 다양한 작업을 수행하는 몇 가지 예제 명령을 제공합니다.

사전 요구 사항

  • Ceph Object Gateway에 대한 사용자 수준 액세스.
  • 개발 워크스테이션에 대한 루트 수준 액세스.
  • Multi-factor authentication (MFA) TOTP 토큰은 radosgw-admin mfa create를 사용하여 생성되었습니다.

절차

  1. awscli 패키지를 설치합니다.

    [user@dev]$ pip3 install --user awscli
  2. AWS CLI를 사용하여 Ceph Object Storage에 액세스하도록 awscli 를 구성합니다.

    구문

    aws configure --profile=MY_PROFILE_NAME
    
    AWS Access Key ID [None]: MY_ACCESS_KEY
    AWS Secret Access Key [None]: MY_SECRET_KEY
    Default region name [None]:
    Default output format [None]:

    MY_PROFILE_NAME 을 이 프로필을 식별하는 데 사용할 이름으로 교체합니다. MY_ACCESS_KEYMY_SECRET_KEYRed Hat Ceph Storage 오브젝트 게이트웨이 구성 및 관리 가이드에서 언급한 대로 S3 액세스용 radosgw 사용자를 생성할 때 생성된 access_key secret_key 로 바꿉니다.

    예제

    [user@dev]$ aws configure --profile=ceph
    
    AWS Access Key ID [None]: 12345
    AWS Secret Access Key [None]: 67890
    Default region name [None]:
    Default output format [None]:

  3. Ceph Object Gateway 노드의 FQDN을 가리키는 별칭을 생성합니다.

    구문

    alias aws="aws --endpoint-url=http://FQDN_OF_GATEWAY_NODE:8080"

    FQDN_OF_GATEWAY_NODE 를 Ceph Object Gateway 노드의 FQDN으로 바꿉니다.

    예제

    [user@dev]$ alias aws="aws --endpoint-url=http://testclient.englab.pnq.redhat.com:8080"

  4. 새 버킷을 생성합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api create-bucket --bucket BUCKET_NAME

    MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다. BUCKET_NAME 을 새 버킷의 이름으로 바꿉니다.

    예제

    [user@dev]$ aws --profile=ceph s3api create-bucket --bucket mybucket

  5. 보유 버킷을 나열합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api list-buckets

    MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다.

    예제

    [user@dev]$ aws --profile=ceph s3api list-buckets
    {
        "Buckets": [
            {
                "Name": "mybucket",
                "CreationDate": "2021-08-31T16:46:15.257Z"
            }
        ],
        "Owner": {
            "DisplayName": "User",
            "ID": "user"
        }
    }

  6. MFA-Delete에 대한 버킷을 구성합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api put-bucket-versioning --bucket BUCKET_NAME --versioning-configuration '{"Status":"Enabled","MFADelete":"Enabled"}' --mfa 'TOTP_SERIAL TOTP_PIN'

  7. 버킷 버전 관리 상태의 MFA-Delete 상태를 확인합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api get-bucket-versioning --bucket BUCKET_NAME

    MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다. BUCKET_NAME 을 새 버킷 이름으로 교체합니다.

    예제

    [user@dev]$ aws --profile=ceph s3api get-bucket-versioning --bucket mybucket
    {
        "Status": "Enabled",
        "MFADelete": "Enabled"
    }

  8. MFA-Delete 활성화된 버킷에 오브젝트를 추가합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api put-object --bucket BUCKET_NAME --key OBJECT_KEY --body LOCAL_FILE

    • MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다.
    • BUCKET_NAME 을 새 버킷 이름으로 교체합니다.
    • OBJECT_KEY 를 버킷의 오브젝트를 고유하게 식별하는 이름으로 교체합니다.
    • LOCAL_FILE 을 업로드할 로컬 파일 이름으로 바꿉니다.

      예제

      [user@dev]$ aws --profile=ceph s3api put-object --bucket mybucket --key example --body testfile
      {
          "ETag": "\"5679b828547a4b44cfb24a23fd9bb9d5\"",
          "VersionId": "3VyyYPTEuIofdvMPWbr1znlOu7lJE3r"
      }

  9. 특정 오브젝트의 오브젝트 버전을 나열합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api list-object-versions --bucket BUCKET_NAME --key OBJEC_KEY]

    • MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다.
    • BUCKET_NAME 을 새 버킷 이름으로 교체합니다.
    • OBJECT_KEY 를 버킷의 오브젝트를 고유하게 식별하기 위해 지정된 이름으로 교체합니다.

      예제

      [user@dev]$ aws --profile=ceph s3api list-object-versions --bucket mybucket --key example
      {
          "IsTruncated": false,
          "KeyMarker": "example",
          "VersionIdMarker": "",
          "Versions": [
              {
                  "ETag": "\"5679b828547a4b44cfb24a23fd9bb9d5\"",
                  "Size": 196,
                  "StorageClass": "STANDARD",
                  "Key": "example",
                  "VersionId": "3VyyYPTEuIofdvMPWbr1znlOu7lJE3r",
                  "IsLatest": true,
                  "LastModified": "2021-08-31T17:48:45.484Z",
                  "Owner": {
                      "DisplayName": "User",
                      "ID": "user"
                  }
              }
          ],
          "Name": "mybucket",
          "Prefix": "",
          "MaxKeys": 1000,
          "EncodingType": "url"
      }

  10. MFA-Delete 활성화된 버킷에서 오브젝트를 삭제합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api delete-object --bucket BUCKET_NAME --key OBJECT_KEY --version-id VERSION_ID --mfa 'TOTP_SERIAL TOTP_PIN'

    • MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다.
    • BUCKET_NAME 을 삭제할 오브젝트가 포함된 버킷 이름으로 바꿉니다.
    • OBJECT_KEY 를 버킷에서 오브젝트를 고유하게 식별하는 이름으로 교체합니다.
    • VERSION_ID 를 삭제하려는 특정 버전의 버전ID로 바꿉니다.
    • TOTP_SERIAL 을 TOTP 토큰의 ID를 나타내는 문자열로 바꾸고 TOTP_PIN 을 MFA 인증 장치에 표시되는 현재 핀으로 바꿉니다.

      예제

      [user@dev]$ aws --profile=ceph s3api delete-object --bucket mybucket --key example --version-id 3VyyYPTEuIofdvMPWbr1znlOu7lJE3r --mfa 'MFAtest 420797'
      {
          "VersionId": "3VyyYPTEuIofdvMPWbr1znlOu7lJE3r"
      }

      MFA 토큰이 포함되어 있지 않으면 아래에 표시된 오류와 함께 요청이 실패합니다.

      예제

      [user@dev]$ aws --profile=ceph s3api delete-object --bucket mybucket --key example --version-id 3VyyYPTEuIofdvMPWbr1znlOu7lJE3r
      An error occurred (AccessDenied) when calling the DeleteObject operation: Unknown

  11. MFA-Delete 활성화된 버킷에서 오브젝트가 삭제되었는지 확인하기 위해 오브젝트 버전을 나열합니다.

    구문

    aws --profile=MY_PROFILE_NAME s3api list-object-versions --bucket BUCKET_NAME --key OBJECT_KEY

    • MY_PROFILE_NAME 을 이 프로필을 사용하도록 생성한 이름으로 교체합니다.
    • BUCKET_NAME 을 버킷 이름으로 교체합니다.
    • OBJECT_KEY 를 버킷에서 오브젝트를 고유하게 식별하는 이름으로 교체합니다.

      예제

      [user@dev]$ aws --profile=ceph s3api list-object-versions --bucket mybucket --key example
      {
          "IsTruncated": false,
          "KeyMarker": "example",
          "VersionIdMarker": "",
          "Name": "mybucket",
          "Prefix": "",
          "MaxKeys": 1000,
          "EncodingType": "url"
      }

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.