joppot

コピペで絶対動く。説明を妥協しない

サーバ

awsのs3を操作する為のaccess keyとsecret keyを取得する(IAM)

投稿日:

Pocket

fawe

概要

皆さんこんにちはcandleです。今回はrailsやphpからS3にファイルをアップロードしたりする権限を取得する方法を紹介します。一般にS3にファイルをアップロードしたり削除するにはアクセスキーとシークレットキーをIAMから取得する必要があります。

興味深いのはS3に限らないのですが、aws環境ではそれぞれのサービスに例えばS3やRDSに外部からアクセスする権限を管理するのがそれぞれのサービスではなくてIAMというサービスになります。

故にS3を操作する場合でも権限関連はIAMで作成します。
逆に言えば、このアクセスキーとシークレットキーがあればどこからでもS3にアクセスしてファイルを編集したり、削除できたりできます。別の記事にあるように、自宅のMacPCからもS3にアクセスできるようになります。

図にすると、下の様になります。
aws

前提

awsのアカウントを持っていて割と自由に使える

SPONSORED LINK


S3へアクセスるためのaccess_keyとsecret_keyを取得する

S3へファイルをアップロードしたり、消したりするのにはもちろん権限が必要です。誰も彼もS3にファイルをアップロードできては危険だからです。

railsやphpでS3にファイル上げる場合もaccess_keyとsecret_keyは必要不可欠です。それぞれのキーを取得しましょう。

awsのメニューの自分のアカウント名が書かれているプルダウンメニューから「Security Credentials」を選びます。

gosecurity

左のメニューから「Users」を選択します。

chooseUsers

「Create New Users」を選択します。

createnewiamuser

そしたら、名前は何でも良いのですが、例えば、「s3upload」というユーザー名にします。別にs3uploadという名前である必要性はありません。書いたら、Createを押します。

inputusername

access_keyとsecret_keyが表示されるので、コピペで保存するかダウンロードしましょう。ちなみにこれは後で確認ができなかったと思います。必ず保存しましょう。

saveaccesskey

今度はこのs3uploadユーザーに権限をもたせます。
ユーザーを選択して「Attach User Policy」を選択します。

attachuserpolicy

「Select Policy Template」から「Amazon S3 Full Access」を選択して「Select」を押します。

chooseuserpolicy

次の画面に移動するので、なにも変えずに「Apply Policy」を選択します。

okmakepolicy

これで、先ほど入手したaccess_keyとsecret_keyを使ってs3にファイルをアップロードできる権限を持つことができました。

まとめ

入手したアクセスキーとシークレットキーをrailsなりphpで使用して、S3上でファイルの管理を行える用になりました。他の記事で、ファイルのアップロード仕方などを紹介しているのでそちらもどうぞ。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

AWSのLoad Blancer越しのアクセスをapacheのカスタムログを使用して取得し、かつfluentdで取得する方法

概要 みなさんこんにちはcandleです。今回はELB越しのapacheのアクセスをカスタムログを使用した場合にfluentdで如何にして取るかを紹介します。 fluentdがapacheのacces …

ruby on railsのckeditor gemをapacheのproductionの本番環境で動かす

概要 みなさんこんにちはcandleです。今回はckeditorを本番環境で動かしてみたいと思います。 とは言っても基本的な記述はdevelopment環境と同じなので、そこまでは前回の記事を参照お願 …

railsのfluent-loggerとdevise gemを使ってユーザーの行動をfluentdサーバに収集する

概要 fluentdと言えば、ビックデータで扱うようなデータを集め出力するサーバですが、これとrailsのfluent-logger gemとdevise gemを組み合わせてユーザーの行動ログをとっ …

memcachedサーバとruby on railsのdalliを使用してセッションを管理する

概要 みなさんこんにちはcandleです。今回はmemcachedサーバを利用してrailsのセッションを管理してみたいと思います。 一般にrailsでセッション管理をしていると、ブラウザのcooki …

MAMPでphpのshell_execを使用してunixコマンドを実行できない場合の対処(imagemagick,convert)

概要 みなさんこんにちはcandleです。今回はちょっと問題が起きてshell_execがうまくいかないときのトラブルシューティングをまとめます。 私はMAMPをバージョンアップする前は、phpのsh …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

twitter

スポンサードリンク

アーカイブ