スキップしてコンテンツを表示

Amazon S3 バケット内のファイルを保護する方法を教えてください。

所要時間2分
0

アクセス制限、リソースモニタリング、データ暗号化により Amazon S3 バケットを保護してファイルの安全性を保ち、セキュリティのベストプラクティスを満たしたいと思っています。

解決策

まず、Amazon S3 バケットタイプが汎用、ディレクトリ、テーブルのいずれかを確認します。次に、バケットタイプに合ったセキュリティ対策とモニタリングサービスを選択します。

S3 リソースへのアクセスを制限する

デフォルトでは、すべての S3 バケットはプライベートです。バケットへのアクセス許可が明示的に付与されたユーザーのみがバケットにアクセスできます。

S3 バケットやオブジェクトへのアクセスを制限するには、次のアクションを実行します。

  • 特定のバケットとオブジェクトにアクセスできるユーザーを指定するアイデンティティベースのポリシーを使用します。ユーザーポリシーの作成とテストには、AWS Policy GeneratorIAM ポリシーシミュレーターを使用します。
  • 特定のバケットやオブジェクトへのアクセスを定義するバケットポリシーを使用します。バケットポリシーを使用して、AWS アカウント全体へのアクセスを許可したり、公開または匿名のアクセス許可を付与したり、条件に基づいてアクセスを許可またはブロックしたりできます。
    注:IAM ポリシーでユーザーにアクセスを付与した場合でも、バケットポリシーの拒否ステートメントを使用して特定の AWS Identity and Access Management (IAM) ユーザーへのアクセスを制限できます。
  • Amazon S3 パブリックアクセスブロックを、パブリックアクセスを一元的に制限する方法として使用します。パブリックアクセスブロックの設定は、バケットポリシーとオブジェクト権限よりも優先されます。公開したくないすべてのアカウントとバケットについて、必ずパブリックアクセスブロックを有効にしてください。Amazon S3 は、すべての新しいアカウントとバケットに対してデフォルトでパブリックアクセスブロックを有効にします。S3 リソースへのパブリックアクセスが明示的に必要な場合にのみ、この機能をオフにしてください。バケットのパブリックアクセスブロックをオフにした場合は、バケットを定期的に監査してください。
  • バケットとオブジェクトにアクセスコントロールリスト (ACL) を設定します。
    **注:**プログラムでアクセス許可を管理する必要がある場合は、ACL の代わりに IAM ポリシーまたはバケットポリシーを使用してください。ただし、バケットポリシーが最大ファイルサイズの 20 KB を超える場合は ACL を使用できます。または、ACL を使用して Amazon S3 サーバーアクセスログまたは Amazon CloudFront ログへのアクセス権限を付与することもできます。
  • サービスコントロールポリシー (SCP) を使用して、組織内のすべてのアカウントで S3 セキュリティポリシーを一元的に管理および強制します。
  • ネットワークレベルでは、仮想プライベートクラウド (VPC) エンドポイントバケットポリシーの IP アドレスに基づく制限AWS PrivateLink for S3 を使用してアクセスを制限します。VPC エンドポイントを使用すると、インターネットにアクセスしなくても Amazon S3 へのプライベートアクセスが可能になります。
  • S3 アクセスポイントを使用して、複数のアプリケーションやチームがアクセスするバケットのセキュリティ管理を簡素化します。
  • S3 Object Lock を実装して、指定した期間内はユーザーがオブジェクトを削除または上書きできないようにします。

ACL を使用してリソースを保護する場合は、次のベストプラクティスを実装します。

  • バケットまたはオブジェクトに対する Amazon S3 アクションを許可する ACL アクセス許可を確認します。
  • バケットへの読み取りおよび書き込みアクセスを持つユーザーを制限します。
  • すべての人にバケットまたはオブジェクトにアクセスさせたい場合にのみ、全員グループに読み取りアクセス権限を付与します。
  • 全員グループに書き込みアクセス権限を付与しないでください。書き込みアクセス権限のあるユーザーなら誰でもバケットにオブジェクトを追加でき、AWS はアップロードされたすべてのオブジェクトに対して料金を請求します。また、書き込みアクセス権限のあるユーザーなら誰でもバケット内のオブジェクトを削除できます。
  • 任意の認証済み AWS ユーザーグループには、アクティブなアカウントを持つすべてのユーザーが含まれるため、書き込みアクセス権限を付与しないでください。アカウントの IAM ユーザーのアクセスを制御するには、代わりに IAM ポリシーを使用してください。Amazon S3 が IAM ポリシーを評価する方法の詳細については、「Amazon S3 がリクエストを許可する仕組み」を参照してください。
  • 新しいバケットの場合、Amazon S3 では S3 オブジェクト所有権がデフォルトでバケット所有者の強制に設定されます。これにより ACL がオフになります。すべてのオブジェクトを完全に制御するには、ACL をオフにして、バケットポリシーと IAM ポリシーを使用してアクセス制御を行うのがベストプラクティスです。

次の方法で、特定のアクションへのアクセスを制限することもできます。

  • オブジェクトを削除したり、バケットのバージョニングをオフにしたりする前にユーザーに多要素認証の使用を求めるには、MFA 削除を構成します。
  • MFA で保護された API アクセスを設定します。これにより、ユーザーは特定の Amazon S3 API オペレーションを呼び出すために AWS MFA デバイスでの認証が必要になります。
  • S3 オブジェクトを他のユーザーと一時的に共有する場合は、署名付き URL を作成して、そのオブジェクトへの時間制限付きのアクセスを許可します。

S3 リソースのモニタリング

S3 リソースのログ記録を有効にしてモニタリングするには、次の操作を行います。

暗号化を使用してデータを保護する

送信中に暗号化が必要な場合は、HTTPS プロトコルを使用して Amazon S3 との間で転送中のデータを暗号化します。すべての AWS SDK と AWS ツールはデフォルトで HTTPS を使用します。

**注:**サードパーティのツールを使用して Amazon S3 とやり取りする場合は、サードパーティーの企業に問い合わせて、そのツールが HTTPS プロトコルもサポートしているかどうかを確認してください。

保管中のデータを暗号化する必要がある場合は、サーバー側の暗号化オプションとして、Amazon S3 マネージドキー (SSE-S3)AWS Key Management Service (AWS KMS) キー (SSE-KMS)お客様が指定したキー (SSE-C) を使用します。SSE は CloudTrail を通じて保護を強化し、詳細な監査証跡を実現します。バケットにオブジェクトを書き込むときに SSE パラメータを指定できます。SSE-S3 または SSE-KMS を使用してバケットのデフォルト暗号化をオンにすることもできます。

**注:**Amazon S3 はすべての新しいバケットに対して SSE-S3 を自動的にオンにします。

クライアント側の暗号化が必要な場合は、「クライアント側の暗号化を使用したデータの保護」を参照してください。

関連情報

Amazon S3 における ID およびアクセス管理

Amazon S3 におけるデータ保護

他の AWS アカウントのユーザーが Amazon S3 バケットにアクセスする際、MFA を使用するように要求するにはどうすればよいですか?

Amazon S3 バケットおよびオブジェクトにアクセスしているユーザーを確認するにはどうすればよいですか?

コメントはありません

関連するコンテンツ