Gestione delle credenziali di sicurezza IAM per più contenitori docker

Nell'ambito del normale ambiente EC2, gestire l'accesso ad altre risorse AWS è abbastanza semplice con i ruoli e le credenziali IAM (automaticamente recuperate da metadati di istanza). Ancora più facile con CloudFormation, in cui è ansible creare ruoli in volo quando assegni un particolare ruolo di applicazione a un'istanza.

Se wheressi migrare a Docker e avere una sorta di implementazione M-to-N, where ho macchine M e le applicazioni N in esecuzione su di esso, come dovrei limitare l'accesso alle risorse AWS per each applicazione? I metadati di istanza sono accessibili da chiunque nell'host, in modo che each applicazione sia in grado di vedere / modificare i dati di each altra applicazione nello stesso ambiente di distribuzione.

  • Quanto ampiamente supportto è TLS forzato su connessioni SMTP in ingresso?
  • Utilizzare il certificato personale SSL creato da solo?
  • Dovrei ospitare i miei dati nella stessa casella che servo le mie pagine web?
  • iptables -i lo vs -s localhost e -j REJECT vs -P INPUT REJECT
  • Utente di Linux per accedere e eseguire solo in una posizione
  • Quali sono le vulnerabilità noti di un nuovo sistema installato Debian 5.0.5 fuori dal box?
  • Quali sono le migliori pratiche per la fornitura di credenziali di protezione ai contenitori di applicazioni in esecuzione in tali ambienti?

  • Gestione di più AWS VPCs - diventa un'insalata di frutta di sottoreti / istanze ec2
  • Limitare la visibilità delle istanze EC2 utilizzando gli account IAM
  • Come posso utilizzare le autorizzazioni di IAM per limitare un utente a lanciare solo istanze con un set specifico di AMI?
  • Come posso dare una authorization utente AWS IAM per gestire le proprie credenziali di protezione?
  • Azione IAM per il command `Get-EC2Instance` in Powershell SDK
  • Amazon Route 53, limita l'accesso degli utenti IAM al set di record singolo
  • 2 Solutions collect form web for “Gestione delle credenziali di sicurezza IAM per più contenitori docker”

    C'è questo progetto: https://github.com/dump247/docker-ec2-metadata

    Funziona come proxy per l'endpoint di meta-dati di istanza, restituendo un ruolo specifico del contenitore. Non l'ho usato prima, ma sembra risolvere il caso d'uso che stai descrivendo.

    L'applicazione di un privilegio minimo con i ruoli e i gruppi di protezione (anche se non li hai citati) in AWS con EC2 sono entrambe le best practice per fornire un ambiente sicuro per le applicazioni di hosting, in particolare quando si utilizza CloudFormation. Tuttavia, quando si strati un ambiente multi-inquilino Docker in cima a quello che è quando le cose cominciano a cadere a pezzi.

    La risposta migliore adesso per continuare a trarre vantaggio dai ruoli mentre applica il minimo privilegio è non utilizzare un approccio multi-tenant. Fondamentalmente utilizzare un mapping one-to-one tra l'istanza EC2 e l'applicazione, ma è comunque ansible utilizzare cluster / ASG. Docker è ancora uno strumento estremamente utile e potente che puoi utilizzare per gestire e distribuire le applicazioni, ma per ora i Ruoli si applicano all'istanza EC2 e non al contenitore. Ciò significa che adesso è ansible utilizzare VM separati per ciascuna applicazione.

    Se il multi-inquilino è più importnte dei ruoli, allora la risposta è di non utilizzare Ruoli e distribuire le credenziali AWS alle applicazioni utilizzando un altro metodo.

    Purtroppo nessuna di queste soluzioni è molto auspicabile e mi aspetto che questo punto di dolore specifico sia affrontato da AWS in futuro, dovuto soprattutto alla crescente popolarità dei contenitori.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.