CloudflareのSippyドキュメントを見ながらが移行の設定を行います。
AWS側でS3のポリシーを追加して、IAMユーザーを作成する
ポリシーは下記のものを用意して、IAMユーザーにアタッチします。
アタッチした後にアクセスキーを作成して、アクセスキーIDとシークレット アクセス キーをコピーしておきます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket*", "s3:GetObject*"], "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ] } ] }
S3バケットのリージョンとバケット名をコピーする
移行の設定で必要になるので、こちらもコピーしておきます。
Cloudflare R2のバケットを作成して、Sippyの設定をする

R2バケットの「オンデマンド移行」メニューを選びコピーしていた値を設定していきます。
設定が完了したら「有効にする」を選択して完了させます。
wranglerを使用して、オブジェクトがS3からコピーされるのを確認する
R2のGetコマンドをwranglerを使用して、実行します。
リソースは[R2バケット名]/[S3のキー名]形式で指定します。
wrangler r2 object get --remote [R2バケット名]/[S3のキー名]
実行が正常に終了したらR2のバッケットにコピーされているかを確認します。
無事R2にコピーされていれば、完了です。