VPC: IBM Cloud Object Storage의 권한 부여된 IP 주소 설정

가상 프라이빗 클라우드

IBM Cloud Object Storage 버킷에 액세스할 수 있도록 VPC Cloud 서비스 엔드포인트 소스 IP 주소에 권한을 부여할 수 있습니다. 권한 부여된 IP 주소를 설정하면 해당 IP 주소에서만 버킷 데이터에 액세스할 수 있습니다(예: 앱 팟(Pod)에서).

최소 필수 권한
Red Hat OpenShift on IBM Cloud 서비스에 대한 관리자 서비스 액세스 역할.
IBM Cloud Object Storage 서비스에 대한 작성자 서비스 액세스 역할.
  1. 지시사항에 따라 ibmc Helm 플러그인을 설치하십시오. ibm-object-storage-plugin 을 설치하고 bucketAccessPolicy 옵션을 true 으로 설정해야 합니다.

  2. IBM Cloud Object Storage 인스턴스에 대해 하나의 Manager HMAC 서비스 인증 정보와 하나의 Writer HMAC 서비스 인증 정보를 작성하십시오.

  3. IBM Cloud Object Storage 관리자 인증 정보의 apikey를 Base64로 인코딩하십시오.

    echo -n "<cos_manager_apikey>" | base64
    
  4. IBM Cloud Object Storage 작성자 인증 정보의 access-keysecret-key를 Base64로 인코딩하십시오.

    echo -n "<cos_writer_access-key>" | base64
    echo -n "<cos_writer_secret-key>" | base64
    
  5. 인코딩한 값으로 시크릿 구성 파일을 작성하십시오. access-keysecret-key에 대해, 작성한 작성자 HMAC 인증 정보의 Base64 인코딩된 access-keysecret-key를 입력하십시오. res-conf-apikey의 경우, 관리자 HMAC 인증 정보의 base64 인코딩 apikey를 입력하십시오.

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
    type: ibm/ibmc-s3fs
    data:
      access-key: # Enter your base64 encoded COS Writer access-key
      secret-key: # Enter your base64 encoded COS Writer secret-key
      res-conf-apikey: # Enter your base64 encoded COS Manager api-key
    
  6. 클러스터의 시크릿을 작성하십시오.

    oc create -f secret.yaml
    
  7. 시크릿이 작성되었는지 확인하십시오.

    oc get secrets
    
  8. 작성한 시크릿을 사용하는 PVC를 작성하십시오. 데이터를 캐시하는 버킷을 자동으로 작성하기 위해 ibm.io/auto-create-bucket: "true"ibm.io/auto_cache: "true" 어노테이션을 설정하십시오.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <pvc_name>
      annotations:
        ibm.io/auto-create-bucket: "true"
        ibm.io/auto-delete-bucket: "false"
        ibm.io/auto_cache: "true"
        ibm.io/bucket: "<bucket_name>"
        ibm.io/secret-name: "<secret_name>"
        ibm.io/secret-namespace: "<secret-namespace>" # By default, the COS plug-in searches for your secret in the same namespace where you create the PVC. If you created your secret in a namespace other than the namespace where you want to create your PVC, enter the namespace where you created your secret.
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 8Gi
      storageClassName: ibmc-s3fs-standard-regional
      volumeMode: Filesystem
    
  9. VPC의 Cloud 서비스 엔드포인트 소스 IP 주소 목록을 가져오십시오.

    1. VPC 목록을 가져오십시오.

      ibmcloud is vpcs
      
    2. VPC 세부사항을 가져오고 Cloud Service Endpoint 소스 IP 주소를 기록해 두십시오.

      ibmcloud is vpc <vpc_ID>
      

      출력 예

      ...                                              
      Cloud Service Endpoint source IP addresses:    Zone         Address      
                                                  us-south-1   10.249.XXX.XX      
                                                  us-south-2   10.249.XXX.XX     
                                                  us-south-3   10.249.XXX.XX
      
  10. VPC의 Cloud 서비스 엔드포인트 소스 IP 주소가 IBM Cloud Object Storage 버킷에서 권한 부여되어 있는지 확인하십시오.

  11. IBM Cloud Object Storage 리소스 목록에서 IBM Cloud Object Storage 인스턴스를 선택하고 PVC에 지정된 버킷을 선택하십시오.

  12. 액세스 정책 > 권한 부여된 IP를 선택하고 VPC의 Cloud 서비스 엔드포인트 소스 IP 주소가 표시되어 있는지 확인하십시오.

콘솔에서는 버킷을 읽거나 버킷에 쓸 수 없습니다. 클러스터의 앱 팟(Pod)에서만 버킷에 액세스할 수 있습니다.

  1. 작성한 PVC를 참조하는 배치 YAML을 작성하십시오.

  2. 클러스터에서 앱을 작성하십시오.

oc create -f app.yaml
  1. 앱 팟(Pod)이 Running 상태인지 확인하십시오.
oc get pods | grep <app_name>
  1. 볼륨이 마운트되었으며 COS 버킷을 읽고 쓸 수 있는지 확인하십시오.

  2. 앱 팟(Pod)에 로그인하십시오.

    oc exec -it <pod_name> bash
    
  3. 앱 팟(Pod)에서 COS 버킷이 마운트되었으며 COS 버킷을 읽고 쓸 수 있는지 확인하십시오. 사용 가능한 디스크 공간을 표시하는 df 명령을 사용하여 시스템에서 사용 가능한 디스크 공간을 보십시오. COS 버킷은 s3fs 파일 시스템 유형 및 PVC에 지정한 마운트 경로를 표시합니다.

    df
    

    이 예제에서 COS 버킷은 /cos-vpc에 마운트됩니다.

    Filesystem        1K-blocks    Used    Available Use% Mounted on
    overlay           102048096 9071556     87786140  10% /
    tmpfs                 65536       0        65536   0% /dev
    tmpfs               7565792       0      7565792   0% /sys/fs/cgroup
    shm                   65536       0        65536   0% /dev/shm
    /dev/vda2         102048096 9071556     87786140  10% /etc/hosts
    s3fs           274877906944       0 274877906944   0% /cos-vpc
    tmpfs               7565792      44      7565748   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs               7565792       0      7565792   0% /proc/acpi
    tmpfs               7565792       0      7565792   0% /proc/scsi
    tmpfs               7565792       0      7565792   0% /sys/firmware
    
  4. 디렉토리를 COS 버킷이 마운트된 디렉토리로 변경하십시오. 이 예에서는 버킷이 /cos-vpc에 마운트됩니다.

    cd cos-vpc
    
  5. test.txt 파일을 COS 버킷에 작성하고 파일을 나열하여 파일이 작성되었는지 확인하십시오.

    touch test.txt && ls
    
  6. 파일을 제거하고 앱 팟(Pod)에서 로그아웃하십시오.

    rm test.txt && exit