Lightsail におけるオブジェクトストレージのセキュリティのベストプラクティス - Amazon Lightsail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lightsail におけるオブジェクトストレージのセキュリティのベストプラクティス

Amazon Lightsail オブジェクトストレージには、独自のセキュリティポリシーを開発および実装する際に考慮する必要のあるいくつかのセキュリティ機能が用意されています。以下のベストプラクティスは一般的なガイドラインであり、完全なセキュリティソリューションを説明するものではありません。これらのベストプラクティスは顧客の環境に必ずしも適切または十分でない可能性があるので、処方箋ではなく、あくまで有用な検討事項とお考えください。

目次

予防的セキュリティのベストプラクティス

以下のベストプラクティスは、Lightsail バケットでセキュリティ問題を防ぐのに役立ちます。

最小特権アクセスの実装

アクセス許可を付与する場合、どのユーザーにどの Lightsail リソースに対するアクセス許可を付与するかは、お客様が決定します。これらのリソースで許可したい特定のアクションを有効にするのも、お客様になります。このため、タスクの実行に必要な許可のみを付与する必要があります。最小特権アクセスの実装は、セキュリティリスクと、エラーや悪意によってもたらされる可能性のある影響の低減における基本になります。

バケットを管理するための IAM ポリシーの作成の詳細については、「バケットを管理する IAM ポリシー」を参照してください。Lightsail バケットでサポートされている Amazon S3 アクションの詳細については、Amazon Lightsail API リファレンスの「オブジェクトストレージのアクション」を参照してください。

Lightsail バケットがパブリックにアクセス可能ではないことを確認する

デフォルトでは、 バケットとオブジェクトはプライベートです。バケットのアクセス許可セットをすべてのオブジェクトはプライベートに設定して、バケットをプライベートに保ちます。大部分のユースケースでは、バケットや個々のオブジェクトをパブリックにする必要はありません。詳細については「バケット内の個々のオブジェクトに対するアクセス許可の設定」を参照してください。


          Lightsail コンソールでのバケットアクセス許可

ただし、バケットを使用してウェブサイトやアプリケーションのメディアをホストしている場合は、特定のシナリオでは、バケットまたは個々のオブジェクトをパブリックにする必要があります。次のいずれかのオプションを設定して、バケットまたは個々のオブジェクトをパブリックにすることができます。

  • バケット内のオブジェクトの一部のみをインターネット上の誰にでもパブリック (読み取り専用) する必要がある場合は、バケットのアクセス許可を個々のオブジェクトをパブリックにして読み取り専用にするに変更し、パブリックにする必要があるオブジェクトのみをパブリック (読み取り専用)に変更します。このオプションはバケットをプライベートにしますが、個々のオブジェクトをパブリックにするオプションも提供します。パブリックにアクセスしたくない機密情報または秘密情報が含まれている場合は、個々のオブジェクトを公開しないでください。個々のオブジェクトをパブリックにする場合は、個々のオブジェクトのパブリックアクセシビリティを定期的に検証する必要があります。

    
              Lightsail コンソールでのバケットアクセス許可
  • バケット内のすべてのオブジェクトをインターネット上の誰にでもパブリック(読み取り専用)する必要がある場合は、バケットのアクセス許可をすべてのオブジェクトはパブリックで読み取り専用に変更します。バケット内のいずれかのオブジェクトに機密情報または秘密情報が含まれている場合は、このオプションを使用しないでください。

    
              Lightsail コンソールでのバケットアクセス許可
  • 以前にバケットをパブリックに変更した場合、または個々のオブジェクトをパブリックに変更した場合は、バケットのアクセス許可をすべてのオブジェクトはプライベートに変更することで、バケットとそのすべてのオブジェクトをプライベートにすばやく変更できます。

    
              Lightsail コンソールでのバケットアクセス許可

Amazon S3 でパブリックアクセスのブロックを有効にする

