AWS アクセスキーの漏洩を防ぐチェックシート

# AWSセキュリティの第０歩

ユーザー名/パスワード/アクセスキー。これらは漏洩した時のリスクが大きく、AWSを使い始める時にまずなによりも対策しておくべきです。セキュリティの第1歩というより第０歩として「AWSセキュリティの第０歩 確認チェックシート」を作ってみました。ユーザー名/パスワード/アクセスキー に絞ってるため、これをやったから完璧になる訳ではないです。そもそもセキュリティに完璧はないです。
チェックした後、始めやすいところからでもいいので是非実施してください。
(ベストエフォートで時々更新していきます)

##### 注意事項

* ユーザー名/パスワード/アクセスキーに絞った対策
* このチェックシートをやればセキュリティ完璧になるわけではない
* セキュリティは幅広く様々な対策が必要ですが、このチェックはそのスタートラインに立つ前にやっておくこと
* "実施方法参考リンク"は外部リンクに飛ぶ形にしてます。自己責任で実施ください。
* 個人的にやっとくといいと思うものをピックアップ
* Trusted Adviserからユーザー名/パスワード/アクセスキーに関わるものをピックアップ(他の項目と重複ありますが、機械的なチェックになるのでピックアップ)
* 実施難易度が低いものをピックアップ(アクセスキーローテーションなど、中には慎重に行わなければならないものもあり)

# チェックシート

#### AWSアカウント保護ベーシックチェック

|| **やっとくといいリスト**  | 実施済 |実施予定/検討中|実施しない|サービス|実施方法参考リンク|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|AWS ルートアカウントは極力利用しない| □|□|□|IAM||
|2|AWS ルートアカウントのアクセスキーは発行しない| □|□|□|IAM|[ルートユーザーのアクセスキー削除](https://dev.classmethod.jp/articles/delete-root-accesskey/)|
|3|ルートアカウントを MFA で保護する| □|□|□|IAM|[ルートユーザーの仮想MFA有効化](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html#enable-virt-mfa-for-root)|
|4|IAM ユーザーを MFA で保護する| □|□|□|IAM|[IAMユーザーの仮想MFA有効化](https://dev.classmethod.jp/articles/set-up-aws-mfa-on-my-smartphone/)|
|5|強度の強いパスワードポリシーの利用する| □|□|□|IAM|[AWSアカウントのパスワードポリシー設定](https://dev.classmethod.jp/articles/password_policy_for_aws_account/)|
|6|IAM ユーザーのパスワードローテーションする| □|□|□|IAM|[AWSアカウントのパスワードポリシー設定](https://dev.classmethod.jp/articles/password_policy_for_aws_account/)|
|7|アクセスキーのローテーションする| □|□|□|IAM|[アクセスキーローテーションの考え方](https://dev.classmethod.jp/articles/aws-access-key-rotation/)|
|8|EC2 には IAM ロールを利用 (IMDSv2) する| □|□|□|IAM|[EC2にIAMロールをアタッチする](https://dev.classmethod.jp/articles/attach-iam-role-to-existing-ec2/)|
|9|原則 IAM ユーザーのアクセスキーは利用しない| □|□|□|IAM||
|10|IAM ユーザー/アクセスキーは共有しない| □|□|□|IAM||
|11|CloudTrail を有効化する| □|□|□|CloudTrail|[CloudTrail有効化](https://dev.classmethod.jp/articles/aws-cloudtrail-all-regions-on/)|
|12|GuardDuty を有効化する| □|□|□|GuardDuty|[GuardDuty有効化](https://blog.serverworks.co.jp/tech/2020/06/12/hajimetenoaws_guardduty/)|
|13|Trusted Advisor を定期的にチェックする| □|□|□|TrustedAdvisor||

#### Trusted Advisorのアカウント保護に関わる項目

※[推奨アクションはTrusted Advisorに記載](https://dev.classmethod.jp/articles/aws-trusted-advisor-adds-checks-for-amazon-s3-amazon-redshift-reserved-instances-security-and-service-limits/)

||**Trusted Adviser**  | **実施済** |**実施予定/検討中**|**実施しない**|**サービス**|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|IAM の使用 (無料)| □|□|□|IAM|
|2|ルートアカウントの MFA (無料)| □|□|□|IAM|
|3|露出したアクセスキー| □|□|□|IAM|
|4|IAM パスワードポリシー| □|□|□|IAM|
|5|IAM アクセスキーローテーション| □|□|□|IAM|

||**Trusted Adviser Option**  | **実施済** |**実施予定/検討中**|**実施しない**|**サービス**|**実施方法参考リンク**|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|CloudWatch 通知設定する| □|□|□|CloudWatch|[通知設定](https://dev.classmethod.jp/articles/sonobe-trustedadvisor-cloudwatch-integrate/)
|2|開発チームに Trusted Adviser を認知してもらう| □|□|□|Trusted Advisor|[Trusted Advisorとは](https://dev.classmethod.jp/articles/trustedadvisor-security-check/)|

#### 関連するAWSサービス

||**GuardDuty**| **実施済** |**実施予定/検討中**|**実施しない**|**サービス**|**実施方法参考リンク**|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|GuardDuty のキャッチアップする| □|□|□|GuardDuty|[GuardDutyとは](https://dev.classmethod.jp/articles/aws-security-operation-with-guardduty-2021/)|
|2|GuardDuty の操作を把握する| □|□|□|GuardDuty|[GuardDuty の操作を把握する](https://blog.serverworks.co.jp/tech/2020/06/23/guardduty-findings-check/)|
|3|通知設定する| □|□|□|CloudWatch|[通知設定](https://blog.serverworks.co.jp/tech/2020/04/08/guardduty2email/)|

||**CloudTrail**| **実施済** |**実施予定/検討中**|**実施しない**|**サービス**|**実施方法参考リンク**|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|CloudTrail のキャッチアップする| □|□|□|CloudTrail|[CloudTrailとは](https://blog.serverworks.co.jp/tech/2018/03/05/cloudtrail_basic/)|
|2|CloudTrail の操作を把握する| □|□|□|CloudTrail|[様々な操作](https://dev.classmethod.jp/articles/aws-cloudtrail-announces-cloudtrail-insights/)
|3|(オプション)通知設定する| □|□|□|CloudWatch|[通知設定](https://dev.classmethod.jp/articles/cloudtrail-insights-unusual-activity-alert/)|

||**通知**| **実施済** |**実施予定/検討中**|**実施しない**|**サービス**|**実施方法参考リンク**|
|:-----------|:-----------|------------:|:------------:|:------------:|:------------:|:------------:|
|1|アラーム設定方法を把握する| □|□|□|CloudWatch|[CloudWatchアラーム設定](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)


# 参照リンク

[Trusted Advisorのチェック項目](https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/best-practice-checklist/)

[AWSアクセスキー管理のベストプラクティス](https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-access-keys-best-practices.html)

[GuardDuty Blackbelt資料](https://www.slideshare.net/AmazonWebServicesJapan/20180509-aws-black-belt-online-seminar-amazon-guardduty)

[CloudTrail Blackbelt資料](https://www.slideshare.net/AmazonWebServicesJapan/20210119-aws-black-belt-online-seminar-aws-cloudtrail)