こんにちわ、cloudpack@dz_ こと大平かづみです。

Prologue

3年前の記事 Amazon S3の利用とCloudBerry Explorerのインストール を、IAMユーザーを使った内容でリバイバルしてみました!
参考元の記事では、ブログ等で使う画像を S3 に置いて利用する手順が紹介されています。
これを、 AWS IAMユーザーでの認証 を使って対応する手順についてまとめました。

今後、AWS IAM を利用する運用が主流となってくるので、ここでしっかり最初の一歩を押さえておきたいと思います。

作業の流れ

  1. IAMユーザーを作成
  2. IAMユーザーに、ポリシーを設定
  3. IAMユーザーに、パスワードの初期設定
  4. IAMユーザーで sign-in
  5. Amazon S3 に、Bucket を作成して、AWSコンソールからファイルをアップロード
  6. デスクトップクライアント Cyberduck で S3 に接続(IAMを用いる)
  7. Cyberduck からファイルをアップロード
  8. ファイルを web(http) で公開【祝!】

手順

1. IAMユーザーを作成

1-1. 早速、IAMコンソール にアクセスして、IAMユーザーを作成します。

20140811_s3_with_iam_001

1-2. ユーザー名を入力します。

20140811_s3_with_iam_002

1-3. すぐにIAMユーザーが作成されました!
ここで、 アクセスキーIDシークレットアクセスキー をしっかり保存しておきましょう。ただし、漏洩しないように注意してください。
テキストファイル (credentials.csv.txt) としてダウンロードもできます(この初回のみ)

20140811_s3_with_iam_003

1-4. 上記で「Show User Security Credentials」をクリックすると、Access Key ID, Secret Access Key が表示されます。保存が済んだら、Close してください。

20140811_s3_with_iam_004

2. IAMユーザーに、ポリシーを設定

2-1. 作成したIAMユーザーが、ユーザー一覧に追加されていることを確認できます。クリックすると、ユーザーの詳細画面に遷移します。

20140811_s3_with_iam_005

2-2. IAMユーザーに、S3を利用するための「ポリシー」を割り当てます。

20140811_s3_with_iam_006

2-3. 今回は簡単に設定できる、「ポリシーテンプレート」を利用します。「Select Policy Template」から「Amazon S3 Full Access」を「Select」してください。
ちなみに、Policy Generator や Custom Policy を使うと、より柔軟な設定ができます。

20140811_s3_with_iam_007

2-4. ポリシーテンプレートの内容が表示されるので、適用しましょう。

20140811_s3_with_iam_008

2-5. このように、ポリシーが設定されました。

20140811_s3_with_iam_009

3. IAMユーザーに、パスワードの初期設定

3-1. IAMユーザでコンソールにサインインするために、パスワードを設定します。
よりセキュリティを高めたい場合は、Multi-Factor Authentication Device (MFA認証) も設定することをお勧めします!
IAMとMFAによる2段階認証については、こちら
AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFAで2段階認証

20140811_s3_with_iam_010

3-2. パスワードは、自動生成か、カスタムかを選べます。

20140811_s3_with_iam_011

3-3. 生成されたパスワードをしっかり保存しましょう。
テキストファイル (credentials.csv.txt) でダウンロードもできます。(この初回だけ) このテキストには、IAM users sign-in link も記載されています。(次項参照)

20140811_s3_with_iam_012

保存を終えたら、close してください。

4. IAMユーザーで sign-in

4-1. IAMコンソールのダッシュボード画面に戻りましょう。 IAM users sign-in link でIAMユーザーでサインインする画面へのリンクを入手できます。
コピーして、sign-in 画面へ遷移してください。

20140811_s3_with_iam_013

4-2. 早速、サインインしてみましょう!

20140811_s3_with_iam_014

4-3. おなじみのAWSコンソールに遷移します。

20140811_s3_with_iam_015

ただし、アクセス権のないサービスは、このようにエラーが表示されて利用できません。

20140811_s3_with_iam_016

5. Amazon S3 に、Bucket を作成して、AWSコンソールからファイルをアップロード

5-1. さて、S3 をクリックして、IAMユーザーとしては、初めてアクセスした Amazon S3 の画面に遷移します。「Create Bucket」でバケットを作成しましょう。

20140811_s3_with_iam_017

