IBM Cloud Docs
다른 계정에서 파일 공유 공유 공유 및 마운트

다른 계정에서 파일 공유 공유 공유 및 마운트

여러 계정을 관리하는 스토리지 관리자는 계정 간에 NFS 파일 시스템을 공유할 수 있으므로 애플리케이션이 의존하는 데이터를 여러 시스템에서 사용할 수 있습니다. File Storage for VPC 를 IBM watsonx 서비스와 공유할 수도 있습니다.

교차 계정 서비스 대 서비스 권한 부여 는 공유 소유자와 액세서 계정 간의 신뢰를 설정하는 데 사용됩니다. 또한 사용자가 태스크를 수행할 수 있도록 적절한 IAM 플랫폼 및 서비스 역할을 사용자에게 지정해야 합니다. 원본 공유와 동일한 계정 내에 액세서 공유를 작성하려면 사용자에게 공유 브로커편집자 역할이 있어야 합니다. 원본 공유와 다른 계정 내에서 액세스 권한자 공유를 만들려면 사용자에게 원격 계정 액세스 권한자 공유편집자 역할이 있어야 합니다. 자세한 정보는 IAM 역할 및 조치를 참조하십시오.

권한 부여가 설정되고 역할이 지정된 후에는 원본 공유에 바인드되는 액세서 공유를 작성할 수 있습니다. 액세서 공유는 원래 공유에서 저장 및 전송 중인 프로파일, 크기, 암호화 유형을 상속합니다. 원본 공유의 계정은 공유 NFS 공유를 마운트할 수 있는 계정의 ID를 볼 수 있습니다.

접근자 공유가 생성되면 접근자 바인딩을 통해 원본 공유에 연결됩니다. 접근자 바인딩은 원본 공유가 소유하는 하위 리소스이며 원본 공유의 관리자만 이를 검색하거나 삭제할 수 있습니다.

액세서로서 원본 공유의 특성을 편집할 수 없으며 원본 공유를 삭제할 수 없습니다. 액세서는 액세서 공유 및 마운트 대상을 액세서 공유에 작성하여 공유를 마운트할 수 있습니다. 그러면 있을 수 있는 스냅샷을 포함하여 원본 공유의 데이터에 액세스하여 사용할 수 있습니다.

다른 계정이나 서비스와의 파일 공유는 VPC 전체 액세스 모드를 사용하는 파일 공유에서는 지원되지 않습니다.

전송 암호화 정책

공유 소유자는 허용된 전송 암호화 모드를 설정하여 전송 중 데이터 암호화 방식을 제어할 수 있습니다. 이 필드를 제공하지 않으면 시스템에서는 선택한 공유 프로필에 정의된 기본 허용 암호화 모드를 사용합니다. 액세스자가 마운트 대상을 만들 때 공유에 허용된 모드 중 하나와 일치하는 암호화 모드를 선택해야 합니다. 예를 들어, ipsec을 선택한 경우 일관성을 위해 해당 공유의 모든 마운트 대상은 ipsec을 사용해야 합니다.

영역별 파일 공유의 경우, 공유 소유자는 전송 암호화 모드를 ipsec, 없음 또는 둘 다 중에서 선택할 수 있습니다.

  • Ipsec을 적용하면 모든 접근자 마운트 대상은 ipsec을 사용해야 합니다.
  • 적용되지 않으면 전송 중 암호화가 허용되지 않습니다.
  • 둘 다 허용되는 경우 액세스 권한 계정은 어느 쪽을 사용할지 선택할 수 있습니다.

가용성 선택 지역 파일 공유의 경우 공유 소유자는 터널, 없음 또는 두 가지 전송 암호화 모드 중에서 선택할 수 있습니다.

  • 터널이 적용되면 모든 액세서리 마운트 대상은 터널을 사용해야 합니다.
  • 적용되지 않으면 전송 중 암호화가 허용되지 않습니다.
  • 둘 다 허용되는 경우 액세스 권한 계정은 어느 쪽을 사용할지 선택할 수 있습니다.

교차 계정 액세스 기능 출시(2024년 6월 18일) 이전에 생성된 파일 공유에는 기존 마운트 대상을 기반으로 하는 전송 암호화 유형이 허용됩니다. 이 날짜 이후에는 파일 공유를 만들 때 허용되는 전송 암호화 유형을 지정해야 합니다. 하나의 파일 공유에 대해 작성된 모든 마운트 대상에는 동일한 전송 암호화 유형이 있어야 합니다.

콘솔에서 액세스 권한 공유 만들기

