Czy istnieje polecenie / podkomenda, które można przekazać do aws
narzędzia, które może 1) sprawdzić, czy poświadczenia w ~/.aws/credentials
pliku są prawidłowe, oraz 2) podać pewne wskazówki, do którego użytkownika należą poświadczenia? Szukam czegoś ogólnego, co nie zakłada żadnych założeń dotyczących użytkownika mającego uprawnienia do IAM lub jakiejkolwiek konkretnej usługi.
Przykładem użycia jest sprawdzenie poprawności w czasie wdrażania, aby upewnić się, że poświadczenia są dobre. Idealnie byłoby, gdyby istniał sposób sprawdzenia zwracanej wartości i przerwania wdrażania, jeśli istnieją nieprawidłowe poświadczenia.
amazon-web-services
aws-cli
smitelli
źródło
źródło
Odpowiedzi:
Użyj GetCallerIdentity :
aws sts get-caller-identity
W przeciwieństwie do innych wywołań API / CLI, zawsze będzie działać, niezależnie od Twoich uprawnień.
Otrzymasz dane wyjściowe w następującym formacie:
Dokładny format ARN będzie zależał od typu poświadczeń, ale często zawiera nazwę użytkownika (człowieka).
Używa standardowych kodów błędów AWS CLI, podając 0 w przypadku sukcesu i 255, jeśli nie masz poświadczeń.
źródło
aws iam get-user --profile test-mfa
, otrzymuję:An error occurred (AccessDenied) when calling the GetUser operation
. Jednakaws sts get-caller-identity --profile test-mfa
wyprowadza (podobnie, bez aktywnego tokenu sesji MFA)test-mfa
konto, ARN i identyfikator użytkownika.Jest prosty sposób -
aws iam get-user
podałby szczegółowe informacje o tym, kim jesteś (aktualny użytkownik IAM) - pod warunkiem, że użytkownik maiam
uprawnienia.Istnieje kilka wywołań CLI, które obsługują
--dry-run
flagę, taką jak ta,aws ec2 run-instances
która mówi ci, czy masz niezbędne config / cred, aby wykonać operację.Jest też
--auth-dry-run
który Sprawdza, czy masz wymagane uprawnienia do polecenia, bez faktycznego uruchamiania polecenia. Jeśli masz wymagane uprawnienia, polecenie zwraca DryRunOperation; w przeciwnym razie zwraca UnauthorizedOperation. [Z dokumentacji AWS - typowe opcje ]Będziesz mógł wyświetlić listę kluczy dostępu IAM z konsoli zarządzania, które możesz sprawdzić, aby zobaczyć, kto został przypisany do którego klucza.
Najlepszym sposobem, aby dowiedzieć się, który użytkownik / rola ma jakie uprawnienia, jest skorzystanie z narzędzia IAM Policy Simulator .
źródło
AccessDenied
błąd - który zawierał pełnyarn:aws:iam::123...890:user/somebody
ciąg jako część wyniku błędu.