自分の AWS アカウントとそのリソースをセキュアにするためのベストプラクティスについて教えてください。
最終更新日: 2022-08-22
自分の AWS アカウントとそのリソースをセキュアにするためのベストプラクティスについて教えてください。
- または -
AWS リソースまたはアカウントを不正なアクティビティから保護したいと考えています。
簡単な説明
AWS は、アカウントを保護するのに役立つ多くのツールを提供しています。ただし、これらの対策の多くは既定では有効になっていないため、実装するには直接的な措置を講じる必要があります。以下、アカウントとリソースの安全確保に役立つベストプラクティスの事例をご紹介します。
- パスワードとアクセスキーを保護する
- AWS アカウントのルート ユーザーで多要素認証 (MFA) を有効にする AWS Identity and Access Management (IAM) にインタラクティブにアクセスできるすべてのユーザー
- リソースへの AWS アカウントのルート ユーザー アクセスを制限する
- IAM ユーザーとそのポリシーを頻繁に監査する
- Amazon Elastic Block Store (Amazon EBS) スナップショット、Amazon Relational Database Service (Amazon RDS) スナップショット、および Amazon Simple Storage Service (Amazon S3) オブジェクト バージョンを作成する
- AWS Git プロジェクトを使用して、不正使用の証拠をスキャンする
- アカウントとそのリソースをモニタリングする
ノート:AWS Identity Center または IAM フェデレーション ユーザーを使用している場合、IAM ユーザーのベスト プラクティスはフェデレーション ユーザーにも適用されます。
解決方法
パスワードとアクセスキーを保護する
パスワードとアクセスキーは、アカウントにアクセスする際に使用される主要な 2 種類の認証情報です。パスワードとアクセス キーは、AWS ルート ユーザー アカウントと個々の IAM ユーザーに適用できます。パスワードとアクセス キーは、他の機密の個人データと同じように安全に保護することをお勧めします。パブリックにアクセス可能なコード (パブリック Git リポジトリなど) に埋め込まないでください。さらなるセキュリティ強化のため、すべてのセキュリティ認証情報は頻繁にローテーションまたは更新してください。
パスワードまたはアクセス キーのペアが漏洩した疑いがある場合は、次の手順に従います。
MFA を有効にする
MFA をアクティブ化すると、アカウントを保護し、承認されていないユーザーがセキュリティ トークンなしでアカウントにログインするのを防ぐことができます。
セキュリティを強化するには、AWS リソースを保護するために MFA を設定するのがベストプラクティスです。あなたはできる IAM ユーザーの仮想 MFA をアクティブ化するsそしてその AWS アカウントのルート ユーザー.root ユーザーの MFA をアクティブ化すると、root ユーザーの資格情報のみが影響を受けます。アカウント内の IAM ユーザーは、独自の認証情報を持つ個別の ID であり、各 ID には独自の MFA 設定があります。
詳細については、を参照してください。AWS でのユーザーの MFA デバイスのアクティブ化
リソースへのルートユーザーアクセスを制限する
ルート ユーザー アカウントの資格情報 (ルート パスワードまたはルート アクセス キー) により、アカウントとそのリソースへの無制限のアクセスが許可されます。アカウントへのルート ユーザー アクセスを保護し、最小限に抑えることは、ベスト プラクティスです。
アカウントへのルートユーザーアクセスを制限するには、以下の戦略を考慮します。
- アカウントへの日常的なアクセスには IAM ユーザーを使用します。アカウントにアクセスしているのがあなただけの場合は、最初の IAM 管理者ユーザーとユーザー グループの作成
- ルート アクセス キーの使用を排除します。代わりに、それらを IAM アクセス キーにローテーションしてから、未使用のアクセス キーを削除する。
- アカウントの root ユーザーに MFA デバイスを使用します。
詳細については、次を参照してください。root ユーザーの資格情報を保護し、日常のタスクには使用しないでください。
IAM ユーザーとそのポリシーを頻繁に監査する
IAM ユーザーと作業を行うときは、以下のベストプラクティスを考慮します。
- IAM ユーザーが、意図したタスクを完了するのに十分な権限のみを持つ、可能な限り最も制限的なポリシーを持っていることを確認してください (最低限の特権) 。
- 使用するAWS IAM Access Analyzer既存の権限を分析します。詳細については、次を参照してください。IAM Access Analyzer は、アクセス アクティビティに基づいて IAM ポリシーを生成することにより、最小権限のアクセス許可の実装を容易にします.
- タスクの各セットに異なる IAM ユーザーを作成する。
- 同じ IAM ユーザーに複数のポリシーを関連付けるときは、厳格度が最も低いポリシーが優先されるように留意する。
- IAM ユーザーとそのアクセス許可を頻繁に監査します。未使用の認証情報を見つける.
- IAM ユーザーがコンソールにアクセスする必要がある場合は、コンソール アクセスを許可するパスワードを設定するユーザーの権限を制限しながら。
- 個別設定コンソールにアクセスできる各 IAM ユーザーの MFA デバイス。
を使用できます。IAM コンソールのビジュアル エディター安全なポリシーを定義するのに役立ちます。一般的なビジネス ユース ケースの例と、それらに対処するために使用できるポリシーについては、次を参照してください。IAM のビジネス ユースケース。
Amazon EBS スナップショット、Amazon RDS スナップショット、および Amazon S3 オブジェクト バージョンを作成する
EBS ボリュームの特定時点のスナップショットを作成するには、次を参照してください。Amazon EBS スナップショットを作成する。
Amazon RDS 自動スナップショットを有効にしてバックアップ保持期間を設定するには、以下を参照してください。自動バックアップの有効化。
バックアップとアーカイブ用の標準 S3 バケットを作成するには、次を参照してください。バックアップとアーカイブ用の標準 S3 バケットの作成。S3 バケットのバージョニングを作成するには、を参照してください。S3 バケットでのバージョニングの使用。
コンソールを使用して AWS Backup プランを作成するには、以下を参照してください。スケジュールされたバックアップを作成する。AWS Command Line Interface (AWS CLI) を使用して AWS Backup プランを作成するには、以下を参照してください。AWS CLI を使用して AWS Backup プランを作成したり、オンデマンドジョブを実行したりするにはどうすればよいですか?
AWS Git プロジェクトを使用して不正使用から保護する
AWS は、アカウントを保護するためにインストールできる Git プロジェクトを提供しています。
- Git シークレット 秘密情報 (アクセス キー) のマージ、コミット、およびコミット メッセージをスキャンできます。Git Secrets が禁止された正規表現を検出した場合、それらのコミットが公開リポジトリに投稿されるのを拒否することができます。
- AWS Step Functions および AWS Lambda を使用して、AWS Health から、または AWS Trusted Advisorで、Amazon CloudWatch Events を生成します。アクセス キーが公開されているという証拠がある場合、プロジェクトは、イベントを自動的に検出、ログ記録、軽減するのに役立ちます。
アカウントとそのリソースをモニタリングする
異常なアクティビティやアカウントへのアクセスを検出するには、アカウントとそのリソースを能動的にモニタリングすることがベストプラクティスとなります。以下のソリューションのひとつ、または複数を検討してください。
- 請求アラームを作成して、推定 AWS 料金を監視します請求額が定義したしきい値を超えたときに自動通知を受け取る。詳細については、次を参照してください。 Amazon CloudWatch のよくある質問.
- AWS アカウントの証跡を作成する特定の API 呼び出しを開始するために使用される資格情報と、それらがいつ使用されるかを追跡します。そうすることで、その使用が偶発的なものか、許可されていないものかを判断するのに役立ちます。また、そういった問題を減らすための適切な措置も講じることができます。詳細については、次を参照してください。AWS CloudTrail でのセキュリティのベストプラクティス。
- アクセスキーの使用状況のモニタリングと併せて CloudTrail および CloudWatch を使用し、異常な API コールに関するアラートを受け取る。
- リソース レベルのロギングをアクティブ化 (たとえば、インスタンスまたは OS レベル) し、 Amazon S3 のデフォルトのバケット暗号化。
- Amazon GuardDuty を有効にするサポートされているすべてのリージョンの AWS アカウントに。オンにすると、GuardDuty は AWS CloudTrail 管理と Amazon S3 データ イベント、Amazon VPC フロー ログ、および DNS ログからの独立したデータ ストリームの分析を開始し、セキュリティの結果を生成します。主な検出カテゴリには、アカウント侵害、インスタンス侵害、および悪意のある侵入が含まれます。詳細については、次を参照してください。Amazon GuardDuty のよくある質問。
ノート:定期的に使用するリージョンだけでなく、すべてのリージョンのログを有効にすることをお勧めします。