こんにちわ、cloudpack の @dz_ こと大平かづみです。
Prologue
3年前の記事 Amazon S3の利用とCloudBerry Explorerのインストール を、IAMユーザーを使った内容でリバイバルしてみました!
参考元の記事では、ブログ等で使う画像を S3 に置いて利用する手順が紹介されています。
これを、 AWS IAMユーザーでの認証 を使って対応する手順についてまとめました。
今後、AWS IAM を利用する運用が主流となってくるので、ここでしっかり最初の一歩を押さえておきたいと思います。
作業の流れ
- IAMユーザーを作成
- IAMユーザーに、ポリシーを設定
- IAMユーザーに、パスワードの初期設定
- IAMユーザーで sign-in
- Amazon S3 に、Bucket を作成して、AWSコンソールからファイルをアップロード
- デスクトップクライアント Cyberduck で S3 に接続(IAMを用いる)
- Cyberduck からファイルをアップロード
- ファイルを web(http) で公開【祝!】
手順
1. IAMユーザーを作成
1-1. 早速、IAMコンソール にアクセスして、IAMユーザーを作成します。
1-2. ユーザー名を入力します。
1-3. すぐにIAMユーザーが作成されました!
ここで、 アクセスキーID 、シークレットアクセスキー をしっかり保存しておきましょう。ただし、漏洩しないように注意してください。
テキストファイル (credentials.csv.txt) としてダウンロードもできます(この初回のみ)
1-4. 上記で「Show User Security Credentials」をクリックすると、Access Key ID, Secret Access Key が表示されます。保存が済んだら、Close してください。
2. IAMユーザーに、ポリシーを設定
2-1. 作成したIAMユーザーが、ユーザー一覧に追加されていることを確認できます。クリックすると、ユーザーの詳細画面に遷移します。
2-2. IAMユーザーに、S3を利用するための「ポリシー」を割り当てます。
2-3. 今回は簡単に設定できる、「ポリシーテンプレート」を利用します。「Select Policy Template」から「Amazon S3 Full Access」を「Select」してください。
ちなみに、Policy Generator や Custom Policy を使うと、より柔軟な設定ができます。
2-4. ポリシーテンプレートの内容が表示されるので、適用しましょう。
2-5. このように、ポリシーが設定されました。
3. IAMユーザーに、パスワードの初期設定
3-1. IAMユーザでコンソールにサインインするために、パスワードを設定します。
よりセキュリティを高めたい場合は、Multi-Factor Authentication Device (MFA認証) も設定することをお勧めします!
IAMとMFAによる2段階認証については、こちら
→ AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFAで2段階認証
3-2. パスワードは、自動生成か、カスタムかを選べます。
3-3. 生成されたパスワードをしっかり保存しましょう。
テキストファイル (credentials.csv.txt) でダウンロードもできます。(この初回だけ) このテキストには、IAM users sign-in link も記載されています。(次項参照)
保存を終えたら、close してください。
4. IAMユーザーで sign-in
4-1. IAMコンソールのダッシュボード画面に戻りましょう。 IAM users sign-in link でIAMユーザーでサインインする画面へのリンクを入手できます。
コピーして、sign-in 画面へ遷移してください。
4-2. 早速、サインインしてみましょう!
4-3. おなじみのAWSコンソールに遷移します。
ただし、アクセス権のないサービスは、このようにエラーが表示されて利用できません。
5. Amazon S3 に、Bucket を作成して、AWSコンソールからファイルをアップロード
5-1. さて、S3 をクリックして、IAMユーザーとしては、初めてアクセスした Amazon S3 の画面に遷移します。「Create Bucket」でバケットを作成しましょう。
5-2. バケット名「Backet Name」、Regien「リージョン」を設定して、今回はこのまま作成します。
5-3. バケットができました。
5-4. まず、AWSコンソールから、ファイルをアップロードしてみましょう。
5-5. ファイルを追加します。今回は細かい設定はせず、このままアップロードします。
5-6. 無事アップロードされました。
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. 「新規接続」をクリックします。
6-2. 「S3 (Amazon シンプルストレージサービス)」を選択します。
6-3. IAMユーザーの「アクセスキーID」と、「シークレットアクセスキー」を入力し、接続します。
6-4. 接続すると、無事、AWSコンソールで作った「s3user-bucket」が見えています。
7. Cyberduck からファイルをアップロード 【祝!】
さて、今度はデスクトップクライアントから、ファイルをアップロードしてみましょう!
7-1. ドラッグ & ドロップ(または、メニューから)で、ファイルをアップロードします。
7-2. 無事、アップロードできました。
7-3. AWSコンソールでも、Cyberduck でアップロードしたファイルを確認できました。
8. ファイルを web(http) で公開【祝!】
ここで、満足して最後の大事なところを忘れてはなりません。
webブラウザから見えるように、「公開」しましょう。
8-1. 公開状況を確認してみます。最初は非公開になっています。
試しに、URLにアクセスしてみると、Access Denied と、アクセス拒否されてしまいます。
8-2. それでは、公開したいファイルを右クリックして、「Make Public」をクリックします。
もしくは、ファイル名先頭のチェックボックスにチェックをし、Actions から「Make Public」することもできます。
8-3. 公開してよいか聞かれるので、「OK」!
8-4. あっさり公開できました。
8-5. プロパティを確認してみると、Link が青いアイコンに変わり、公開されていることがわかります。
8-6. Link をクリックしてみると、しっかりファイルにアクセスできました!
8-7. さて、公開しっぱなしもあれなので、今回は手動で非公開に戻します。Permissions > Grantee: Everyone を削除して、「Save」します。
リロードすると、Properties > Link のアイコンが鍵に変わり、URLを表示しようとしても、Access Denied でアクセスできなくなっています。
Epilogue
いかがでしたでしょうか?
AWSコンソールも、大分新しくなっているので、S3再入門になりました。
AWS IAM は、他にもたくさんの設定があり、もっと掘り下げて勉強したいです。(ロールやポリシーなど)
それから、先輩に教えて頂いた耳より情報です!
今回は、ファイルのACLを「Make Public」に設定することで、公開しましたが、
バケット自体にアクセス制御を設定できることを知りました!
それは、バケットポリシー で設定します。こちらも Bucket Policy Generator があります!
Policy Generator を利用して、バケットポリシーや、IAMポリシーについて、いろいろ確認してみたいと思います。