鍵が漏れた日
ある物流会社の配送アプリは、配達完了の写真をバケットに置きます。そのためのクラウドの鍵には、管理者の権限が付いていました。
ある日、開発者がその鍵を、誰でも見られる場所にうっかり載せてしまいました。数時間後、知らない誰かが高い仮想マシンを100台作っていました。
月末の請求は、ふだんの30倍でした。
このレッスンのゴール
メモ
サービスに必要な権限だけを与え、費用を小さく保てる。
今日のキーワード
| ことば | いみ | れい |
|---|---|---|
| 権限 | クラウドで何をしてよいかの許可 | |
| 最小権限 | 仕事に必要な権限だけを与える考え方 | |
| ポリシー | 許可する操作と対象を書いた決まり | 写真バケットに置くことだけ許可 |
| ロール | サービスや人に付ける権限のまとまり | |
| 予算アラート | 使った額が決めた額に近づくと届く知らせ | |
| タグ | 費用を分けるために付ける札 | チーム: 配送 |
学生が入力するセルは、このプレビューでは空白です。
必要な権限だけを与える
クラウドでは、人やサービスにロールを付け、そこに権限をまとめます。権限はポリシーに書きます。「どの操作を」「どの対象に」許可するかの組み合わせです。
最小権限とは、仕事に必要な権限だけを与えることです。配送アプリの仕事は、写真を1つのバケットに置くことだけです。削除や、ほかのバケット、仮想マシンの作成は許可しません。
こうしておけば、鍵が漏れても、できるのは写真を置くことだけです。
例: 配送アプリのポリシー
| 操作 | 対象 | 許可 |
|---|---|---|
| 写真を置く | delivery-photos | する |
| 写真を読む | delivery-photos | しない |
| 写真を消す | delivery-photos | しない |
| ほかのバケットを読む | すべて | しない |
| 仮想マシンを作る | すべて | しない |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
管理者の権限を渡しておけば、あとで困らないと考える人がいます。たしかに「許可がありません」というエラーは減ります。しかし鍵が漏れたとき、相手は何でもできてしまいます。エラーが出たら、そのとき必要な操作を1つだけ足しましょう。
費用は見えるようにして止める
クラウドの費用は、使った分だけ増えます。気づかないうちに増えるのを防ぐ方法は3つです。
1つ目は予算アラートです。月の予算の80%を超えたら、担当者にメールが届くようにします。
2つ目はタグです。仮想マシンやバケットにチーム名を付けると、誰の費用かがわかります。
3つ目は、使わない時間に止めることです。開発用の仮想マシンは、夜と週末に止められます。
例: 開発用を夜と週末に止める
| 動かし方(1時間80円の例) | 月の時間 | 月の料金 |
|---|---|---|
| ずっと動かす | 720時間 | 57,600円 |
| 平日の8時から20時だけ(月22日) | 264時間 | 21,120円 |
| 差 | 456時間 | 36,480円 |
学生が入力するセルは、このプレビューでは空白です。
試す: 予算アラートを確かめる
# 月の予算と、今日までに使った額(説明用の例の金額です)
budget = 100000
spent = {"配送チーム": 52000, "経理チーム": 18000, "検証用": 5000}
total = 0
for team in spent:
total = total + spent[team]
print("合計:", total, "円")
# 予算の80%を超えたら知らせます
if total * 100 >= budget * 80:
print("予算アラート: 80%を超えました")
else:
print("まだ予算の80%未満です")
# 検証用を15000円に変えて、もう一度実行しましょう。