Lightsail オブジェクトストレージリソースは、パブリックアクセスを許可または拒否するときに、Lightsail バケットのアクセス許可と Amazon S3 アカウントレベルのブロックパブリックアクセス設定の両方を考慮するようになります。Amazon S3 アカウントレベルのブロックパブリックアクセスにより、アカウント管理者およびバケット所有者は、Amazon S3 および Lightsail バケットへのパブリックアクセスを一元的に制限できます。ブロックパブリックアクセスは、リソースがどのように作成され設定されているか、また設定されている可能性のある個々のバケットとオブジェクト権限にかかわらず、すべての Amazon S3 および Lightsail のバケットをプライベートにすることができます。詳細については、「バケットに対するブロックパブリックアクセス」を参照してください。

バケットにインスタンスをアタッチして、プログラムによる完全なアクセスを付与する

Lightsail オブジェクトストレージバケットにインスタンスを添付するのは、バケットへのアクセスを提供する最も安全な方法です。リソースアクセス機能は、インスタンスをバケットにアタッチする方法であり、インスタンスにバケットへの完全なプログラムによるアクセスを付与します。この方法では、バケット認証情報をインスタンスまたはアプリケーションに直接保存する必要はなく、定期的に認証情報をローテーションする必要もありません。例えば、一部の WordPress プラグインは、インスタンスがアクセスできるバケットにアクセスできます。詳細については、「バケットのリソースアクセスを設定する」および「チュートリアル: バケットを WordPress インスタンスに接続する」を参照してください。


          Lightsail コンソールでのバケットリソースアクセス

ただし、アプリケーションが Lightsail インスタンスにない場合は、バケットアクセスキーを作成して設定することができます。バケットアクセスキーは、自動的にローテーションされない長期的な認証情報です。


          Lightsail コンソールでのバケットアクセスキー

アクセスキーを作成して使用し、アプリケーションまたはプラグインにバケット内のオブジェクトへの完全なプログラムによるアクセスを付与できます。バケットでアクセスキーを使用する場合は、キーを定期的にローテーションし、既存のキーのインベントリを作成する必要があります。アクセスキーが最後に使用された日付と、そのキーが使用された AWS リージョン が、キーの使用方法に関する期待に沿っていることを確認します。アクセスキーが最後に使用された日付は、バケットの管理ページの [許可] タブのアクセスキーセクションの Lightsail コンソールに表示されます。使用されていないアクセスキーを削除します。

シークレットアクセスキーを誤ってパブリックと共有した場合は、削除して新しいシークレットアクセスキーを作成する必要があります。バケットごとに最大 2 つのアクセスキーを持つことができます。同時に 2 つの異なるアクセスキーを使用できますが、バケットで 1 つのアクセスキーを使用しないことは、最小限のダウンタイムでキーをローテーションする必要がある場合に役立ちます。アクセスキーをローテーションするには、新しいキーを作成し、ソフトウェアで設定してテストしてから、以前のキーを削除します。アクセスキーを削除すると、永久に削除されるため、再度取得することはできません。新しいアクセスキーでのみ置き換えることができます。詳細については、「バケットのアクセスキーの作成」を参照してください。

クロスアカウントアクセスを使用して、バケット内のオブジェクトへのアクセスを他の AWS アカウントに付与する

クロスアカウントアクセスを使用すると、バケットとそのオブジェクトをパブリックにすることなく、AWS アカウントを持つ特定の個人がバケット内のオブジェクトにアクセスできるようになります。クロスアカウントアクセスを設定している場合は、リストされているアカウント ID が、バケット内のオブジェクトへのアクセスを許可する正しいアカウントであることを確認してください。詳細については、「バケットのクロスアカウントアクセスの設定」を参照してください。


          Lightsail コンソールでのバケットクロスアカウントアクセス

データの暗号化

Lightsail は、Amazon マネージドキーを使用したサーバー側の暗号化と HTTPS (TLS) の強制による転送中のデータの暗号化を実行します。サーバー側の暗号化は、別のサービスに保存されているキーを使用してデータを暗号化することで、データへのリスクを軽減するのに役立ちます。さらに、送信中のデータの暗号化は、潜在的な攻撃者が中間者攻撃または同様の攻撃を使用してネットワークトラフィックを盗聴または操作することを防止するのに役立ちます。

