S3について
S3 Simple Storage Service 頭文字のSが3つでS3です。
用途・名称
アクセス方法
アクセス制限・認証
Website Hosting
保管方法
1. 用途・名称 用途は、ファイルを保存し、それを読み出すことができます。 ファイルを貯めておくところを「backet」と呼びます。 backetに入れるファイルを「object」と呼びます。
2. アクセス方法 アクセスの方法は2種類あります。 ・S3 API ・URLで直接アクセス
3. アクセス制限・認証 どこからでもアクセスできては困る場合に制限をかけれます。 https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingRRS.html ①IP制限 特定のユーザーしかアクセス出来ないようにする場合には良いです。 IAMロールを利用して、Amazon S3にIPアドレス制限 | Boiler Room ②時間制限 一時的にユーザーにダウンロードさせたい時などに使えます。 blog.cloudpack.jp どちらもIAMの設定が必要ですので、お忘れなく。 ③Query String(クエリストリング) Webブラウザからのリクエストの場合に使えます。 http://dev.classmethod.jp/cloud/aws/s3-cors-upload/ 4. Website Hosting backetに静的HTMLファイルを入れて、ウェブサイトを表示させることができます。 例)http://example-bucket.s3-website-region.amazonaws.com
docs.aws.amazon.com 但し、S3のURLの前にはどっとは一つしか使えない点と、SSLは使えない点にご注意下さい。 独自ドメインで表示させたいという方は、 Route53というAWSのDNSサービスを利用することで可能になります。
5. 保管方法
①標準ストレージ
デフォルトのストレージです。 何もしなかったら標準になります。
②低冗長化ストレージ(Reduced Redundancy Storage) オブジェクトをアップロードする際に、標準ストレージか低冗長化ストレージかを選択できます。 標準ストレージよりも重要ではない再生可能なデータは、コストが安くなる低冗長化ストレージを選択した方が良いです。 ログの集計ファイルはこちらが向いてます。 docs.aws.amazon.com
③Glacier 低冗長化ストレージよりもめったにダウンロードしないものを保管するのに適しています。 低冗長化ストレージよりも安いですが、ダウンロードする時に費用がかなりかかります。 S3に保管していたものをそのままGlacierに保管して使います。 dev.classmethod.jp
Elastic Beanstalk
Elastic Beanstalk 発音は、「えらすてぃっく びーんすとーく」だそうです。 びーんずとーくだと思ってました(笑)
Beanstalkのイメージは下図な感じ↓ Applicationの大枠があり、 environmentがありまして、それぞれにendpointがついており、cnameを設定できます。 Ex)test.example.com environmentはいくつも作れます。 Versionという枠があり、ソースコードをバージョン毎に格納します。 裏側はS3のバケットです。 仮に上を本番環境、下をステージング環境とします。 Ver.1.0を本番に、Ver.1.1をステージングにでデプロイして、開発を進めていくこととします。 ステージングの検証が問題ないので、Ver.1.1を本番にデプロイしたい! そんな時もすぐできます! そしてすぐ戻せるのです。
environmentの中には大きく2種類あって、 ①Web Server環境 ②Worker環境 があります。 HTTPリクエストを処理するウェブアプリケーションならWebServer バックグラウンドプロセスタスクを処理するアプリケーションならWorker 環境で作成します。 Worker環境のものをデプロイしてSQSに書き込める バックグラウンド処理タスクを実行できます。 また、Versionのファイルの中に.ebextensionsフォルダを置いて、 その下の各ファイルにコマンドやオプション設定を記述して、デプロイ時に実行するコードを入れておくことができます。
全体の裏側が実はCloudFormationで、別のリージョンにもすぐにコピーできたりするらしい。 すごい!
AWSを触ってみた①の続き ~ IAM その2~
前回はIAMの設定方法でした。 今回はもう少し掘り下げます。 ポリシーの中にも 「管理ポリシー」と「インラインポリシー」があります。 そして「管理ポリシー」の中にも 「AWS管理ポリシー」と「カスタマー管理ポリシー」があります。
管理ポリシーは、IAM画面の左側に記載されているポリシーのことです。
カスタマー管理ポリシーは、管理者が自分で作るポリシーです。
グループに割り当てると、そのグループに所属するユーザは全員同じポリシーが割り当てられます。
インラインポリシーは、他のユーザーやグループ、ロールに影響しない独自のポリシーを設定できます。
ロールでどこからのアクセスに対しての許可をするのかも決めます。
ロール作成時のロールタイプを選択するときにEC2を選択すれば、EC2からのアクセスを許可することになります。
信頼関係タブの信頼されたエンティティに書いてあるドメインがアクセス許可されたサービスを表しています。
管理ポリシーでアクセス許可、インラインポリシーでアクセス拒否の場合
管理ポリシーでアクセス拒否、インラインポリシーでアクセス許可の場合
つまり、どちらかで拒否してたら、許可してても拒否が優先されます。
AWSを触ってみた① ~ IAM ~
AWSについてきちんと学ぼうということで、書いていきます。
IAM(Identity and Access Management)
~ 設定手順 ~
サービスからIAMを選択する。
まずユーザー作成
左側からユーザーを選択する。
新規ユーザーの作成をクリックし、ユーザー名を入力し作成。
ユーザーを選択し、アクセス許可タブのポリシーのアタッチをクリック
許可したいポリシーを選択し、ポリシーのアタッチをクリック
ロールの設定
左側からロールを選択する
新しいロールの作成をクリック
ロール名を入力
どこからのアクセスなのかを選択
ポリシーを選択し次のステップ
確認画面でロールの作成
パスワードを設定
ユーザーを指定する
認証情報タブを選択
パスワードの管理をクリック
認証情報のダウンロードをしておく
手順は上記の通りで、 まずAdministratorのポリシーをつけた管理者ユーザー作る。 S3を利用する場合は、S3のみFullAccessポリシーをつけたユーザを作りましょう!
Kerberos
Kerberos 今回は、ケルベロス認証についてです。 公式はここかな Kerberos: The Network Authentication Protocol ケルベロス認証とは、ネットワーク認証方式の1つでありサーバとクライアント間の身元確認のために使用するプロトコルです。 Kerberosはクライアントとサーバとを相互認証できるだけでなくデータ保全のためにクライアントとサーバ間の通信を暗号化します。 現在ではKerberosバージョン 5 が主に使用されています。
KerberosはWindows Server Active Directoryのユーザ認証の際に使用しているプロトコルだそうです。 ちなみにActive Directoryとは、 Windows Serverの機能の一つで、管理するネットワーク上に存在する様々な資源やその利用者の情報や権限などを一元管理することができるもの e-words.jp
次の3つがおもな機能です。
ユーザー認証(Kerberosバージョン5)
クライアント管理(SMB:ファイル共有)
ようは、LDAPでユーザ情報が格納されてて、Kerberosで認証とアクセス範囲を承認しているわけですね
Kerberosの構成要素として、
- KDC ( Key Distribution Center ):サーバとユーザに関する信頼関係の情報を一括管理する中央データベース
- AS ( Authentication Server ):認証サーバ。ユーザからの認証を受け付けるサーバ
- TGS ( Ticket Granting Server ):チケット発行サーバ。各サーバを利用するためのチケットを発行するサーバ
- プリンシパル ( principal ) :KDCが認証を行うユーザやサーバのこと
- レルム ( realm ):同じKDCの配下にあるシステムをグループとして定義する論理ネットワーク こんなのがあるそうです。
www.infraexpert.com また、PAMモジュールを使うと、Linuxマシンの認証を外部のKDCにより行えるようにできます。 CentOSなら→ pam_krb5 Debianなら→ libpam-krb5 KDCとしてActiveDirectoryのDomainControllerを指定することで、Linuxマシンの認証がActiveDirectoryに統合されます。
RFC 742とRFC 1288
RFC 742
Name/Fingerプロトコル K. Harrenstien. December 1977 用途は、 ネットワークサイト内の特定コンピュータまたは特定人物のステータスを表示するのに使われる。 ネットワーク内の他のユーザーに関する情報を得たいという要望に応えたものであった。 誰がログインしているかという情報は、その人にどこに行けば会えるかということを判断する材料となる。
Fingerプロトコル - Wikipedia どういう機能かというと、 Name/Finger プロトコル (FINGER) は、アプリケーション・レベルのインターネット・プロトコルで、finger コマンドと fingerd デーモンの間のインターフェースを提供します。 fingerd デーモンは、現在ログインしているユーザーの情報を、指定されたリモート・ホストへ戻します。 finger コマンドに特定のホストのユーザーを指定して実行すると、そのユーザーに関する詳細情報を入手できます。 FINGER プロトコルは、リモート・ホスト上と要求側ホストに用意しておく必要があります。 FINGER は、伝送制御プロトコル (伝送制御プロトコル) をその基礎となるプロトコルとして使用します。
RFC 1288
Finger ユーザー情報プロトコル D. Zimmerman. December 1991.
仕組みはこんな感じらしい。
Finger はTCPのポート番号79を使う。
リモートホストでは、そのコネクションの要求を処理するための RUIP (Remote User Information Program) が起動される。
ローカルホストはRUIPにFingerクエリ仕様に基づいた1行のクエリを送信し、RUIPの応答を待つ。
RUIPはそのクエリを受信して処理し、返答し、コネクションをクローズさせる。
ローカルホストは答を受信すると、ローカル側のコネクションのクローズを行う。
[その他の特徴] サーバ側の実装は fingerd(finger daemon)、クライアント側の実装は name と finger があり、その時点のシステムおよび特定人物に関するステータス情報を人間が読める形式で表示する。 特にフォーマットは決まっておらず、コマンド行1行ぶんの内容をプロトコルの応答として返す。 UNIX、Unix系システム、最近のWindowsで実装されている。 このプログラムは、あるユーザーがログインしているか、そのメールアドレス、フルネームなどの情報を提供する。 そのような標準のユーザー情報以外に、そのユーザーのホームディレクトリに .project ファイルや .plan ファイルがあれば、その内容も表示する。
finger コマンド IBM Knowledge Center
fingerd デーモン IBM Knowledge Center
Gopher
Gopherってなんだ???
インターネットがテキストベースのネットワークであった当時の情報検索システムだそうです。 コンピュータに置かれたファイルに見出しをつけて階層化し、メニューにしたがって検索が行える仕組み
WWWの普及や、Gopherそのものが日本語などマルチバイト文字環境に対応していなかった為、使われなくなったそうです。
動作的には、 基本は70番ポートでやりとりして、返ってくるのはファイルの階層情報のみ
たったそれだけ~
昔はめっちゃ使ってたのかなぁ・・・
追記:2016/02/19
「アフリカと南極以外のすべての大陸にサーバーが存在している。」 2004年の記事だけど、その時はWWWが登場してもかなりあったってことですね。すげー!