name: orientation class: title, smokescreen, shelf, no-footer # クラウドコンピューティング<br><small>第05回 ネットワークを制御する権限</small> <div class=footnote> <small><small> 3年、秋学期、選択; 旧「オペレーティングシステム」 ;脚注はELや定期試験の範囲ではありません </small></small> </div> --- class: compact # <small>前回までのあらすじ++</small> <div class=footnote> <small><small> </small></small> </div> - マルチユーザなので、ユーザを区別する必要があります - ユーザには権限の違いがあります - 特に一般ユーザと管理者ユーザ(root)の相違は重要です - ユーザの権限は、ユーザが起動した - (a)プロセスにも - <B>(b)プロセスが利用する機能(例:ネットワーク)にも影響を与えます</B> <br> つまり、ユーザの権限がプロセスに紐づいているわけです --- class: compact # <small>ユーザとネットワークの制限</small> <div class=footnote> <small><small> (脚注) 【復習】 ポート番号とは、春学期のネットワークで取り上げたTCPやUDPのポート番号のことです。 アプリケーション(正確にはプロトコル)を区別する識別番号。 例: WWWサーバ(HTTP)のポート番号は80、DNSは53、SSHは22 </small></small> </div> - 一般ユーザ admin <small> - 普通に利用する(例:ブラウザを使うなどの)場合、制限はありません <br> 正確には、<B>rootが設定した制限の中で無制限</B>と言うべきですね - お試しのサーバ(ポート番号が1024以上)を起動することは可能(例: 8080/tcpで試験) </small> - 管理者ユーザ root <small> - 主要サービスのサーバ(ポート番号が1024未満)の起動ができます 【演習に関わる重要ポイント】 <br> WWWサーバ、DNSサーバ、メールサーバなど重要なサーバは全て、このカテゴリです - OSの各種設定変更や制限の追加・削除ができます - IPアドレスやホスト名などの基本設定 - フィルタ(利用方法の制限)や流量の制限が出来ます </small> --- class: compact # <small>事例: www.py</small> <div class=footnote> <small><small> (脚注) Unixでは全デバイスをファイルと抽象化して考えています。 だから80/tcpというネットワークを待ち受ける何か(専門用語ではソケット)もファイルの一種なので、 「80/tcpを開く」という慣用表現があるのだと思いますね </small></small> </div> <small> - www.pyはWWWサーバなので、80/tcp(TCPのポート番号80)でリクエストを待ち受けようとします - root権限が無いと、www.pyのプロセスは80/tcpを利用することができません - 一般に、業界人は、これを「www.pyが80/tcpを開けない」などと表現しています - そういうわけでsudoをつけてwww.pyを起動する必要があるわけです ``` $ curl -O http://api.fml.org/dist/www.py $ sudo python3 /home/admin/www.py // chmod a+x すればpython3は不要(第04回の内容を踏まえた例) $ chmod a+x /home/admin/www.py $ sudo /home/admin/www.py ``` </small> --- class: compact,col-2 # <small>【ネットワークの復習】ネットワーク機材とフィルタ</small> <div class=footnote> <small><small> (脚注) いずれの図も春学期の科目「コンピュータネットワーク」より </small></small> </div> <small> ![height320px](../../../skill-network/images/router-and-switches.png) ポート(ケーブルを挿す口)ごとにフィルタが設定できますが、 そうそう、そんな細かい設定はしません ![height320px](../../../skill-network/images/campus-network-concept-01-flow.png) 実際のネットワーク図は、こんな感じです。 通信の許可・不許可は、矢印のように大味な制御だけをしています </small> --- class: compact # <small>AWSとUnixのフィルタの区別(1)</small> <div class=footnote> <small><small> (脚注) VPSをレンタルするなどして自分でサーバを立てる場合は、 Unixのフィルタを設定してください </small></small> </div> - **EC2**とは、AWSが提供する(仮想の)PCハードウエア <small> - EC2(という仮想PC)にOSをインストールすることが出来ます <br> つまりEC2上でOSを動かすことが出来ます - たいていはAWS提供のインストール済みイメージ(AMI = AWS Machine Image)を利用してシステムを構築します。 本科目で使っているイメージはAWS提供のDebian GNU/Linuxイメージ </small> - EC2構築時にsecurity groupを選択しますが、これはAWSの機能(!= Unixの機能) <small> - UnixとAWSの機能を区別することは大事です - この科目で解説しているのは(EC2の上で動かす)Unixの機能です - security groupはEC2外のどこかで動作しているフィルタです <br> つまりsecurity groupはUnixと無関係です </small> --- class: compact,col-2 # <small>AWSとUnixのフィルタの区別(2)</small> <div class=footnote> <small><small> (脚注) この図(春学期の再掲)はオンプレミスぽい書き方をしています。 security groupの説明(場所)が正しいのか?は不明です。 AWSは正確な技術的説明をしてくれないので真偽が判断出来ません。 まぁ、こんな感じだろうという図(イメージ)になってます </small></small> </div> <small> ![height320px](../../../service/aws/academy/images/aws-acl-overview.png) (2)がUnixのフィルタです。 フィルタは未設定(つまり全通信は素どおしというザル設定)がEC2 default ![height320px](../../../service/aws/academy/images/aws-security-overview.png) 全体構成図: 本科目でも、そのうちEC2からAWSのサービスを使いますが、 ここ(図の(4))には初めから制限がかかっています。 IAMはAWSの権限設定です </small>