EFS ファイルシステムポリシーのアクセス権限の確認

承認済みの主体に、必要なファイルシステム操作だけを許可してください。

説明

EFS ファイルシステムポリシーの権限が広すぎると、不要なクライアントにファイルの読み書きを許すおそれがあります。実際のアクセスには、マウントターゲットへのネットワーク接続、IAM 権限、ファイルの権限も関係します。

ファイルシステムポリシーの許可を減らしても、他の IAM ポリシーによる許可が残る場合があるため、合わせて確認してください。

想定される影響

  • 不要な読み取り権限は、ファイル内容の漏えいにつながる可能性があります。
  • 書き込みやルートアクセスの悪用は、ファイルの改ざん・削除やサービス障害を引き起こすおそれがあります。

対処方法

  • 承認済みの主体に、必要な ClientMount、ClientWrite、ClientRootAccess だけを許可してください。
  • EFS マウントヘルパーで IAM 認可と TLS を構成し、必要に応じてアクセスポイントでアクセスを制限してください。
  • セキュリティグループ、ファイルの権限、他の IAM 許可を確認し、必要なアクセスが成功して不要なアクセスが拒否されることを試験してください。

例

同じファイルシステムのポリシーを変更する抜粋です。参照先のファイルシステムは別途定義し、例のユーザー ARN は実際に承認した主体に置き換えてください。

変更前

hcl
resource "aws_efs_file_system_policy" "example" {
  file_system_id = aws_efs_file_system.fs.id

  policy = <<POLICY
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Resource": "${aws_efs_file_system.fs.arn}",
      "Action": [
        "elasticfilesystem:*"
      ]
    }
  ]
}
POLICY
}

すべての AWS 主体に広いクライアント操作を許可します。実際のアクセスにはネットワーク接続とファイルの権限も関係します。

変更後

hcl
resource "aws_efs_file_system_policy" "example" {
  file_system_id = aws_efs_file_system.fs.id

  policy = <<POLICY
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/Carlos"
      },
      "Resource": "${aws_efs_file_system.fs.arn}",
      "Action": [
        "elasticfilesystem:ClientMount",
        "elasticfilesystem:ClientWrite"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      }
    }
  ]
}
POLICY
}

この許可文は、指定ユーザーに TLS 接続でのマウント・書き込みを許可します。他のポリシーによる許可まで削除する設定ではありません。

参考資料