準備
サービスアカウント用意
該当するGCSにアクセスできるサービスアカウントを用意する。
鍵ファイル(JSON)を作成しダウンロード。/tmp
にでも置いとく。
cp ~/Downloads/test-gcs-to-s3-key.json /tmp
Botoファイル用意
gsutil コマンドに AWS のクレデンシャルを読ませる必要があるので Boto ファイルを用意。
これも /tmp
にでも置いておく。
less /tmp/.boto
[Credentials]
aws_access_key_id = xxx
aws_secret_access_key = yyy
[s3]
use-signv4=True
host=s3.ap-northeast-1.amazonaws.com
言わずもがな上記のクレデンシャルは移動先のS3へアクセスできる権限が必要。
発行手順は割愛。
やってみる
GCPにログイン
サービスアカウントの鍵を使ってGCPにログイン。
gcloud auth activate-service-account --key-file /tmp/test-gcs-to-s3-key.json
gcloud config set project my-project
gsutil 実行
BOTO構成ファイルのパスを環境変数に設定して gsutil コマンドを打てばオケ。
export BOTO_CONFIG=/tmp/.boto
gsutil -m rsync -rdc \
gs://my-gcs-bucket/subdir \
s3://my-s3-bucket/subdir
おわり。