- 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
127 lines
3.5 KiB
Markdown
127 lines
3.5 KiB
Markdown
# 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)
|