다른 계정의 파일 공유 공유 및 마운트하기

다중 계정 데이터 액세스를 위한 계정 간 권한 부여 기능이 포함된 액세스 공유를 사용하여, 여러 계정 간에 ‘ File Storage for VPC ’를 공유하세요.

또한 File Storage for VPC 를 IBM watsonx 서비스와 공유할 수도 있습니다.

계정 간 서비스 간 인증은 공유 소유자 계정과 접근자 계정 간의 신뢰 관계를 구축하는 데 사용됩니다. 또한, 사용자가 자신의 업무를 수행할 수 있도록 적절한 IAM 플랫폼 및 서비스 역할을 사용자에게 할당해야 합니다. 원본 공유와 동일한 계정 내에 액세스 공유를 생성하려면 사용자에게 ‘ 증권 중개인 ’ 및 ‘ 편집자 ’ 역할이 부여되어 있어야 합니다. 원본 공유와 다른 계정 내에 액세스 권한 공유를 생성하려면, 사용자에게 ‘원격 계정 액세스 권한 공유’‘편집자’ 역할이 부여되어 있어야 합니다. 자세한 정보는 IAM 역할 및 조치를 참조하십시오.

권한 설정이 완료되고 역할이 할당되면, 원본 공유에 바인딩된 액세스 공유를 생성할 수 있습니다. 액세서 공유는 원본 공유의 프로필, 크기, 저장 시 및 전송 중 암호화 유형을 상속받습니다. 원본 공유 계정은 ‘ NFS ’ 공유를 마운트할 수 있는 계정의 ID를 확인할 수 있습니다.

액세서 공유가 생성되면, 액세서 바인딩을 통해 원본 공유와 연결됩니다. 액세서 바인딩은 원본 공유가 소유한 하위 리소스이며, 원본 공유의 관리자만이 이를 조회하거나 삭제할 수 있습니다.

‘접근 권한이 있는 사용자’는 원본 공유의 속성을 편집할 수 없으며, 원본 공유를 삭제할 수도 없습니다. 액세서로서, 액세서 공유와 해당 공유에 대한 마운트 대상을 생성하여 공유를 마운트할 수 있습니다. 그러면 원본 공유 폴더의 데이터(해당 공유 폴더에 존재할 수 있는 스냅샷 포함)에 액세스하여 사용할 수 있습니다.

‘{: tag-deprecated} ’의 VPC 전체 액세스 모드가 [사용 중지된] 파일 공유의 경우, 다른 계정이나 서비스와 파일 공유를 공유하는 기능은 지원되지 않습니다.

전송 암호화 정책

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

구역 기반 파일 공유의 경우, 공유 소유자는 IPsec, 없음 또는 둘 다 중에서 암호화 모드를 선택할 수 있습니다.

  • IPsec이 적용되는 경우, 모든 액세서 마운트 대상은 IPsec을 사용해야 합니다.
  • 어느 것도 적용되지 않는 경우, 전송 중 암호화는 허용되지 않습니다.
  • 두 가지 모두 허용되는 경우, 액세서 계정은 그중 어느 것을 사용할지 선택할 수 있습니다.

사용 가능 여부 선택. 지역 파일 공유의 경우, 공유 소유자는 stunnel, 없음 또는 둘 다 중에서 전송 암호화 모드를 선택할 수 있습니다.

  • stunnel 사용이 강제되는 경우, 모든 액세서 마운트 대상은 stunnel을 사용해야 합니다.
  • 어느 것도 적용되지 않는 경우, 전송 중 암호화는 허용되지 않습니다.
  • 두 가지 모두 허용되는 경우, 액세서 계정은 그중 어느 것을 사용할지 선택할 수 있습니다.

계정 간 액세스 기능(2024년 6월 18일)이 출시되기 전에 생성된 파일 공유의 경우, 허용되는 전송 암호화 유형은 기존 마운트 대상에 따라 결정됩니다. 해당 날짜 이후에는 파일 공유를 생성할 때 허용되는 전송 중 암호화 유형을 지정해야 합니다. 하나의 파일 공유를 위해 생성된 모든 마운트 대상은 동일한 전송 암호화 유형을 가져야 합니다.

콘솔에서 액세스 공유 생성하기

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

마운트 대상 없이 콘솔에서 액세서 공유 생성하기

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

  2. 'VPC용 파일 스토리지 공유' 페이지에서 [생성 ] > [ 액세서 공유 생성 ]을 클릭합니다.

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

파일 공유를 생성하기 위한 설정값
필드
액세서 공유 이름 액세서 공유에 의미 있는 이름을 지정하십시오. 파일 공유 이름은 최대 63자의 소문자 영숫자로, 하이픈(-)을 포함할 수 있으며 소문자로 시작해야 합니다. 원하면 나중에 이름을 편집할 수 있습니다.
원격 공유 CRN 원본 파일 공유의 CRN을 입력하십시오.
  1. 작성을 클릭하십시오.

  2. 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를 사용할 수 있습니다. VPC도 ID나 이름을 사용하여 지정해야 합니다. 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_mode, encryption_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 파일의 provider 블록에서 해당 리전을 지정해야 합니다.

기본값인 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 디렉터리에서 해당 스냅샷에 액세스할 수 있습니다. 자세한 내용은 ‘스냅샷에서 파일 복원’을 참조하십시오.