feat(02-02): create reference documents with technical specifications

- docker-socket-permissions.md: Docker socket technical specs and access control
- linux-users-groups.md: Linux user management reference with commands
- iam-parallels.md: Quick reference table for IAM parallelism
- Pure reference material with tables and specifications
This commit is contained in:
Luca Sacchi Ricciardi
2026-03-24 22:26:25 +01:00
parent c759270e95
commit cc3a28f192
3 changed files with 465 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
# Reference: Parallelismi Docker e AWS IAM
Tabella di riferimento rapido per i parallelismi tra concetti Docker/Linux e AWS IAM.
## Tabella Parallelismi
| Concetto Locale | AWS IAM Equivalente | Descrizione |
|-----------------|---------------------|-------------|
| Utente Linux (`student1`) | IAM User | Identità che può autenticarsi |
| Gruppo Linux (`docker`) | IAM Group | Collezione di utenti con stessi permessi |
| Permessi file/socket | IAM Policy | Regole che definiscono cosa è permesso |
| `/var/run/docker.sock` | Service Endpoint | Risorsa protetta da controlli accesso |
| `sudo` elevation | IAM Role Assumption | Temporanea elevazione privilegi |
| `usermod -aG docker` | `AttachUserPolicy` | Assegna permessi a utente |
| Appartenenza gruppo `docker` | Policy attachment | Permessi attivi per utente |
## Comandi a Confronto
### Creazione Utente
| Operazione Locale | Comando AWS |
|-------------------|-------------|
| `sudo useradd -m user` | `aws iam create-user --user-name user` |
| `sudo passwd user` | `aws iam create-login-profile --user-name user --password Pass123!` |
### Gestione Permessi
| Operazione Locale | Comando AWS |
|-------------------|-------------|
| `sudo usermod -aG docker user` | `aws iam attach-user-policy --user-name user --policy-arn arn:aws:iam::aws:policy/PowerUserAccess` |
| `sudo gpasswd -d user docker` | `aws iam detach-user-policy --user-name user --policy-arn arn:aws:iam::aws:policy/PowerUserAccess` |
### Verifica Permessi
| Operazione Locale | Comando AWS |
|-------------------|-------------|
| `groups user` | `aws iam list-attached-user-policies --user-name user` |
| `id user` | `aws iam get-user --user-name user` |
| `sudo -u user docker ps` | `aws sts get-caller-identity` |
### Elevazione Privilegi
| Operazione Locale | Comando AWS |
|-------------------|-------------|
| `sudo command` | Assumere IAM Role |
| `su - root` | `aws sts assume-role` |
## Differenze Chiave
| Aspetto | Locale | Cloud AWS |
|---------|--------|-----------|
| Autenticazione | Password, SSH key | Access key, Secret key, Session token |
| Autorizzazione | Gruppi Linux, permessi file | IAM Policies, JSON document |
| Scope | Singolo host | Account AWS intero |
| Audit | `last`, `/var/log/auth.log` | CloudTrail |
| MFA | Non disponibile | Disponibile |
## Modelli di Policy
### Modello Allow
**Locale:**
```bash
# Utente nel gruppo docker puo accedere al socket
sudo usermod -aG docker utente
```
**AWS:**
```json
{
"Effect": "Allow",
"Action": "docker:*",
"Resource": "*"
}
```
### Modello Deny
**Locale:**
```bash
# Utente NON nel gruppo docker non puo accedere
# (default deny)
```
**AWS:**
```json
{
"Effect": "Deny",
"Action": "docker:*",
"Resource": "*"
}
```
## Best Practices Comuni
| Best Practice | Locale | Cloud |
|---------------|--------|-------|
| Minimo privilegio | Utenti non-root | IAM Policies restrittive |
| Separazione doveri | Gruppi distinti | Gruppi IAM distinti |
| Audit logging | auth.log | CloudTrail |
| Rotazione credenziali | `chage` | Rotate access keys |
## Comandi Utili
```bash
# Verifica membri gruppo docker
getent group docker
# Simulazione AWS: lista politiche IAM
aws iam list-attached-user-policies --user-name user
# Verifica permessi socket
ls -l /var/run/docker.sock
# Simulazione AWS: simula accesso AWS
aws sts get-caller-identity
```
## Vedi Anche
- [Explanation: Docker IAM Parallels](../explanation/docker-iam-parallels.md)
- [Tutorial: Permessi Docker](../tutorial/02-docker-group-permissions.md)