Встраивание учетных данных AWS IAM в код с помощью Java SDK

Я использую Java AWS IoT SDK, и у меня возникла проблема, из-за которой мне нужно встроить свой ключ доступа AWS IAM и учетные данные секретного ключа в код приложения Java на моих устройствах.

Учетные данные просто используются изначально для создания клиента в моем коде, а затем сертификаты X.509 используются для аутентификации и связи MQTT. .

Я слышал о способе избежать необходимости встраивания учетных данных IAM в код с помощью AWSCredentialsProvider с токенами и т. Д. Однако я не вижу реальных примеров того, как этого добиться без встраивания учетных данных. . Ниже приведен фрагмент моего кода, показывающий, как я создаю клиентский объект с использованием учетных данных. Спасибо.

String AWS_ACCESSKEY  = "AKXXXXXXXXXXXXX";           // not real key
String AWS_SECRETKEY  = "ABCXXXXXXXXXXXXXXXXXXXXXX"; // not real key
Regions AWS_REGION    = Regions.US_EAST_2;

AWSIot client = AWSIotClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(new 
BasicAWSCredentials(AWS_ACCESSKEY, AWS_SECRETKEY))).withRegion(AWS_REGION).build();

person Engineer999    schedule 13.03.2020    source источник


Ответы (3)


Вы можете передать эти учетные данные в обычный файл application.properties.

Вам просто нужно сделать 2 вещи.

  1. Создайте открытый класс AwsCredentials с аннотациями @ConfigurationProperties и @Configuration.
  2. Передайте свой доступ и секрет в файл application.properties

Вы можете узнать больше в этом руководстве: нажмите

Затем, когда вы захотите использовать эти свойства в построителе, вам нужно называть его следующим образом:

AWSIot client = AWSIotClientBuilder.standard()
    .withCredentials(
        new AWSStaticCredentialsProvider(
            new BasicAWSCredentials(
                this.awsCredentials.getAccessKey(),
                this.awsCredentials.getSecretKey()
            )
        )
    )
    .withRegion(AWS_REGION)
    .build();

PS. Вы также можете экспортировать регион в свойства.

person pgd    schedule 17.05.2020

Вы можете использовать временные учетные данные вместо фактических ключей доступа. Проверьте эту ссылку. https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html

person Pooja Rai    schedule 08.04.2020

Чтобы получить учетные данные для доступа к AWS IoT (или другим сервисам), вы можете получить временные учетные данные безопасности из Cognito Identity Pool. Вы можете найти самый простой способ и шаги, необходимые для получения учетных данных здесь.

Также учтите, что для получения idToken (JWT) из пула пользователей Cognito, а затем доступа к секретному токену Cognito Identity pool, вам необходимо использовать AWS Java SDK на своем мобильном или настольном компьютере. заявление. Дополнительную информацию об AWS JAVA SDK можно найти здесь и некоторых образцы здесь, здесь,.

person Keivan    schedule 14.05.2020