AWS Storage Gateway S3のレプリケーションオブジェクトにアクセスするにはKMSの権限を付与する


初めに

先日こちらの記事に FSx for Lustre ではレプリケートされたオブジェクトをインポートできなかったことを書きました。今回 Storage Gateway でも同様にレプリケートされたオブジェクトにアクセスできないという現象が発生しました。原因はレプリケーションに使用している KMS キーのアクセス権限がなかったことです。

検証結果

KMS の権限なしで以下のようにステータスがレプリカのオブジェクトにアクセスしてみます。

[ec2-user@ip-172-31-43-17 ~]$ aws s3api head-object --bucket account-a-bucket-0525 --key test_upload_4.txt --version-id JQnupBy2kZdOxhFHZ5v9VU9cvknOKOeA | grep 'ReplicationStatus'
    "ReplicationStatus": "REPLICA",
[ec2-user@ip-172-31-43-17 ~]$ cat dir/test_upload_4.txt
cat: dir/test_upload_4.txt: Input/output error

アクセスできません。

KMSの権限ありの場合にアクセスしてみます。

[ec2-user@ip-172-31-43-17 ~]$ aws s3api head-object --bucket account-a-bucket-0525 --key test_upload_4.txt --version-id JQnupBy2kZdOxhFHZ5v9VU9cvknOKOeA | grep 'ReplicationStatus'
    "ReplicationStatus": "REPLICA",
[ec2-user@ip-172-31-43-17 ~]$ cat dir/test_upload_4.txt
test upload

アクセスできました。

なお、ファイル共有作成時でもマウント後でもロールに KMS の権限を付与すればレプリケーションオブジェクトにアクセス可能です。