Translated ['src/pentesting-cloud/aws-security/aws-services/aws-efs-enum

This commit is contained in:
Translator
2025-02-04 18:11:54 +00:00
parent 7e88913030
commit bdca49edd7

View File

@@ -12,9 +12,9 @@ Amazon Elastic File System (EFS) は、AWS によって **完全に管理され
### ネットワークアクセス
EFS は VPC 内に作成され、**デフォルトではすべての VPC サブネットワークでアクセス可能**です。ただし、EFS にはセキュリティグループがあります。EFS をマウントするために **EC2**(または他の AWS サービスにアクセスを許可するには、EFS セキュリティグループに EC2 セキュリティグループからのインバウンド NFS**(ポート 2049**ルールを**許可する必要があります。
EFS は VPC 内に作成され、**デフォルトではすべての VPC サブネットワークでアクセス可能**です。ただし、EFS にはセキュリティグループがあります。EFS をマウントするために **EC2**(または他の AWS サービスにアクセスを許可するには、EFS セキュリティグループに EC2 セキュリティグループからのインバウンド NFS**(ポート 2049**ルールを **許可する必要があります**
これがないと、**NFS サービスに連絡できません**。
これがないと、**NFS サービスに接続できません**。
この方法についての詳細は、次を確認してください: [https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount](https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount)
@@ -39,7 +39,7 @@ aws efs describe-replication-configurations
sudo nmap -T4 -Pn -p 2049 --open 10.10.10.0/20 # or /16 to be sure
```
> [!CAUTION]
> EFSマウントポイントが同じVPC内にあるが異なるサブネットにある可能性があります。すべての**EFSポイントを見つけるためには、`/16`ネットマスクをスキャンする方が良いでしょう**。
> EFSマウントポイントが同じVPC内異なるサブネットにある可能性があります。すべての**EFSポイントを見つけるためには、`/16`ネットマスクをスキャンする方が良いでしょう**。
### Mount EFS
```bash
@@ -57,8 +57,8 @@ sudo mount -t efs <file-system-id/EFS DNS name>:/ /efs/
```
### IAM アクセス
**デフォルト**では、**EFSへのネットワークアクセスを持つ誰でも**マウントし、**ルートユーザーとして読み書きすることができます**。ただし、ファイルシステムポリシーが設定されている場合、**特定の権限を持つプリンシパルのみがアクセスできる**ことがあります。\
例えば、このファイルシステムポリシーは、**IAM権限を持っていない場合**ファイルシステムを**マウントすることすら許可しません**:
**デフォルト**では、**EFSへのネットワークアクセスを持つ誰でも**マウントし、**ルートユーザーとして読み書きすることができます**。ただし、ファイルシステムポリシーが設定されている場合、**特定の権限を持つプリンシパルのみが**アクセスできるようになります。\
例えば、このファイルシステムポリシーは、**IAM権限を持っていない場合**ファイルシステムを**マウントすることすら許可しません**:
```json
{
"Version": "2012-10-17",
@@ -96,7 +96,7 @@ sudo mount -t efs -o tls,iam <file-system-id/EFS DNS name>:/ /efs/
**アクセスポイント**は、**EFSファイルシステム**への**アプリケーション**特有のエントリーポイントであり、共有データセットへのアプリケーションアクセスを管理しやすくします。
アクセスポイントを作成する、アクセスポイントを通じて作成されるファイルやディレクトリの**所有者とPOSIX権限**を**指定**できます。また、既存のディレクトリを指定するか、希望する権限で新しいディレクトリを作成することで、アクセスポイントの**カスタムルートディレクトリ**を**定義**することもできます。これにより、**アプリケーションまたはユーザーごとにEFSファイルシステムへのアクセスを制御**でき、共有ファイルデータの管理とセキュリティが容易になります。
アクセスポイントを作成する際には、アクセスポイントを通じて作成されるファイルやディレクトリの**所有者とPOSIX権限**を**指定**できます。また、既存のディレクトリを指定するか、希望する権限で新しいディレクトリを作成することで、アクセスポイントの**カスタムルートディレクトリ**を**定義**することもできます。これにより、**アプリケーションまたはユーザーごとにEFSファイルシステムへのアクセスを制御**でき、共有ファイルデータの管理とセキュリティが容易になります。
**次のようにアクセスポイントからファイルシステムをマウントできます:**
```bash
@@ -105,17 +105,17 @@ sudo mount -t efs -o tls,[iam],accesspoint=<access-point-id> \
<file-system-id/EFS DNS> /efs/
```
> [!WARNING]
> 注意してください。アクセスポイントをマウントしようとする場合でも、**ネットワーク経由でNFSサービスに連絡できる必要があり**、EFSにファイルシステムの**ポリシー**がある場合は、マウントするために**十分なIAM権限**が必要です。
> 注意してください。アクセスポイントをマウントしようとする場合でも、**ネットワーク経由でNFSサービスに連絡できる必要があり**、EFSにファイルシステムの**ポリシー**がある場合は、マウントするために**十分なIAM権限**が必要です。
アクセスポイントは以下の目的で使用できます:
アクセスポイントは以下の目的で使用できます:
- **権限管理の簡素化**各アクセスポイントにPOSIXユーザーとグループを定義することで、基盤となるファイルシステムの権限を変更することなく、異なるアプリケーションやユーザーのアクセス権を簡単に管理できます。
- **ルートディレクトリの強制**アクセスポイントはEFSファイルシステム内の特定のディレクトリへのアクセスを制限でき、各アプリケーションやユーザーが指定されたフォルダ内で操作することを保証します。これにより、偶発的なデータの露出や変更を防ぐことができます。
- **ファイルシステムアクセスの簡素化**アクセスポイントはAWS Lambda関数やAWS Fargateタスクに関連付けることができ、サーバーレスおよびコンテナ化されたアプリケーションのためのファイルシステムアクセスを簡素化します。
- **権限管理の簡素化**:各アクセスポイントにPOSIXユーザーとグループを定義することで、基盤となるファイルシステムの権限を変更することなく、異なるアプリケーションやユーザーのアクセス権を簡単に管理できます。
- **ルートディレクトリの強制**:アクセスポイントはEFSファイルシステム内の特定のディレクトリへのアクセスを制限でき、各アプリケーションやユーザーが指定されたフォルダ内で操作することを保証します。これにより、偶発的なデータの露出や変更を防ぐことができます。
- **ファイルシステムアクセスの簡素化**:アクセスポイントはAWS Lambda関数やAWS Fargateタスクに関連付けることができ、サーバーレスおよびコンテナ化されたアプリケーションのためのファイルシステムアクセスを簡素化します。
## EFS IPアドレス
EFS IPアドレスに関連する情報を使用して、以下のPythonスクリプトはEFSシステムに関する詳細を取得するのに役立ちます。この情報は、マウントシステムコマンドを構築したり、サブネットIDの知識を持ってさらに列挙を行ったりするのに役立ちます。さらに、スクリプトはアクセスポイントを表示し、ルートディレクトリや主要なマウントパスが制限されている場合に価値があります。そのような場合、アクセスポイントは機密情報にアクセスするための代替パスを提供します。
EFS IPアドレスに関連する情報を使用して、以下のPythonスクリプトはEFSシステムに関する詳細を取得するのに役立ちます。この情報は、マウントシステムコマンドを構築したり、サブネットIDの知識を持ってさらに列挙を行ったりするのに役立ちます。さらに、スクリプトはアクセスポイントを表示し、ルートディレクトリや主要なマウントパスが制限されている場合に価値があります。そのような場合、アクセスポイントは機密情報にアクセスするための代替パスを提供します。
```bash
Usage: python efs_ip_enum.py <IP_ADDRESS>
```
@@ -211,7 +211,7 @@ ip_address = sys.argv[1]
get_efs_info(ip_address)
```
## プライベートアクセス
## プライバシー昇格
{{#ref}}
../aws-privilege-escalation/aws-efs-privesc.md