Как получить / создать URL-адрес защищенной панели мониторинга AWS - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу встроить панель управления Quicksight в приложение.Я просмотрел документы AWS и не нашел того, где найду защищенный подписанный URL-адрес панели инструментов.

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Чтобы создать URL-адрес защищенной панели мониторинга Quicksight, выполните следующие действия:

Шаг 1: Создайте новый пул удостоверений.Перейдите к https://console.aws.amazon.com/cognito/home?region=us-east-1, нажмите «Создать новый пул удостоверений»

Дайте соответствующее имя.Перейдите в раздел Поставщик аутентификации s, выберите Cognito. Дайте идентификатор пула пользователей (ваш идентификатор пула пользователей) и идентификатор клиента приложения (перейдите в раздел Клиенты приложений в пуле пользователей и скопируйте идентификатор).Нажмите «Создать пул» .Затем нажмите 'Разрешить' , чтобы создать роли пула удостоверений в IAM.

Шаг 2: Назначить пользовательскую политику для роли пула удостоверений

Создайте пользовательскую политику с помощью приведенного ниже JSON.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "quicksight:RegisterUser",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "quicksight:GetDashboardEmbedUrl",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Примечание: Если вы хотите ограничить пользователя только одной панелью мониторинга, замените * на панель инструментов ARN имя в quicksight: GetDashboardEmbedUrl ,

затем перейдите к ролям в IAM.выберите роль IAM пула удостоверений и назначьте для нее настраиваемую политику.

Шаг 3: Конфигурация для создания временного пользователя IAM (STS)

Войдите в свойприложение с учетными данными пользователя.Для создания временного пользователя IAM мы используем учетные данные Cognito.Когда пользователь входит в систему, Cognito генерирует 3 идентификатора токена - IDToken, AccessToken, RefreshToken .Эти токены будут отправлены на ваш сервер приложений.

Для создания временного пользователя IAM мы используем токен Cognito Access, а учетные данные будут выглядеть следующим образом.

 AWS.config.region = 'us-east-1';
       AWS.config.credentials = new AWS.CognitoIdentityCredentials({
           IdentityPoolId:"Identity pool ID",
           Logins: {
               'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken
           }
       });

Для создания временных учетных данных IAM,мы вызываем метод роли sts.assume со следующими параметрами.

var params = {
           RoleArn: "Cognito Identity role arn",
           RoleSessionName: "Session name"
       };
sts.assumeRole(params, function (err, data) {
           if (err) console.log( err, err.stack); // an error occurred
           else {
               console.log(data);
})

Вы можете добавить дополнительные параметры, такие как продолжительность (в секундах) для пользователя.Теперь мы получим AccessKeyId, SecretAccessKey и Session Token временного пользователя.

Шаг 4: Регистрация пользователя в Quicksight

С помощью тех же учетных данных Cognito, которые использовались в Шаг 3 , мы зарегистрируем пользователя в режиме быстрой видимости, используя метод quicksight.registerUser со следующими параметрами

var params = {
                   AwsAccountId: “account id”,
                   Email: 'email',
                   IdentityType: 'IAM' ,
                   Namespace: 'default',
                   UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER,
                   IamArn: 'Cognito Identity role arn',
                   SessionName: 'session name given in the assume role creation',
               };

quicksight.registerUser(params, function (err, data1) {
                   if (err) console.log("err register user”); // an error occurred
                   else {
                       // console.log("Register User1”);
                   }
               })

Теперь пользователь будет зарегистрирован в Quicksight.

Шаг 5: Обновите конфигурацию AWS новыми учетными данными.

Ниже приведен код для настройкиAWS.config () с новыми сгенерированными учетными данными Шаг 3 .

AWS.config.update({

                   accessKeyId: AccessToken,
                   secretAccessKey: SecretAccessKey ,
                   sessionToken: SessionToken, 
                   "region": Region
                 });

Шаг 6: Создание EmbedURL для панелей мониторинга:

С помощьюучетные данные, сгенерированные в Шаг 3 , мы назовем quicksight.getDashboardEmbedUrl со следующими параметрами

var params = {
  AwsAccountId: "account ID",
  DashboardId: "dashboard Id",
  IdentityType: "IAM",
  ResetDisabled: true,
  SessionLifetimeInMinutes: between 15 to 600 minutes,
  UndoRedoDisabled: True | False
}

quicksight.getDashboardEmbedUrl(params,
  function (err, data) {
    if (!err) {
      console.log(data);
    } else {
      console.log(err);
    }
  });

Теперь мы получим URL-адрес для встраивания для панели мониторинга.

Вызовите QuickSightEmbedding.embedПанель инструментов от внешнего интерфейса с помощью сгенерированного выше URL.Результатом будет встроенная в ваше приложение панель управления фильтрами.

0 голосов
/ 03 января 2019

эта ссылка даст вам то, что вам нужно от aws cli https://aws.amazon.com/blogs/big-data/embed-interactive-dashboards-in-your-application-with-amazon-quicksight/

это шаг 3 aws cli cmd, чтобы дать вам встроенный URL (я смог исключить)

aws quicksight get-dashboard-embed-url --aws-account-id (your account ID) --dashboard-id (your dashgboard ID) --identity-type IAM

Есть много других зависимостей, чтобы включить встроенную панель инструментов для каждого элемента.я не смог успешно сделать это.GL и дайте мне знать, если вы сделаете это!

...