2016-02-19 37 views
5

Mamy kontener dokera uruchomiony na hoście ec2. Wewnątrz tego kontenera dokera uruchamiamy polecenia aws cli. Nie zdefiniowaliśmy żadnych poświadczeń AWS w kontenerze. Oznacza to, że kontener dziedziczy profil instancji hosta ec2.Kontenery dokowane wydają się "dziedziczyć" profil instancji hosta ec2. W jaki sposób?

Czy moje założenie jest prawdziwe? Jeśli tak, to w jaki sposób pojemnik dziedziczy poświadczenia profilu instancji? Po drugie (prawdopodobnie powiązane), co dokładnie robi aws cli, aby uzyskać referencje profilu instancji? Czy nawiązuje połączenie z punktem końcowym metadanych (169.254.169.254)? Na przykład, jeśli poświadczenia są pobierane ze zmiennych środowiskowych, poświadczenia są zakodowane na sztywno i można je zobaczyć, ale gdzie faktycznie znajdują się referencje dla profilu instancji?

Odpowiedz

4

Zgadza się, dane uwierzytelniające komputera głównego. Dostaje je z punktu końcowego metadanych, jak podejrzewasz.

Jednym rozwiązaniem/rozwiązaniem zapewniającym węższy dostęp jest ec2metadataproxy. Jeszcze go nie używałem.

Niestety, dostęp do grupy zabezpieczeń jest oparty także na pojemniku hosta.

+0

Dzięki tedder42. Jak dokładnie uzyskano poświadczenie? Czy istnieje polecenie, które mógłbym uruchomić na EC2, aby uzyskać dostęp, tajny + token z punktu końcowego metadanych? – n00b

+1

@ n00b tak, możesz "zwijać http: // 169.254.169.254/2014-11-05/meta-data/iam/security-credentials /'. Będziesz chciał użyć API/SDK do normalnego obsługiwania, ponieważ obracają się co kilka godzin. – tedder42

+0

Dzięki tedder42. Polecenie, które mi przekazałeś, zwróciło nazwę profilu instancji. Następnie musiałem dodać nazwę profilu instancji do adresu URL, który mi dałeś. tj. 'curl http://169.254.169.254/2014-11-05/meta-data/iam/security-credentials/ ' – n00b