サービスが大きくなればなるほど、セキュリティは重要になってくる
じゃあ最初から強固なものにしよう
- 強固なパスワード
- グループメール
- MFA(多要素認証)
- ルートアカウントのアクセスキーは使わない
- CloudTrail有効化
- git-secrets導入
- IAMユーザー、グループ、ロール
■ 参考
AWSリソースについてセキュリティベストプラクティスに従った設定をしよう!
git-secretsでAWSの不正利用を防ぐ
- 強固なパスワード
- グループメール
- MFA(多要素認証)
- ルートアカウントのアクセスキーは使わない
- CloudTrail有効化 ← これ
- git-secrets導入 ← これ
- IAMユーザー、グループ、ロール ← これ
これの部分を今日は話します
CloudTrail
AWSの操作履歴がすべて取得できるようになる戦犯発見サービス。
グラフとかにもできるっぽい。ログはS3に保存される。
■ 参考
TrailDashでCloudTrailを可視化する
git-secrets
リポジトリにアクセスキーなどが混入しないようにするためのAWS謹製Gitプラグイン。
アクセスキーやシークレットキーはgit管理すんなよというAWSからのお達し。
使い方(インストール)
$ brew update
$ brew install git-secrets
使い方(設定)
- gitconfigにアクセスキーの標準パターンを登録
=> これだけだと無効なまま。一応ファイル内のスキャンはできる - gitコミット時のhookに設定
- 例外があれば設定
具体的な設定方法はこちらの記事が参考になります
IAMユーザー、グループ、ロール
Identity and Access Management
それぞれの役割
- ユーザー
- コンソールサインイン、APIまたはCLIのリクエストを行うのに使用
- グループ
- ユーザーの集合。グループに属するユーザーに一括で権限付与できる
- ロール
- 特定タスクに応じてユーザーやサービスに権限付与できるもの
- 認証情報(アクセスキー等)は関連付けられない
問題
IAMロールのユースケースをひとつあげてください
- EC2インスタンスから他のAWSサービスにアクセスする必要がある時に権限を与えるためアタッチする
■ 参考
Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス権限を付与する
- ルートアカウントだと権限が強すぎるので、必ずIAMユーザーを作成して適切な権限を付与
- アクセスキーはできるだけ作成せず、IAMロールで利用することを推奨
しましょう
さらにIAMのベストプラクティスを知りたい場合はこちらへどうぞ