IBM Cloud 콘솔에서 마운트 대상을 사용하거나 사용하지 않고 액세서 공유를 작성할 수 있습니다. 그러나 가상 서버 인스턴스에서 공유를 마운트하려면 마운트 대상을 작성해야 합니다.

콘솔에서 액세스 권한 공유 만들기

  1. IBM Cloud 콘솔에서 탐색 메뉴 아이콘 메뉴 아이콘 > 인프라 VPC 아이콘 > 스토리지 > 파일 스토리지 공유를 클릭합니다. 파일 공유 목록이 표시됩니다.

  2. VPC용 파일 스토리지 공유 페이지에서 만들기 > 액세스 권한 공유 만들기를 클릭합니다.

  3. 다음 정보를 입력하십시오.

    파일 공유를 만들기 위한 값
    필드
    액세서 공유 이름 액세스 권한 공유에 의미 있는 이름을 지정하세요. 파일 공유 이름은 최대 63자의 소문자 영숫자로, 하이픈(-)을 포함할 수 있으며 소문자로 시작해야 합니다. 원하면 나중에 이름을 편집할 수 있습니다.
    원격 공유 CRN 원본 파일 공유의 CRN을 입력하십시오.
  4. File Storage for VPC 페이지로 돌아가며, 여기서 메시지는 파일 공유가 프로비저닝 중임을 표시합니다. 트랜잭션이 완료되면 공유 상태가 활성으로 변경됩니다.

CLI에서 액세서 공유 작성

시작하기 전에

CLI를 사용하려면 먼저 IBM Cloud CLI 및 VPC CLI 플러그인을 설치해야 합니다. 자세한 정보는 CLI 전제조건을 참조하십시오.

CLI에서 마운트 대상 없이 액세서 공유 작성

ibmcloud is share-create 명령을 사용하여 오리진 공유의 CRN으로 선택한 구역에서 파일 공유를 프로비저닝할 수 있습니다.

ibmcloud is share-create --name my-accessor-share --origin-share CRN
ibmcloud is share-create --name my-accessor-share --origin-share crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed
Creating file share my-file-share under account Test Account as user test.user@ibm.com...

ID                               r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6
Name                             my-accessor-share
CRN                              crn:v1:bluemix:public:is:us-south-2:a/1234567::share:r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6
Lifecycle state                  stable
Access control mode              security_group
Accessor binding role            accessor
Allowed transit encryption modes ipsec,none
Origin share                     CRN                                                                                             Name            Remote account  Remote region
                                 crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed  my-origin-share a7654321        -
Zone                             us-south-2
Profile                          dp2
Size(GB)                         1000
IOPS                             1000
User Tags                        -
Encryption                       provider_managed
Mount Targets                    ID                          Name
                                 No mounted targets found.

Resource group                   ID                                 Name
                                 db8e8d865a83e0aae03f25a492c5b39e   Default

Created                          2024-06-25T22:15:15+00:00
Replication role                 none
Replication status               none
Replication status reasons       Status code   Status message
                                 -             -
Snapshot count                   0
Snapshot size                    0
Source snapshot                  -
Allowed Access Protocols         nfs4    
Availability Mode                zonal   
Bandwidth(Mbps)                  1    
Storage Generation               1  

액세서 공유는 원래 공유에서 프로파일, 크기, 저장 및 전송 중 암호화 유형의 특성을 상속합니다. 이 명령을 --origin-share 속성과 함께 --iops, --profile, --bandwidth, --replica-share 와 같은 다른 속성과 함께 사용하려고 하면 요청이 실패합니다.

명령 옵션에 대한 자세한 정보는 ibmcloud is share-create 의 내용을 참조하십시오.

CLI에서 접근자 공유에 대한 마운트 대상 만들기

파일 공유에 대한 마운트 대상을 작성하려면 share-mount-target-create 명령을 실행하십시오. 시작하기 전에 필요한 정보를 수집하십시오.

마운트 대상을 작성할 때 마운트 대상이 되는 파일 공유를 지정해야 합니다. 파일 공유의 이름 또는 ID를 사용할 수 있습니다. 해당 ID 또는 이름을 사용하여 VPC도 지정해야 합니다. VPC는 각 마운트 대상에 고유해야 합니다. 공유에 대한 액세스를 관리하는 데 사용할 보안 액세스 그룹도 지정해야 합니다. 마운트 대상과 연결하는 보안 그룹은 공유를 마운트하려는 모든 서버에서 NFS 포트의 TCP 프로토콜에 대한 인바운드 액세스를 허용해야 합니다.

