[IBMCloud] アカウント間のNFSファイル共有

## 目的
新しくリリースされたアカウント間のNFSファイル共有機能について検証してみた
公式ドキュメントだけだとわかりにくい部分もあるため、スクリーンショットと一緒に記載

## 概要
適切な権限を付与することで複数のアカウント間でNFS ファイル・システムが共有可能となり利便性が向上した

IBMCloud Docsの説明は下記
 [別のアカウントからのファイル共有の共有とマウント](https://cloud.ibm.com/docs/vpc?topic=vpc-file-storage-accessor-create&interface=ui)
 [アカウントとサービス間でのファイル共有データの共有](https://cloud.ibm.com/docs/vpc?topic=vpc-file-storage-vpc-about#fs-cross-account-mount)

 [作業の流れ]
①共有元でサービス間許可の作成（共有先から共有元へのアクセス権限許可設定）
②共有元でNFS共有の作成
③共有先でNFSファイルマウント(マウント権限がない場合は追加が必要）

 ## サービス間許可の作成
 共有ファイルを所有するアカウント（共有元親アカウント）と、それらのファイルにアクセスするアクセサー（共有先子アカウント）間のアクセス許可設定を実施する
 [UI でのアカウント間アクセスのためのサービス間許可の作成](https://cloud.ibm.com/docs/vpc?topic=vpc-file-s2s-auth&interface=ui#file-s2s-auth-xaccount-ui)

 ### 共有先アクセサーのアカウントIDの確認
 :::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::
 [IBMCloud Portal] -> [管理] -> [アカウント設定]
 下記図に記載している緑色の部分が今回必要にあるアカウントID
 ![貼り付けた画像_2024_07_02_9_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/bcf1bd5b-7185-8c56-3be9-6d7d628a8d39.png)

### アカウント間のサービス間許可の設定 
:::note info
ファイル共有元での作業
:::
 [IBMCloud Portal] -> [管理] -> [アクセス(IAM)]を選択
 ![貼り付けた画像_2024_07_02_9_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/69ea46a3-217b-0122-17bd-d552edc3045d.png)

アクセスの管理の[許可]を選択
![貼り付けた画像_2024_07_02_9_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/af59c08a-a831-fdfb-30fb-964b0558043d.png)

 [作成]を選択
 ![貼り付けた画像_2024_07_02_9_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/e9c8cbf8-10f2-2f45-08cf-1048393ef750.png)

 [Specific account] -> [アカウントID記載] -> [次へ]
 ![貼り付けた画像_2024_07_02_9_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/80bdb92f-fb09-b536-1d1b-ead66e21bdb6.png)

サービスで[VPC Infrastructure Services]を検索して選択し、[次へ]
![貼り付けた画像_2024_07_02_9_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/fcee6ae7-f2a8-00e6-6901-6d21a4c6203a.png)

リソースで[特定のリソース] -> [リソースタイプ] -> [File Storage for VPC]を選択し、[次へ]
![貼り付けた画像_2024_07_02_10_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/e5d8b5cc-63d3-bb8e-ecbf-883ba111aa9d.png)


サービスで[VPC Infrastructure Services]を選択し、[次へ]
![貼り付けた画像_2024_07_02_10_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/1ffe4d6b-d992-375c-c339-05f2e2181a7e.png)

リソースで[特定のリソース] -> [リソースタイプ] -> [File Storage for VPC]を選択し、[次へ]
![貼り付けた画像_2024_07_02_9_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/b020055a-f30f-635c-1fa4-ba4e3e41d6e8.png)

役割でサービスアクセス[Share Broker]にチェックをいれ、[許可]
![貼り付けた画像_2024_07_02_10_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/6cd15c4a-cea3-fa82-880a-98763babdc06.png)

## 共有の作成
:::note info
ファイル共有元での作業
:::

はじめに、共有元のNFSを作成する

[ファイルストレージ共有] -> [作成] -> [ファイル共有の作成]を選択
![貼り付けた画像_2024_07_02_11_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/20ff9c8b-7aaa-724d-6c3d-51cea904a7e7.png)

必要な情報を入れて共有を作成

### NFSのCRNの確認方法
:::note info
ファイル共有元での作業
:::

作成したファイル共有のページから、CRNの共有名を確認
![貼り付けた画像_2024_07_02_10_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/4cf349fe-09f2-27e4-48cb-dd6a66c1199c.png)

CRNが確認できる
![貼り付けた画像_2024_07_02_10_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/dcb073cb-7ba6-187b-c729-3fda77fdd12c.png)

### アクセサーアカウント(共有先子アカウント)のIAM権限追加
:::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::
共有をマウントするアカウントで権限を付与する
サービスにて[VPC Infrastructure Services]を選択し、[次へ]
![貼り付けた画像_2024_07_02_11_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/5fb97e14-b02b-8fb9-79a6-b91729a68a2b.png)

リソースにて[特定のリソース] -> [リソースタイプ] -> [File Storage for VPC] -> [次へ]を選択
![貼り付けた画像_2024_07_02_11_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/c5524d49-56a4-81a5-fa3f-2d1fcc16f99b.png)

役割とアクションにて、[Share Remote Account Accessor]と[エディター]を選択し、[次へ]を選択
![貼り付けた画像_2024_07_02_11_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/8279f808-1701-7a01-517f-9e417a83107d.png)

サマリー画面にて、[割り当て]を選択
![貼り付けた画像_2024_07_02_11_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/b717fe72-6176-5098-3d1c-642dcbfbcd95.png)


### アクセサーアカウント(共有先子アカウント)からのNFSファイルマウント 
:::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::
共有先のアカウントでNFSファイルマウントを実施する

[VPCインフラクトラクチャー] -> [ファイル・ストレージ共有]を選択
![貼り付けた画像_2024_07_02_10_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/592bd0aa-3eb7-884c-8bc2-b19ec9fdb846.png)

[作成] -> [Create accessor share]を選択
![貼り付けた画像_2024_07_02_13_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/fee8e1c1-b5c0-74f3-1e27-25e99a0e21ce.png)


Accessor share name: アクセサー共有の分かりやすい名前を指定
Remote Share CRN: NFSのCRNの記載

![貼り付けた画像_2024_07_02_10_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/8e392146-e1bf-09c5-5021-ae1b58692343.png)

共有が作成される
![貼り付けた画像_2024_07_02_11_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/a47cd99d-c159-771c-580e-731569c71e22.png)

権限不足の場合はこちらのエラーが出る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/78262efe-b096-0337-e546-c34003342fe4.png)

以上でアクセサー(共有先の子アカウント）に対してNFSファイル共有の作成が完了
あとはサーバ等からNFSをマウントして利用可能

## サーバからのNFSマウント

### マウントターゲットを作成する
:::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::
share-nfsのページよりマウントターゲットの[作成]を選択
![貼り付けた画像_2024_07_02_11_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/f444a45f-e88f-6f02-e544-2465bf7f00d5.png)

ターゲット名、VPCを選択し、マウントポイントで利用するインタフェースにチェックを入れ[次へ]を選択
![貼り付けた画像_2024_07_02_11_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/a81cef2c-c7e0-318d-d141-f1f7c6de3889.png)

転送中の暗号化を利用する場合はチェックをいれ、[次へ]を選択
![貼り付けた画像_2024_07_02_11_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/13a05689-d41a-38b5-acb3-76d60eebf39f.png)

最後に[作成]を選択
![貼り付けた画像_2024_07_02_11_57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/188ed76a-866f-a1fe-e928-69ca0d948827.png)

### マウントパスの確認
:::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::
作成したマウントターゲットからマウントポイントを確認する
![貼り付けた画像_2024_07_02_11_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/e2d62140-0ae2-447d-33c5-a7ad3ab744e0.png)

マウントパスが確認できるので控えておく
![貼り付けた画像_2024_07_02_12_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/83cc5c13-74f5-1a4a-ba60-b2bc39c42991.png)

### Linuxサーバからのマウント
:::note warn
アクセサーアカウント（共有先のアカウント）で実施する作業
:::

現在のマウント状態の確認
```
[root@paas-sv1 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           732M   17M  716M   3% /run
/dev/vda3       100G  2.1G   98G   3% /
/dev/vda2       100M  7.5M   93M   8% /boot/efi
tmpfs           366M     0  366M   0% /run/user/0
```

mountコマンドで先ほど確認したマウントパスを指定して/mnt/testにマウント
```
[root@paas-sv1 ~]# mount -t nfs4 -o sec=sys,nfsvers=4.1 10.244.64.34:/5a2019f2_d12a_4f25_a4a6_b36a1bb998d0 /mnt/test
```

マウントできたか確認
```
[root@paas-sv1 ~]# df -h
Filesystem                                          Size  Used Avail Use% Mounted on
devtmpfs                                            4.0M     0  4.0M   0% /dev
tmpfs                                               1.8G     0  1.8G   0% /dev/shm
tmpfs                                               732M   17M  716M   3% /run
/dev/vda3                                           100G  2.1G   98G   3% /
/dev/vda2                                           100M  7.5M   93M   8% /boot/efi
tmpfs                                               366M     0  366M   0% /run/user/0
10.244.64.34:/5a2019f2_d12a_4f25_a4a6_b36a1bb998d0   10G  320K   10G   1% /mnt/test
```

ファイル書き込みテストで問題なく書き込みできた
```
[root@paas-sv1 ~]# cd /mnt/test/
[root@paas-sv1 test]# echo aaa > testfile.txt
[root@paas-sv1 test]# cat testfile.txt
aaa
```