Я думаю, что отчасти ваша проблема заключается в том, как вы настраиваете AWSSecurityTokenService. На эту проблему также указывает следующая строка в трассировке стека исключений, которую вы опубликовали выше.
at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRole(AWSSecurityTokenServiceClient.java:561)
Пожалуйста, обратитесь к this о том, как принять на себя роль IAM, получить временные учетные данные и вызвать Служба AWS (здесь S3 - служба AWS, вызываемая с использованием временных учетных данных) в Java. Вы можете использовать ту же концепцию для вызова API Kendra. Из приведенного выше примера вы можете понять, как создать BasicSessionCredentials и использовать его для создания KendraClient (аналогично тому, как клиент AmazonS3 был построен с использованием AmazonS3ClientBuilder в приведенном выше примере). После того, как вы создали KendraClient, вы можете обратиться к этому примеру , чтобы узнать, как запросить свой индекс Kendra.