마지막으로 마운트 대상에 대한 가상 네트워크 인터페이스 를 작성하는 데 필요한 옵션의 값을 지정해야 합니다. 적절한 CLI 명령을 사용하여 사용 가능한 서브넷, 서브넷의 예약된 IP 주소, 보안 그룹 을 나열하여 필요한 정보를 가져오십시오.

다음 예제는 보안 그룹 액세스 모드가 있는 파일 공유에 대한 가상 네트워크 인터페이스를 사용하여 마운트 대상을 작성합니다.

ibmcloud is share-mount-target-create my-accessor-share --subnet my-subnet --name my-cli-share-mount-target-1 --vni-name my-share-vni-1  --vni-sgs my-sg --resource-group-name Default --vpc my-vpc
Mounting target for share r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6 under account Test Account as user test.user@ibm.com...

ID                          r006-dd497561-c7c9-4dfb-af0a-c84eeee78b61
Name                        my-cli-share-mount-target-1  
VPC                         ID                                          Name      
                            r006-912b5ac5-4ed1-4b2a-8f09-5fd8d79f6042   my-vpc      

Access control mode         security_group   
Resource type               share_mount_target   
Virtual network interface   ID                                          Name             Protocol State Filtering Mode      
                            0727-709ccc60-0c43-45cb-87b6-7ea1e37ef423   my-share-vni-1   auto      

Lifecycle state             stable   
Mount path                  10.240.64.5:/2be3efe6_6dff_46ea_9cec_b397f3141faf   
Transit Encryption          none   
Created                     2024-09-16T21:27:09+00:00   

명령 옵션에 대한 자세한 정보는 ibmcloud is share-mount-target-create 의 내용을 참조하십시오.

CLI에서 마운트 대상으로 액세서 공유 작성

ibmcloud is share-create 명령을 사용하여 한 단계에서 하나 이상의 마운트 대상과 액세스 장치 공유를 작성할 수 있습니다. 구역 이름 및 오리진 공유의 CRN을 제공해야 합니다. 액세서 공유는 원래 공유에서 저장 및 전송 중인 프로파일, 크기, 암호화 유형을 상속합니다. 이름, 사용자 태그 및 초기 소유자 UID도 지정할 수 있습니다. 마운트 대상을 작성하려면 JSON 형식으로 마운트 대상 정보를 제공해야 합니다.

다음 예제는 마운트 대상을 사용하여 액세스 장치 공유를 작성하는 방법을 보여줍니다.

ibmcloud is share-create --name my-new-accessor-share --origin-share crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed --mount-targets '
>[{"name":"my-new-mount-target","virtual_network_interface": {"name":"my-vni","subnet": {"id":"r006-298acd6c-e71e-4204-a04f-fe4a4dd89805"}}}]'
Creating file share my-new-file-share under account Test Account as user test.user@ibm.com...

ID                               r006-925214bc-ded5-4626-9d8e-bc4e2e579232
Name                             my-new-accessor-share
CRN                              crn:v1:bluemix:public:is:us-south-2:a/a1234567::share:r006-925214bc-ded5-4626-9d8e-bc4e2e579232
Lifecycle state                  pending
Access control mode              security_group
Accessor binding role            accessor
Allowed transit encryption modes ipsec,none
Origin share                     CRN                                                                                             Name            Remote account  Remote region
                                 crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed  my-origin-share a7654321        -

Zone                             us-south-2
Profile                          dp2
Size(GB)                         500
IOPS                             2000
User Tags                        env:dev
Encryption                       provider_managed
Mount Targets                    ID                                          Name
                                 r006-ad313f6b-ccb5-4941-a5f7-0c953f1043df   my-new-mount-target

Resource group                   ID                                 Name
                                 db8e8d865a83e0aae03f25a492c5b39e   Default

Created                          2024-06-25T00:30:11+00:00
Replication role                 none
Replication status               none
Replication status reasons       Status code   Status message
                                 -             -
Snapshot count                   0
Snapshot size                    0
Source snapshot                  -
Allowed Access Protocols         nfs4    
Availability Mode                zonal   
Bandwidth(Mbps)                  1    
Storage Generation               1  

API를 사용하여 액세서 공유 작성

REST API를 직접 호출하여 파일 공유 및 마운트 대상을 작성할 수 있습니다.

시작하기 전에

API 환경을 설정합니다. IAM 토큰, API 엔드포인트 및 API 버전에 대한 변수를 정의하십시오. 지시사항은 API 및 CLI 환경 설정을 참조하십시오.

API를 사용하여 액세서 공유 작성

파일 공유를 작성하기 위한 POST /shares 요청을 작성하십시오.