5-2. バケット名「Backet Name」、Regien「リージョン」を設定して、今回はこのまま作成します。

20140811_s3_with_iam_018

5-3. バケットができました。

20140811_s3_with_iam_019

5-4. まず、AWSコンソールから、ファイルをアップロードしてみましょう。

20140811_s3_with_iam_020

5-5. ファイルを追加します。今回は細かい設定はせず、このままアップロードします。

20140811_s3_with_iam_021

5-6. 無事アップロードされました。

20140811_s3_with_iam_022

6. デスクトップクライアント Cyberduck で S3 に接続(IAMを用いる)

さて、デスクトップクライアントから、S3にアクセスしてみましょう。

今回、クライアントは「Cyberduck」を利用します。

Cyberduck とは

FTP/SFTP/WebDAV でのサーバ接続をはじめ、Amazon S3, Google CLoud Storage, Rackspace Cloud Files などの各クラウドへも接続可能です。また、コンテンツ配信ネットワーク(CDN)を利用することもできます。
Mac と Windows、どちらでも利用できます。(Mac は、ダウンロード版と App Store 版が用意されています。)
Cyberduck のトップページにダウンロードリンクがあるので、インストールまで終えてください。

それでは、Cyberduck を使って、Amazon S3 への接続を設定します。

6-1. 「新規接続」をクリックします。

20140811_s3_with_iam_023

6-2. 「S3 (Amazon シンプルストレージサービス)」を選択します。

20140811_s3_with_iam_024

6-3. IAMユーザーの「アクセスキーID」と、「シークレットアクセスキー」を入力し、接続します。

20140811_s3_with_iam_025

6-4. 接続すると、無事、AWSコンソールで作った「s3user-bucket」が見えています。

20140811_s3_with_iam_026

7. Cyberduck からファイルをアップロード 【祝!】

さて、今度はデスクトップクライアントから、ファイルをアップロードしてみましょう!

7-1. ドラッグ & ドロップ(または、メニューから)で、ファイルをアップロードします。

20140811_s3_with_iam_027

7-2. 無事、アップロードできました。

20140811_s3_with_iam_028

7-3. AWSコンソールでも、Cyberduck でアップロードしたファイルを確認できました。

20140811_s3_with_iam_029

8. ファイルを web(http) で公開【祝!】

ここで、満足して最後の大事なところを忘れてはなりません。

webブラウザから見えるように、「公開」しましょう。

8-1. 公開状況を確認してみます。最初は非公開になっています。

20140811_s3_with_iam_030

試しに、URLにアクセスしてみると、Access Denied と、アクセス拒否されてしまいます。

20140811_s3_with_iam_031

8-2. それでは、公開したいファイルを右クリックして、「Make Public」をクリックします。
もしくは、ファイル名先頭のチェックボックスにチェックをし、Actions から「Make Public」することもできます。

20140811_s3_with_iam_032

8-3. 公開してよいか聞かれるので、「OK」!

20140811_s3_with_iam_033

8-4. あっさり公開できました。

20140811_s3_with_iam_034

8-5. プロパティを確認してみると、Link が青いアイコンに変わり、公開されていることがわかります。

20140811_s3_with_iam_035

8-6. Link をクリックしてみると、しっかりファイルにアクセスできました!

20140811_s3_with_iam_036

8-7. さて、公開しっぱなしもあれなので、今回は手動で非公開に戻します。Permissions > Grantee: Everyone を削除して、「Save」します。

20140811_s3_with_iam_037

リロードすると、Properties > Link のアイコンが鍵に変わり、URLを表示しようとしても、Access Denied でアクセスできなくなっています。

Epilogue

いかがでしたでしょうか?
AWSコンソールも、大分新しくなっているので、S3再入門になりました。
AWS IAM は、他にもたくさんの設定があり、もっと掘り下げて勉強したいです。(ロールやポリシーなど)

それから、先輩に教えて頂いた耳より情報です!
今回は、ファイルのACLを「Make Public」に設定することで、公開しましたが、
バケット自体にアクセス制御を設定できることを知りました!

それは、バケットポリシー で設定します。こちらも Bucket Policy Generator があります!

20140811_s3_with_iam_038

Policy Generator を利用して、バケットポリシーや、IAMポリシーについて、いろいろ確認してみたいと思います。