バージョニングの有効化

バージョニングとは、同じバケット内でオブジェクトの複数のバリアントを保持する手段です。バージョニングを使用して、Lightsail バケットに保存されたあらゆるオブジェクトのあらゆるバージョンを保存、取得、復元することができます。バージョニングを使用すれば、意図しないユーザーアクションからもアプリケーション障害からも、簡単に復旧できます。詳細については、「バケットのオブジェクトのバージョニングを有効化または一時停止する」を参照してください。

モニタリングと監査のベストプラクティス

以下のベストプラクティスは、Lightsail バケットの潜在的なセキュリティ上の弱点とインシデントを検出するのに役立ちます。

アクセスログ記録を有効にし、セキュリティとアクセス監査を定期的に実行する

アクセスのログ記録には、バケットに対するリクエストの詳細が記録されます。この情報には、リクエストタイプ (GETPUT)、リクエストで指定したリソース、リクエストを処理した日時などが含まれます。バケットのアクセスログ記録を有効にし、セキュリティとアクセス監査を定期的に実行して、バケットにアクセスしているエンティティを特定します。デフォルトでは、Lightsail によってバケットへのアクセスのログは収集されません。アクセスログ記録を手動で有効にする必要があります。詳細については、「バケットのアクセスログ」と「バケットのアクセスログの記録を有効にする」を参照してください。

Lightsail バケットの特定、タグ付け、および監査

IT アセットの特定はガバナンスとセキュリティの重要な側面です。セキュリティ体制を評価し、潜在的な弱点に対処するには、すべての Lightsail バケットを可視化する必要があります。

タグ付けを使用してセキュリティまたは監査で注意を要するリソースを識別してから、それらのタグを、リソースを検索する必要があるときに使用します。詳細については、「タグ」を参照してください。

AWS モニタリングツールによるモニタリングの実装

モニタリングは、Lightsail バケットおよびその他のリソースの信頼性、セキュリティ、可用性、パフォーマンスを維持する上で重要です。バケットサイズ (BucketSizeBytes) と Lightsail での Number of objects (NumberOfObjects) バケットメトリクスの通知アラームを作成してモニタリングすることができます。例えば、バケットのサイズが特定のサイズに増減したとき、またはバケット内のオブジェクト数が特定の数に増減したときに通知を受け取ることができます。詳細については、「バケットメトリクスアラームの作成」を参照してください。

AWS CloudTrailを使用

AWS CloudTrail は、Lightsail のユーザー、ロール、または AWS のサービスによって実行されたアクションのレコードを提供します。CloudTrail で収集された情報を使用して、Lightsail に対するリクエスト、リクエスト元の IP アドレス、リクエストの実行者、リクエスト日時などの詳細を把握できます。例えば、データアクセスに影響するアクション (特に CreateBucketAccessKeyGetBucketAccessKeysDeleteBucketAccessKeySetResourceAccessForBucket および UpdateBucket) の CloudTrail エントリを特定できます。AWS アカウントをセットアップすると、CloudTrail はデフォルトで有効になっています。CloudTrail コンソールで最近のイベントを確認できます。Lightsail バケットのアクティビティとイベントの継続的なレコードを作成するには、CloudTrail コンソールで追跡作成できます。詳細については、https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html ユーザーガイドのAWS CloudTrail証跡へのデータイベントのログ記録 を参照してください。

AWS セキュリティアドバイザリを監視する

AWS アカウントに登録されているメインの E メールアドレスを注意してモニタリングしてください。AWS は、この E メールアドレスを使用して、お客様に影響を与える可能性のあるセキュリティ問題が新たに発生した場合に連絡します。

広範な影響を与える AWS の運用上の問題は AWS Service Health Dashboard に投稿されます。運用上の問題は Personal Health Dashboard を介して個々のアカウントにも投稿されます。詳細については、AWS の正常性に関するドキュメントを参照してください。