다음 예제는 원본 공유의 CRN을 사용하여 액세서 공유를 작성하기 위한 요청을 보여줍니다. 액세서 공유는 원래 공유에서 프로파일, 구역, 크기, IOPS, 저장 및 전송 중 암호화 유형의 특성을 상속합니다. initial_owner,access_control_modeencryption_key 의 값도 origin_share에서 상속됩니다.

curl -X POST \
"$vpc_api_endpoint/v1/shares?version=2024-06-25&generation=2"\
  -H "Authorization: Bearer $iam_token" \
  -d '{
  "name": "my-accessor-share",
  "user_tags": ["string"],
  "origin_share": {"crn": "crn:v1:bluemix:public:is:us-south-1:a/a1234567::share:0fe9e5d8-0a4d-4818-96ec-e99708644a58"}
}

성공적인 응답은 다음 예제와 유사합니다.

  {
  "access_control_mode": "security-group",
  "allowed_transit_encryption_modes": ["none", "ipsec"],
  "created_at": "2024-05-06T23:31:59Z",
  "crn": "crn:[...]",
  "encryption": "provider_managed",
  "href": "https://us-south.iaas.cloud.ibm.com/v1/shares/ff859972-8c39-4528-91df-eb9160eae918",
  "id": "ff859972-8c39-4528-91df-eb9160eae918",
  "iops": 48000,
  "lifecycle_state": "stable",
  "name": "my-accessor-share",
  "profile": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles/dp2",
    "name": "dp2",
    "resource_type": "share_profile"
    },
  "replication_role": "none",
  "replication_status": "none",
  "replication_status_reasons": [],
  "resource_group": {
    "crn": "crn:[...]",
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/6b45d0aa-e0a6-478b-a5d9-bb45b106676d",
    "id": "6b45d0aa-e0a6-478b-a5d9-bb45b106676d",
    "name": "Default"
    },
  "resource_type": "share",
  "size": 4800,
  "snapshot_count": 10,
  "snapshot_size": 10,
  "user_tags": ["string"],
  "zone": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/regions/us-south/zones/us-south-1",
    "name": "us-south-1"}
  }

API를 사용하여 파일 공유를 위한 마운트 대상 작성

공유의 액세스 제어 모드가 security_group 인 경우 가상 네트워크 인터페이스 를 사용하여 마운트 대상을 작성해야 합니다. 공유의 허용된 전송 암호화 모드가 ipsec 인 경우 마운트 대상의 transit_encryption 값도 ipsec 여야 합니다.

POST /shares/{share_id}/mount_targets 요청을 작성하고 마운트 대상 네트워크 인터페이스에 대한 서브넷 및 보안 그룹을 지정하십시오. 마운트 대상과 연결하는 보안 그룹은 공유를 마운트하려는 모든 서버에서 NFS 포트의 TCP 프로토콜에 대한 인바운드 액세스를 허용해야 합니다.

이 예제는 ID로 식별되는 기존 액세서 공유에 마운트 대상을 추가하고 네트워크 인터페이스를 작성하기 위한 서브넷 및 보안 그룹을 제공합니다.

 curl -X POST "$vpc_api_endpoint/v1/shares/r006-201487a2-cf35-4b2a-a4fe-f480803e1e80/mount_targets/?version=2023-07-18&generation=2"\
 -d '{
     "virtual_network_interface": {
        "subnet": {"id": "1a0b3d75-8a62-4c78-9263-f9bcd25a8759"},
        "security_groups": [{"id": "b2599112-7027-480e-ad1b-fd917d2fcb84"}]
     },
     "transit_encryption": "user_managed"
}'

Terraform을 사용하여 파일 공유 및 마운트 대상 작성

Terraform을 사용하려면 Terraform CLI를 다운로드하고 IBM Cloud® 제공자 플러그인을 구성하십시오. 자세한 정보는 Terraform 시작하기 를 참조하십시오.

VPC 인프라 서비스는 기본적으로 us-south 를 대상으로 하는 특정 지역 엔드포인트를 사용합니다. VPC가 다른 지역에서 작성되는 경우 provider.tf 파일의 제공자 블록에서 적절한 지역을 대상으로 지정해야 합니다.

기본 us-south 이외의 지역을 대상으로 지정하는 다음 예제를 참조하십시오.

provider "ibm" {
   region = "eu-de"
}

Terraform을 사용하여 액세서 공유 작성

액세서 공유를 작성하려면 ibm_is_share 자원을 사용하십시오. 액세서 공유는 원래 공유에서 프로파일, 크기, 저장 및 전송 중 암호화 유형의 특성을 상속합니다.

