新しい会話を開始

未解決

35 メッセージ

848

2021年2月21日 21:00

【ECS解説第7回】s3curlにおけるECS3.5.0.2以降での操作方法の違いについて

皆さん、こんにちは。

2019年にS3curlを使ってECSS3アクセスできる話をご紹介させていただきました。

【ECS解説第三回】S3curlによるECSの操作について(1/2)【ECS解説第4回】s3curlによるECSの操作について(2/2) の2回にわたって、s3curlを使ってECSにS3アクセスできる話をご紹介させていただきました。

今回はECS3.5.0.2以降でのs3curlの使用方法に少し変更がありましたので、新しい記事としてお知らせしたいと思います。

S3curlの話をする前に、今年1月にブログにてご紹介したEXF900とともにECS v3.6がリリースされていますが、それに前後して、ECS v3.5.1が最新のGA版としてアナウンスされました。現在、ECSをご採用いただいた場合の推奨コードとなります。

さて、ECS v3.5.1の直前は、ECS3.5.0.2でしたがこのリリースコード以降、S3curlを使用する際に以下のオプションを付与することが必要になりました。

 S3curlのコマンドに付与すべき新たなパラメータ: x-amz-date

 このヘッダーに付与すべき値は、実行時の[日付]+[時刻]を次の書式で記述し、他のヘッダーと同様にダブルコーテーションで括ります。なお、下記の日時はGMTベースです(日本標準時から-9時間してください)。

“x-amz-date:[yyyymmdd]T[HHMMSS]Z”

<コマンド投入例 (ECS v3.6にて実行)>

$ sudo ./s3curl.pl --debug --id=ns2user -- http://ecs1-1500.ecs.com/bucket2 -H "x-amz-date:20210118T091330Z" | xmllint --format -

s3curl: Found the url: host=ecs1-1500.ecs.com; port=; uri=/bucket2; query=;

s3curl: ordinary endpoint signing case

s3curl: StringToSign='GET\n\n\n\nx-amz-date:20210118T091330Z\n/bucket2'

s3curl: exec curl -v -H 'Authorization: AWS ns2user:NuluXuDM1Vu+IiBXNv9OZBhzBRg=' -L -H 'content-type: ' http://ecs1-1500.ecs.com/bucket2 -H x-amz-date:20210118T091330Z

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* About to connect() to ecs1-1500.ecs.com port 80 (#0)

*   Trying 10.6.15.20...

* Connected to ecs1-1500.ecs.com (10.6.15.20) port 80 (#0)

> GET /bucket2 HTTP/1.1

> User-Agent: curl/7.29.0

> Host: ecs1-1500.ecs.com

> Accept: */*

> Authorization: AWS ns2user:NuluXuDM1Vu+IiBXNv9OZBhzBRg=

> x-amz-date:20210118T091330Z

< HTTP/1.1 200 OK

< Date: Mon, 18 Jan 2021 09:13:56 GMT

< Server: ViPR/1.0

< x-amz-request-id: c0a80f17:176ecee0f91:7aaf:1

< x-amz-id-2: 7d9bb52a6e0520c24d28c6527d758da468d81cdf02a55df820d6ff45c59cb57c

< x-emc-retention-period: 0

< Content-Type: application/xml

< Transfer-Encoding: chunked

{ [data not shown]

100  112k    0  112k    0     0   757k      0 --:--:-- --:--:-- --:--:--  761k

* Connection #0 to host ecs1-1500.ecs.com left intact

http://s3.amazonaws.com/doc/2006-03-01/">

  bucket2

 

 

  1000

  false

  false

 

    8.2.1_KGA-RUP_2019-11_259121.pkg

    2020-09-10T07:11:10.302Z

    "1d20311152b426f2ca2c60fed2d436c7"

    10414991

    STANDARD

   

      ns2user

      ns2user

   

    false

 

 

    8.2.1_KGA-RUP_2019-11_259121.tgz

    2020-09-10T07:11:10.298Z
==以下、継続==

 

x-amz-dateを付けないと以下のように403 forbiddenAccess Deniedになってしまいます。

実はECSのアップグレード後、私も最新のData Access Guideを参照して、x-amz-dateの記述を見つけるまで、何が悪いのかわからず、悩みました。どうぞお気を付けください。

 

$ sudo ./s3curl.pl --debug --id=ns2user -- http://ecs1-1500.ecs.com/bucket2 | xmllint --format -

s3curl: Found the url: host=ecs1-1500.ecs.com; port=; uri=/bucket2; query=;

s3curl: ordinary endpoint signing case

s3curl: StringToSign='GET\n\n\n月, 18  1月 2021 09:29:58 +0000\n/bucket2'

s3curl: exec curl -v -H 'Date: 月, 18  1月 2021 09:29:58 +0000' -H 'Authorization: AWS ns2user:tv10xWfJY3EuZIGii7q9Rmx5eDc=' -L -H 'content-type: ' http://ecs1-1500.ecs.com/bucket2

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* About to connect() to ecs1-1500.ecs.com port 80 (#0)

*   Trying 10.6.15.20...

* Connected to ecs1-1500.ecs.com (10.6.15.20) port 80 (#0)

> GET /bucket2 HTTP/1.1

> User-Agent: curl/7.29.0

> Host: ecs1-1500.ecs.com

> Accept: */*

> Date: 月, 18  1月 2021 09:29:58 +0000

> Authorization: AWS ns2user:tv10xWfJY3EuZIGii7q9Rmx5eDc=

< HTTP/1.1 403 Forbidden

< Date: Mon, 18 Jan 2021 09:29:58 GMT

< x-amz-id-2:

< Server: ViPR/1.0

< x-amz-request-id: c0a80f15:176ecbf4f3e:7d8e:1

< Content-Type: application/xml

< Content-Length: 122

{ [data not shown]

100   122  100   122    0     0  15897      0 --:--:-- --:--:-- --:--:-- 17428

* Connection #0 to host ecs1-1500.ecs.com left intact

  AccessDenied

  Access Denied

  c0a80f15:176ecbf4f3e:7d8e:1

このエラーはTestDrive(現在V3.6.1)でも同様に発生します。どうぞご注意ください。

 

今回はここまでとして、次回、ECS v3.5の新機能などをご紹介したいと思います。

最後までお付き合いいただきありがとうございました。しばらく更新しておりませんでしたので、アップデートを引き続き行っていきたいと思いますので、またお目にかかりたいと思います。どうぞご期待ください。

 

杉本 直之

デル・テクノロジーズ株式会社

UDS事業本部

 

レスポンスがありません。
イベントは見つかりませんでした!

Top