joppot

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

サーバ

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

投稿日:


fawe

概要

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

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

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

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

前提

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


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

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

関連記事

td-agent-uiのセットアップとfluent-catで動作確認

English 日本語 概要 みなさんこんにちはcandleです。今回はtd-agent-uiのセットアップと動作確認をしてみたいと思います。 td-agentはfluentdをよりサーバで運用しやす …

Mysqlの管理ユーザーを追加する

概要 みなさんこんにちはcandleです。今回はmysqlの管理者を加える方法です。 この記事は別段書かなくても、いくらでもweb上にあるのですが、私がよく使うのでまとめました。 前提 mysqlの実 …

React + S3 + Route53 + CloudFrontでSSL使ってHTTPS化

概要 みさんさんこんにちはcandleです。今回はS3にデプロイしたReact webの通信をSSL化してみたいと思います。 最近はAPIサーバとReactフロントエンドを分離してwebサービスを提供 …

fluentdのs3 pluginを使用して日付区切りでログデータをS3に送信する

概要 みなさんこんにちはcandleです。今回はfluentdのs3プラグインを使用して、railsなどのログを日単位でS3に投げる方法を紹介します。もちろん、応用して年単位とか月単位、時間単位で区切 …

CentOS6.5にcomposerをインストールする

概要 みなさんこんにちはcandleです。cakephpではphpのライブラリ管理ツールcomposerと連帯して、便利に必要なライブラリを導入できます。 例えば、cakephpの標準テストツールph …

  • English
  • 日本語

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