Slide 1

Slide 1 text

ちょいテク100本ノック。 できるまで帰しません 明日から、今日から、今から使えるちょいテク集 JAWS-UG Osaka 「知ってると役立つ、AWSちょいテク祭り」 Shogo Muranushi

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

CLI

Slide 4

Slide 4 text

個人に発行した IAMクレデンシャルの ローテーションどうしてます?

Slide 5

Slide 5 text

● 3行でAWSのクレデンシャルをローテーションしてくれるやつ ● 1日1回自動ローテーションも可能 ●   は心理的安全性高い ● Windows版もあるらしい $ brew tap rhyeal/aws-rotate-iam-keys https://github.com/rhyeal/aws-rotate-iam-keys $ brew install aws-rotate-iam-keys $ brew services start aws-rotate-iam-keys $ aws-rotate-iam-keys

Slide 6

Slide 6 text

複数のAWSアカウント利用している時 に −−profile 打つの面倒ですよね

Slide 7

Slide 7 text

● インタラクティブに AWS Profile をスイッチでき るやつ ● MFAは非対応なので今は使ってない。でも Profile名覚えなくていいのでかなり便利でした ● alias ax="source _awsp"

Slide 8

Slide 8 text

● 複数のAWSアカウントを利用している人、 Switch Role利用ユーザは必須 ● CLIツールで --profile に対応していないコマン ドも assume role (Switch Role)出来る $ assume-role stage aws iam get-user or $ assume-role stage MFA code: xxxxxx $ aws s3 ls

Slide 9

Slide 9 text

どのAWSアカウントが設定されている かわからん

Slide 10

Slide 10 text

● いちいち細かいコマンドまで覚えない ● サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい ● s3 と ls くらいは覚えられる クレデンシャルが正しく設定されているかの確認方法

Slide 11

Slide 11 text

● いちいち細かいコマンドまで覚えない ● サクッとどのAWSアカウントのクレデンシャルが設定されているか確認し たい ● s3 と ls くらいは覚えられる $ aws s3 ls クレデンシャルが正しく設定されているかの確認方法

Slide 12

Slide 12 text

Terraformの0.11と0.12って変わりすぎじゃね? 0.12に上げたら既存のコード動かないんだけど

Slide 13

Slide 13 text

● Terraformをバージョンを切り替えられるやつ ● 0.11系と0.12系の記述方法が結構違うのでバージョン依存はかなり 困る ● 基本最新版を利用していたが、隣のチームの多数あるTerraformの コードを0.12に書き換えるのは不毛だったので切り替えツールを利用 し始めた $ brew install tfenv $ tfenv install 0.11.14 $ tfenv install 0.12.20 $ tfenv list $ tfenv use 0.11.14

Slide 14

Slide 14 text

コンソール

Slide 15

Slide 15 text

セキュリティ要件でMFA有効にして 毎日MFA入れている方に朗報です

Slide 16

Slide 16 text

U2F セキュリティキーの有効化 + Krypton ● U2F いわゆる YubiKey 等で多要素認証するやつ ● Krypton と組み合わせれば、MFAコードを毎回入力することなく自動で ログインできる ● CLIは非対応なので、コンソール用とCLI用のIAMユーザを保有しています +

Slide 17

Slide 17 text

コンソールの複数のAWSアカウントを切り 替えるスイッチロールの切り替え履歴5 件って少なくね?

Slide 18

Slide 18 text

● AWSコンソールのSwitch Roleは最大5個ま でしか記憶しないので沢山拡張してくれるやつ ● Chrome / Firefox の拡張機能 ● アカウントに色を付けられるので、dev, stage, prodで色分けして使ってます [profile test] role_arn = arn:aws:iam::123456789012:role/test color = ffaaee

Slide 19

Slide 19 text

セキュリティ

Slide 20

Slide 20 text

入社するたびに「IAMユーザください」と言われる。 使わなくなっても言ってこないよね・・? クレデンシャルとか放置プレイで意識せぬままに漏洩とか、 いろいろ怖い

Slide 21

Slide 21 text

100日以上使用していないIAMユーザは問答無用で消す ● 100日以上AWSのアクティビティが無い=要らないと判断し強い気持ちで削除 ● メリット ○ 個人のIAMユーザのクレデンシャルをシステムに組み込まない ■ 退職時の個人アカウントリスクも防げる ○ 不要なアカウントの漏洩リスクが排除できる ■ 使わない人に限ってパスワードが脆弱だったり ○ は心理的安全性高い

Slide 22

Slide 22 text

ビリング

Slide 23

Slide 23 text

請求情報だけじゃ1つのAWSアカウント内で、 どの機能・プロジェクトでコストがかかってるか わからんぜよ

Slide 24

Slide 24 text

コスト配分タグを活用 ● 解説 ○ 一言でいうと、任意に付与した AWSリソースのタグでコストの集計 が可能 ● ABEJAでは Key: Project, Value: <機能名> を付与 している ● リソースにタグ付け出来ないものもある ○ CW LogsやEKSなど ○ コストエクスプローラーで `No Tagkey: Project` で絞り込み 可能 ● タグエディターで一括付与もできる

Slide 25

Slide 25 text

あなたが転職してAWS周りを 見ることになったら初めに何や るかシリーズ

Slide 26

Slide 26 text

一番目はBillingを見る ● 無駄なリソースが無いか確認 ○ プロビジョンドIOPSは高い ○ 関連付けられていないEIP ○ in-use状態じゃないEBS ○ インスタンスがぶら下がっていないELB、など ● 基本的にヒアリングしないと分からないけど、まずは金額が一番大きい ところから手をつける

Slide 27

Slide 27 text

二番目はSecurity Groupを見る ● みんなやっちゃう 0.0.0.0/0 ● 理由を必ず確認して閉じるアーキテクチャに変更しよう

Slide 28

Slide 28 text

三番目はIAMを見る ● IAMユーザは全AWS環境で1人1つ。複数持たない ● AWS内部のシステムはIAMロールに ● AWS外部のシステムはやむを得ずIAMユーザで

Slide 29

Slide 29 text

デモをしてるとこの辺で20分位なはず ● 残り ○ Kubernetes系のちょいテク ○ Terraform系のちょいテク

Slide 30

Slide 30 text

kubectl系で使用しているalias # Kubernetes source <(kubectl completion zsh) alias k='kubectl' alias kx='kubectx' alias knx='kubens' alias kp='kubectl get pod' alias kpd='kubectl describe pod' alias kl='kubectl logs' alias kn='kubectl get node' alias kh='kubectl get hpa' function ke () { kubectl exec -it ${1} bash }

Slide 31

Slide 31 text

● Kubernetes の Terminal UI ツール ● いちいちコマンド打たなくてもインタラクティブに管理できる

Slide 32

Slide 32 text

● Nodeの中身を俯瞰して可視化する ツール ● NodeにどのようなPodが配置されて いるか ● Nodeのリソース状況はどうか ● コンテナの状態 ● コンテナの使用率など

Slide 33

Slide 33 text

Terraformのちょいテク

Slide 34

Slide 34 text

Terraformのちょいテク 全部をTerraformで構築しようとするな 数時間かける位やったら手作業でもええやん

Slide 35

Slide 35 text

以上、ご清聴ありがとうございました