# 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)