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.

  • Come controllare il certificato TLS remoto del server SMTP?
  • Buona idea? Rifiuti i email in arrivo con il nostro dominio finale? (perché devono essere falsi)
  • PC di Windows XP nella networking aziendale
  • Tomcat è vulnerabile alla vulnerabilità di Apache DoS in CVE-2011-3192?
  • Perché la materia IOPS è importnte?
  • Valore massimo di max_connections in micro istanza AWS RDS
  • Quali sono le migliori pratiche per la fornitura di credenziali di protezione ai contenitori di applicazioni in esecuzione in tali ambienti?

  • Perché il mio utente Amazon IAM creato "Non troviamo un account con questo indirizzo email" quando si tenta di accedere?
  • Non posso caricare il certificato server su AWS IAM
  • Puoi richiedere MFA per i conti AWS IAM?
  • Come lasciare che l'utente carichi i file in un secchio S3, ma non sovrascrivere o eliminare?
  • Come faccio a generare una politica IAM per effettuare istantanee?
  • Dare EC2 IAM lettura accesso lettura al secchio S3
  • 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.