S3署名バージョン2廃止を受け「どうしたものか…」と困っている方へ!まずは気になる対象を確認してみましょう。

2019.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

おはようございます。 園部です。

みなさん、Amazon S3のAWS署名バーション2の廃止に向けて対応はされていますでしょうか。

弊社でも、クラスメソッドメンバーズ へご加入いただいているお客様向けに、ご案内させていただいたり、関連情報ブログ を書いております。

ただS3は人気サービスのため影響範囲が広く、自前で開発されたプログラムやサードパーティツールとそれらのバージョン全ての影響を把握し、お伝えするのは難しい状況です。

そこで今日は、私が過去にお世話になってきた S3関連ツールを取り上げ、調べ方の例を共有できればと思います。

本内容は後述します条件において確認した内容となります。

記載されたツールとバージョンにおいても、本番業務でご利用の方はご自身でもご確認されることを強くお勧めします。

S3関連ツールとは?

非常に便利なS3は、様々なシーンで利用されています。

今まで、個人的に以下のツールにお世話になった経験があります。

今回署名バージョン2が廃止されるにあたり、このお世話になってきたツールたちはどうなるのか?そして同じように愛用しているツールたちがどうなるのかが気になっている方々のために、確認方法をまじえながら記載していきたいと思います。

※ goofysはGoで記述されているため、おそらく対象外となりますが念の為に確認してます。

分類 名称 バージョン
FTP Cybeyduck 6.9.4
FTP WinSCP 5.15
FTP S3 Browser 8-1-5
FTP CloudBerry Explorer for Amazon S3 5.9.0.33
マウント goofys -

環境と検証方法

環境

FTP用サーバ

  • OS: Windows2016(ami-0071141e8929a58d5)
  • ツールバージョン: 取得できる最新バージョン(上記表に記載)

マウント用サーバ

  • OS: AmazonLinux(ami-00a5245b4816c38e6)
  • ツールバージョン: Githubより取得

S3

  • アクセス用S3バケット(blog-sonobe-s3v2)
  • CloudTrail用S3バケット(blog-sonobe-s3v2-logs)

CloudTrail

  • 証跡: blog-s3vs

検証方法

[事前]

  1. ClouTrailの有効化
  2. アクセス用S3バケット作成
  3. FTP用サーバ作成とツールインストール
  4. マウント用サーバ作成とツールインストール

[確認方法]

  1. アクセス用S3へ接続
  2. ファイルのアップロードや削除などの操作を実施
  3. CloudTrail用S3へ出力されたログファイルをS3 Selectで確認

やってみた

今回、1および5-7のみ記載します。(2-4は、実際の環境では存在しているため)

1. ClouTrailの有効化

弊社ブログの「設定 CloudTrail」部分を参考にさせていただきました。

廃止予定のS3署名バージョン2API利用をCloudWatchEventで検出してみた

5. アクセス用S3へ接続

FTP(Cyberduck)

ツールウィンドウに沿って、アクセス用S3バケット(blog-sonobe-s3v2)へアクセスします。

マウント(goofys)

アクセス用S3バケット(blog-sonobe-s3v2)がマウントされていることを確認します。

$ ./go/bin/goofys blog-sonobe-s3v2 /mnt/goofys
$ df -h
ファイルシス     サイズ  使用  残り 使用% マウント位置
devtmpfs           483M   60K  483M    1% /dev
tmpfs              493M     0  493M    0% /dev/shm
/dev/xvda1         7.8G  1.8G  5.9G   24% /
blog-sonobe-s3v2   1.0P     0  1.0P    0% /mnt/goofys

6. ファイルのアップロードや削除などの操作を実施

FTP(Cyberduck)

GUIで、ファイルのアップロードや削除を行います。

マウント(goofys)

コマンドで、ファイルのコピーや削除を行います。

$ cp sample-goofys.txt /mnt/goofys/
$ ls /mnt/goofys/
Cyberduck.txt  sample-goofys.txt

7. CloudTrail用S3へ出力されたログファイルをS3 Selectで確認

7-1. CloudTrail用S3バケット(blog-sonobe-s3v2-logs) へログファイルが作成されていることを確認

7-2. S3 Select で内容を確認

該当ファイルを選択し S3 Select を選択します。

表示される画面の一番下にある ファイルプレビューの表示 を選択します。

表示されたログを確認していきます。

Cyberduck

            "userAgent": "[Cyberduck/6.9.4.30164 (Windows 10/10.0) (x86)]",
            "requestParameters": {
                "bucketName": "blog-sonobe-s3v2",
                "max-keys": "1000",
                "x-amz-request-payer": "requester",
                "prefix": "",
                "delimiter": "/",
                "Host": "blog-sonobe-s3v2.s3.amazonaws.com"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-SHA",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",

WinSCP

            "userAgent": "[WinSCP/5.15 neon/0.30.2]",
            "requestParameters": {
                "bucketName": "blog-sonobe-s3v2",
                "Host": "blog-sonobe-s3v2.s3.amazonaws.com",
                "key": "EC2 Feedback.website"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",

S3 Browser

            "userAgent": "[S3 Browser 8-1-5 https://s3browser.com]",
            "requestParameters": {
                "bucketName": "blog-sonobe-s3v2",
                "Host": "blog-sonobe-s3v2.s3.ap-northeast-1.amazonaws.com",
                "max-keys": "1000",
                "delimiter": "/"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",

CloudBerry Explorer for Amazon S3

            "userAgent": "[APN/1.0 CloudBerry Lab/1.0 Explorer/5.9]",
            "requestParameters": {
                "bucketName": "blog-sonobe-s3v2",
                "Host": "blog-sonobe-s3v2.s3-ap-northeast-1.amazonaws.com",
                "max-keys": "1000",
                "prefix": "",
                "delimiter": "/"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",

goofys

            "userAgent": "[aws-sdk-go/1.8.25 (go1.10.6; linux; amd64)]",
            "requestParameters": {
                "bucketName": "blog-sonobe-s3v2",
                "Host": "s3-ap-northeast-1.amazonaws.com",
                "max-keys": "1",
                "prefix": "sample-goofys.txt/",
                "delimiter": "/"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",

結果

分類 名称 バージョン 結果
FTP Cybeyduck 6.9.4 SigV4 利用
FTP WinSCP 5.15 SigV4 利用
FTP S3 Browser 8-1-5 SigV4 利用
FTP CloudBerry Explorer for Amazon S3 5.9.0.33 SigV4 利用
マウント goofys - SigV4 利用

ひとまず、最新バージョンを利用している場合では、SigV2廃止以降も問題なく利用可能なようです。

さいごに

いかがでしたでしょうか。

確認自体は比較的簡単に出来そうだなと思われた方がいらっしゃれば、幸いです。

こういったケースでは、まず状況を把握することが大切です。