resource "ibm_is_share" "example-origin" {
  allowed_transit_encryption_modes = ["ipsec", "none"]
  access_control_mode = "security_group"
  name    = "my-share"
  size    = 200
  profile = "dp2"
  zone    = "au-syd-2"
}
resource "ibm_is_share" "example-accessor" {
  origin_share {
    crn   = ibm_is_share.example-origin.crn
  }
  name  = "my-accessor-share-1"
}

Terraform을 사용하여 마운트 대상 작성

파일 공유에 대한 마운트 대상을 작성하려면 ibm_is_share_mount_target 자원을 사용하십시오. 다음 예제는 security_group 액세스 제어 모드를 사용하여 마운트 대상을 작성합니다. 먼저 마운트 대상이 만들어질 공유를 지정합니다. 그런 다음 마운트 대상의 이름을 지정하고 IP 주소 및 이름을 제공하여 새 가상 네트워크 인터페이스를 정의합니다. 또한 마운트 대상이 연관된 파일 공유에 대한 액세스를 관리하는 데 사용할 보안 그룹을 지정해야 합니다. 마운트 대상과 연결하는 보안 그룹은 공유를 마운트하려는 모든 서버에서 NFS 포트의 TCP 프로토콜에 대한 인바운드 액세스를 허용해야 합니다. auto_delete = true 속성은 마운트 대상이 삭제되는 경우 가상 네트워크 인터페이스가 삭제됨을 의미합니다.

resource "ibm_is_share_mount_target" "zonal-mount-target-with-vni" {
     access_protocol    = "nfs4"
     name               = "my-zonal-mount-target"
     share              = ibm_is_share.is_share.ID
     security_groups    = [<security_group_ids>]
     transit_encryption = "ipsec"
     virtual_network_interface {
       name             = "my-example-vni"
       primary_ip {
          address       = “10.240.64.5”
          auto_delete   = true
          name          = "my-example-pip"
         }
     }    
   }

이전 예제에서는 영역별 파일 공유에 대해 전송 중 암호화를 사용하도록 설정했습니다. 레지널 공유에 대한 전송 암호화로 데이터를 보호하려면 transit_encryption 인수를 stunnel 으로 지정합니다.

인수 및 속성에 대한 자세한 정보는 ibm_is_share_mount_target을 참조하십시오.

보안 그룹 액세스 모드를 사용하여 마운트 대상으로 액세서 공유 작성

파일 공유와 마운트 대상을 별도로 만들 필요가 없습니다. VPC내에서 보안 그룹 기반 인증을 허용하는 마운트 대상과 파일 공유를 작성하려면 ibm_is_share 리소스를 사용하십시오. 액세서 공유는 원래 공유에서 프로파일, 크기, 저장 및 전송 중 암호화 유형의 특성을 상속합니다. 액세스 제어 모드를 security_group 로 지정하고 이름, 가상 네트워크 인터페이스의 세부사항 (예: 이름, 서브넷 또는 IP 주소) 을 제공하여 마운트 대상을 정의하십시오. 또한 파일 공유에 대한 액세스를 제어하는 데 사용할 보안 그룹을 지정하십시오. 마운트 대상과 연결하는 보안 그룹은 공유를 마운트하려는 모든 서버에서 NFS 포트의 TCP 프로토콜에 대한 인바운드 액세스를 허용해야 합니다.

resource "ibm_is_share" "share4" {
   zone                   = "us-south-2"
   name                   = "my-share4"
   origin_share {
       id                 = ibm_is_share.example-origin.id
       }
   access_control_mode    = "security_group"
   mount_target {
       access_protocol    = "nfs4"
       name               = "my-mount-target"
       security_groups    = [<security_group_ids>]
       transit_encryption = "ipsec"
       virtual_network_interface {
           primary_ip {
              address.    = "10.240.64.5"
              auto_delete = true
              name        = "my-example-pip"
           }
    }
   }
}

인수 및 속성에 대한 자세한 정보는 ibm_is_share를 참조하십시오.

다음 단계

파일 공유를 마운트하십시오. 마운트는 서버의 운영 체제가 사용자가 서버의 파일 시스템을 통해 액세스할 수 있도록 스토리지 디바이스의 파일 및 디렉토리를 작성하는 프로세스입니다. 자세한 정보는 다음 주제를 참조하십시오.

Accessor 공유의 스냅샷 생성은 지원되지 않습니다. 그러나 원본 공유에 스냅샷이 있는 경우 .snapshot 디렉터리에서 해당 스냅샷에 액세스할 수 있습니다. 자세한 내용은 스냅샷에서 파일 복원하기를 참조하세요.