Cześć, jakiś czas temu używając funkcji lambda, natrafiłem na błąd “KMS Access Denied Exception”. Było to o tyle dziwne, że wszystko działało dobrze do czasu, aż nie zwiększyłem uprawnień dla Roli IAM. Tak dobrze przeczytałeś, nadałem większe uprawnienia, a moja lambda nie mogła się uruchomić. Pomyślałem, o co chodzi. Poszperałem i okazało się, że Terraform podczas aktualizacji wywalił moją rolę IAM i utworzył ja ponownie.
Rola IAM miała taką samą nazwę, lecz moja funkcja lambda zwracała błąd:
Calling the invoke API action failed with this message: Lambda was unable to decrypt the environment variables because KMS access was denied. Please check the function's AWS KMS key settings. KMS Exception: UnrecognizedClientExceptionKMS Message: The security token included in the request is invalid
Aby rozwiązać ten błąd, musisz zresetować przydział AWS KMS dla roli wykonawczej funkcji. Brzmi skomplikowanie, ale wystarczy na chwilę przypisać inną rolę IAM. W funkcji lambda możesz na chwilę przypisać inną rolę IAM i zapisać zmiany, a potem ponownie dodać rolę IAM, która była na początki i ponownie zapisać zmiany. I to wszystko.
W moim przypadku to pomogło. Jeśli chcesz się dowiedzieć więcej, to przygotowałem tutorial wideo, w którym wszystko opisuję krok po kroku i podaję 3 sposoby na naprawę tego błędu.
Jeśli zainteresował cię artykuł, to może zainteresują cię także pozostałe artykuły z kategorii AWS.