SEC 2: ユーザー ID とマシン ID はどのように管理したらよいでしょうか?
安全に AWS ワークロードを運用するアプローチには、管理する必要があるアイデンティティが 2 種類あります。管理およびアクセス権を付与する必要があるアイデンティティのタイプを理解することで、適切な ID が適切な条件下で適切なリソースにアクセスできるようになります。ユーザー ID: 管理者、開発者、オペレーター、エンドユーザーは、AWS 環境とアプリケーションにアクセスするために ID を必要とします。これらの者は、あなたの組織のメンバー、または共同作業を行う外部ユーザーで、ウェブブラウザ、クライアントアプリケーション、またはインタラクティブなコマンドラインツールを介して AWS リソースを操作する人たちです。マシン ID: サービスアプリケーション、運用ツール、およびワークロードには、たとえばデータの読み取りを行うために、AWS のサービスにリクエストを送るための ID が必要です。このような ID には、Amazon EC2 インスタンスや AWS Lambda 関数など、AWS 環境で実行されているマシンが含まれます。また、アクセスを必要とする外部関係者のマシン ID を管理することもできます。さらに、AWS 環境にアクセスする必要があるマシンが AWS 外にある場合もあります。
リソース
Mastering identity at every layer of the cake
Managing user permissions at scale with AWS SSO
Best Practices for Managing, Retrieving, and Rotating Secrets at Scale
IAM Best Practices
The AWS Account Root User
Getting Started with AWS Secrets Manager
Temporary Security Credentials
Identity Providers and Federation
Security Partner Solutions: Access and Access Control
ベストプラクティス:
-
強力なサインインメカニズムを使用する: パスワードの最小長を適用し、一般的なパスワードやパスワードの再使用を避けるようにユーザーを教育します。ソフトウェアまたはハードウェアのメカニズムを使用した Multi-Factor Authentication (MFA) を義務化することで、セキュリティを強化できます。
-
一時的な認証情報を使用する: 一時的な認証情報を動的に取得するために ID を要求します。人員 ID の場合、AWS Single Sign-On、または IAM ロールによるフェデレーションを使用して AWS アカウントにアクセスします。マシン ID の場合、長期的なアクセスキーではなく IAM ロールの使用を要求します。
-
シークレットを安全に保存して使用する: サードパーティーアプリケーションへのパスワードなどのシークレットを必要とする人員 ID とマシンの ID については、専門的なサービスの最新の業界標準を使用して自動ローテーションを使用して保存します。
-
一元化された ID プロバイダーを利用する: 人員 ID の場合、一元化された場所で ID を管理できる ID プロバイダーを利用します。これにより、1 つの場所からアクセスを作成、管理、取り消すことができるため、アクセスの管理が容易になります。これにより、複数の認証情報の要件が軽減され、HR プロセスと統合する機会がもたらされます。
-
定期的に認証情報を監査およびローテーションする: 一時的な認証情報を利用できず、長期的な認証情報を必要とする場合、認証情報の監査を行い、定義されているコントロール (MFA など) が義務化されているか、定期的にローテーションされているか、アクセスレベルが適切かどうかを確認します。
-
ユーザーグループと属性を活用する: 一般的なセキュリティ要件を持つユーザーを ID プロバイダーによって定義されたグループに配置し、アクセスコントロールに使用される可能性のあるユーザー属性 (部署や場所など) が正確で、最新の状態に保たれるようにするメカニズムを導入します。アクセスを制御するには、個々のユーザーではなくこれらのグループと属性を使用します。これにより、ユーザーのアクセスニーズが変化したときに多くの個別のポリシーを更新することなく、ユーザーのグループメンバーシップや属性を 1 回変更することで、アクセスを一元管理できます。
改善計画
強力なサインインメカニズムを使用する
https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1
https://aws.amazon.com/iam/details/mfa/
http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html
Rotate credentials regularly
一時的な認証情報を使用する
Grant least privilege
Reducing policy scope by viewing user activity
View role access
Lab: IAM permissions boundaries delegating role creation
Lab: IAM tag based access control for EC2
Attribute-based access control (ABAC)
シークレットを安全に保存して使用する
AWS Secrets Manager
一元化された ID プロバイダーを利用する
Identity Providers and Federation
Amazon Cognito
Finding unused credentials
Deleting an IAM group
定期的に認証情報を監査およびローテーションする
IAM Access Analyzer
Getting credential report
Lab: Automated IAM user cleanup
Use access levels to review IAM permissions
Lab: Automated deployment of IAM groups and roles
ユーザーグループと属性を活用する
AWS Single Sign-On - Manage Identities
What Is ABAC for AWS?
Lab: IAM Tag Based Access Control for EC2