概要
IBM Cloud Shell上で、AWS CLIを使ってIBM Cloud Object Storageにアクセスする手順を記載します。
前提
IBM Cloud Object Storageのサービスインスタンスが作成されていること
手順概要
- IBM Cloud Shellを起動
- IBM Cloud Object Storageのバケットを作成
- AWS CLIをIBM Cloud Shellにインストール
- サービスキーの作成
- AWS CLIからIBM Cloud Object Storageをアクセス
1. IBM Cloudシェルを起動
IBM Cloudのコンソールの右上にあるIBM Cloud Shellのアイコンをクリックして起動します。
2. IBM Cloud Object Storageのバケットを作成
IBM Cloud CLIを使ってバケットを作成します。
TSOTA@cloudshell:~$ ibmcloud resource service-instances
Retrieving instances with type service_instance in all resource groups in all locations under account ...
OK
Name                              Location   State    Type   
・・・  
Cloud Object Storage-lo           global     active   service_instance   
・・・
TSOTA@cloudshell:~$ ibmcloud resource service-instance "Cloud Object Storage-lo"
Retrieving service instance Cloud Object Storage-lo in all resource groups under account ...
OK
                          
Name:                  Cloud Object Storage-lo   
ID:                    crn:v1:bluemix:public:cloud-object-storage:global:a/xxx:xxx::   
GUID:                  xxxxx   
Location:              global   
Service Name:          cloud-object-storage   
Service Plan Name:     lite   
Resource Group Name:   Default   
State:                 active   
Type:                  service_instance   
Sub Type:                 
Created at:            2020-10-13T07:08:17Z   
Created by:            xxxxxxx   
Updated at:            2020-10-13T07:08:17Z   
Last Operation:                        
                       Status    create succeeded      
                       Message   Completed create instance operation      
TSOTA@cloudshell:~$ ibmcloud cos config crn
Resource Instance ID CRN:  ()> crn:v1:bluemix:public:cloud-object-storage:global:a/xxx:xxx:: 
Saving new Service Instance ID...
OK
Successfully stored your service instance ID.
TSOTA@cloudshell:~$ ibmcloud cos bucket-create --bucket tsota-bucket --region ap
OK
Details about bucket tsota-bucket:
Region: ap
Class: Standard
TSOTA@cloudshell:~$ ibmcloud cos buckets-extended
OK
Found 7 buckets:
Name                                              Location Constraint   Creation Date   
tsota-bucket                                      ap-standard           Dec 08, 2020 at 15:44:36   
3. AWS CLIをIBM Cloud Shellにインストール
参考:Linux で AWS CLI バージョン 2 をインストールする
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install
TSOTA@cloudshell:~$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
TSOTA@cloudshell:~$ unzip awscliv2.zip
TSOTA@cloudshell:~$ ./aws/install -i ~/aws-cli -b ~/bin
You can now run: /home/TSOTA/bin/aws --version
TSOTA@cloudshell:~$ /home/TSOTA/bin/aws --version
aws-cli/2.1.7 Python/3.7.3 Linux/5.9.8 exe/x86_64.ubuntu.18 prompt/off
4. サービスキーの作成
AWS CLIからアクセスするためのサービスキーを作成します。
HMAC資格情報を付けて作成します。
参考: https://cloud.ibm.com/docs/cloud-object-storage/hmac?topic=cloud-object-storage-hmac
TSOTA@cloudshell:~$ ibmcloud resource service-key-create tsota-test-key Manager --instance-name "Cloud Object Storage-lo" --parameters '{"HMAC":true}'
Creating service key of service instance Cloud Object Storage-lo under account ...
OK
Service key crn:v1:bluemix:public:cloud-object-storage:global:a/xxx:xxx:resource-key:xxx was created.
                  
Name:          tsota-test-key   
ID:            crn:v1:bluemix:public:cloud-object-storage:global:a/xxx:xxx:resource-key:xxx   
Created At:    Tue Dec  8 16:13:52 UTC 2020   
State:         active   
Credentials:                                   
               apikey:                   xxx     
               cos_hmac_keys:                                          
                                         access_key_id:       xxx        
                                         secret_access_key:   xxx         
                                               
               endpoints:                https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints      
               iam_apikey_description:   Auto-generated for key xxx      
               iam_apikey_name:          tsota-test-key      
               iam_role_crn:             crn:v1:bluemix:public:iam::::serviceRole:Manager      
               iam_serviceid_crn:        crn:v1:bluemix:public:iam-identity::a/xxx::serviceid:ServiceId-xxx      
               resource_instance_id:     crn:v1:bluemix:public:cloud-object-storage:global:a/xxx:xxx::      
5. AWS CLIからIBM Cloud Object Storageをアクセス
前ステップで作成したアクセスキーをセットします。
TSOTA@cloudshell:~$ bin/aws configure
AWS Access Key ID [None]: xxx
AWS Secret Access Key [None]: xxx
Default region name [None]: ap
Default output format [None]: json
TSOTA@cloudshell:~$ 
TSOTA@cloudshell:~$ bin/aws --endpoint-url https://s3.ap.cloud-object-storage.appdomain.cloud s3 ls
2020-12-08 15:44:36 tsota-bucket
TSOTA@cloudshell:~$ bin/aws --endpoint-url https://s3.ap.cloud-object-storage.appdomain.cloud s3 ls tsota-bucket/
TSOTA@cloudshell:~$
TSOTA@cloudshell:~$ echo test > test.txt
TSOTA@cloudshell:~$ bin/aws --endpoint-url https://s3.ap.cloud-object-storage.appdomain.cloud s3 cp test.txt s3://tsota-bucket
upload: ./test.txt to s3://tsota-bucket/test.txt    
TSOTA@cloudshell:~$ bin/aws --endpoint-url https://s3.ap.cloud-object-storage.appdomain.cloud s3 ls tsota-bucket/
2020-12-08 16:18:55          5 test.txt
TSOTA@cloudshell:~$ 
