AWS アカウントとそのリソースを保護するためのベストプラクティスにはどのようなものがありますか?
AWS リソースまたはアカウントを不正なアクティビティから保護したいと考えています。AWS アカウントとそのリソースを保護するためのベストプラクティスが必要です。
簡単な説明
AWS には、アカウントの保護に役立つ多くのツールが用意されています。ただし、これらの対策の多くはデフォルトでは有効化されていないため、実際に使用するには、お客様に自ら必要な措置を取っていただく必要があります。以下、アカウントとリソースの安全確保に役立つベストプラクティスの事例をご紹介します。
- パスワードとアクセスキーを保護
- AWS アカウントのルートユーザーで多要素認証 (MFA) を有効にする AWS Identity and Access Management (IAM) にインタラクティブにアクセスできるすべてのユーザー
- リソースへの AWS アカウントのルートユーザーアクセスを制限する
- IAM ユーザーとそのポリシーを頻繁に監査する
- Amazon Relational Database Service (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 リポジトリなど)に埋め込まないでください。さらにセキュリティを強化する場合、すべてのセキュリティ認証情報は頻繁にローテーションまたは更新してください。
パスワードまたはアクセスキーのペアが漏洩した疑いがある場合は、次の手順に従います。
- アクセスキーのペアをすべてローテーションします。
- AWS アカウントのルートユーザーパスワードを変更します。
- 「AWS アカウントで不正なアクティビティに気付いた場合、どうすればいいですか?」の指示に従ってください
MFA を有効にする
MFA を有効にすると、アカウントを保護し、承認されていないユーザーがセキュリティトークンなしでアカウントにログインするのを防ぐことができます。
セキュリティを強化するには、AWS リソースを保護するために MFA を設定するのがベストプラクティスです。IAM ユーザーと AWS アカウントのルートユーザーの仮想 MFA を有効化することができます。ルートユーザーの MFA を有効にすると、ルートユーザーの認証情報のみが影響を受けます。アカウント内の IAM ユーザーは、独自の認証情報を持つ個別の ID であり、各 ID には独自の MFA 設定があります。
詳細については、「AWS でユーザーの MFA デバイスを有効化する」を参照してください。
リソースへのルートユーザーアクセスを制限する
アカウントとそのリソースへの無制限のアクセス権限は、ルートユーザーアカウントの認証情報(ルートパスワードまたはルートアクセスキー)によって許可されます。これは、アカウントへのルートユーザーアクセスを保護し、最小限に抑えるためのベストプラクティスです。
アカウントへのルートユーザーアクセスを制限するには、以下の戦略を考慮します。
- アカウントへの日常的なアクセスには IAM ユーザーを使用します。アカウントにアクセスしているのが自分だけの場合は、「管理ユーザーを作成する」を参照してください。
- ルートアクセスキーは使用しないでください。詳細については、「AWS アクセスキーを管理するためのベストプラクティス」を参照してください。
- アカウントのルートユーザーには MFA デバイスを使用してください。
詳細については、「ルートユーザーの認証情報を保護し、日常的な作業には使用しない」を参照してください。
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 コマンドラインインターフェイス (AWS CLI) を使用して AWS Backup プランを作成するには、「AWS CLI を使用して AWS Backup プランを作成したり、オンデマンドジョブを実行したりするにはどうすればよいですか?」を参照してください
AWS Git プロジェクトを使用して不正使用から保護する
AWS は、アカウントを保護するためにインストールできる Git プロジェクトを提供しています。
- Git シークレットは、秘密情報のマージ、コミット、コミットメッセージをスキャンできます(アクセスキー)。Git シークレット が禁止されている正規表現を検出した場合、それらのコミットがパブリックリポジトリにポストされるのを拒否できます。
- AWS Step Functions と AWS Lambda を使用すると AWS Health からまたは AWS Trusted Advisorによって Amazon CloudWatch Events が生成されます。アクセスキーが漏洩しているという証拠がある場合、プロジェクトはイベントを自動的に検出、ログ、軽減するのに役立ちます。
アカウントとそのリソースをモニタリングする
異常なアクティビティやアカウントへのアクセスを検出する際のベストプラクティスは、アカウントとそのリソースを積極的にモニタリングすることです。以下のソリューションのひとつ、または複数を検討してください。
- 請求額が定義したしきい値を超えたときに自動的に通知を受け取るようにするには、請求アラームを作成して AWS の推定請求額をモニタリングします。詳細については、「Amazon CloudWatch に関するよくある質問」を参照してください。
- 特定の API 呼び出しの起動にどの認証情報が使用されたかや、いつ使用されたのかを追跡するには、AWS アカウントの証跡を作成します 。証跡の作成は、使用が偶発的なものか、あるいは許可されていないものかを判断するのに役立ちます。これによって、状況を緩和するための適切な措置を講じることができます。詳細については、「AWS CloudTrail のセキュリティのベストプラクティス」を参照してください。
- CloudTrail と CloudWatch を組み合わせて使用すると、アクセスキーの使用状況をモニタリングし、異常な API 呼び出しのアラートを受け取ることができます。
- リソースレベルのロギング(インスタンスまたは OS レベルなど)と Amazon S3 のデフォルトバケット暗号化が有効になります。
- サポートされているすべてのリージョンの AWS アカウントの Amazon GuardDuty を有効にします。有効になると、GuardDuty は AWS CloudTrail 管理と Amazon S3 データイベント、Amazon VPC フローログ、および DNS ログからの独立したデータストリームの分析を開始し、セキュリティ上の検出結果を生成します。主な検出カテゴリには、アカウントの侵害、インスタンスの侵害、および悪意のある侵入が含まれます。詳細については、「Amazon GuardDuty に関するよくある質問」を参照してください。
**注:**ベストプラクティスは、定期的に使用するリージョンだけでなく、すべてのリージョンのロギングを有効にすることです。
関連情報
関連するコンテンツ
- 質問済み 6年前lg...
- 質問済み 16日前lg...
- 質問済み 7年前lg...
- 承認された回答質問済み 9ヶ月前lg...
- AWS公式更新しました 3年前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前