AWS Quicksight - Gömme Kontrol Paneli

Quicksight panolarınızı harici uygulamalara / web sayfalarına da yerleştirebilir veya AWS Cognito hizmetini kullanarak kullanıcı erişimini kontrol edebilirsiniz. Kullanıcı denetimi gerçekleştirmek için, Cognito'da kullanıcı havuzu ve kimlik havuzu oluşturabilir ve Kimlik havuzuna Embed panosu ilkelerini atayabilirsiniz.

AWS Cognito, yöneticilerin uygulamalara erişim sağlamak için geçici kullanıcılar oluşturmasına ve yönetmesine olanak tanıyan bir IAM hizmetidir. Kimlik havuzunun kullanımıyla, bu kullanıcı havuzlarındaki izinleri yönetebilirsiniz.

Güvenli kontrol paneli URL'sini nasıl oluşturabileceğimizi ve kullanıcı kontrolü gerçekleştirebileceğimizi görelim

Adım 1 - Kullanıcı havuzları ve kullanıcılar oluşturma

AWS Cognito'da kullanıcı havuzu oluşturun ve kullanıcılar oluşturun. GitAmazon Cognito → Manage User Pools → Create a User Pool.

Adım 2 - Bir kimlik havuzu oluşturmak

Kullanıcı havuzu oluşturulduğunda, bir sonraki adım bir kimlik havuzu oluşturmaktır. Githttps://console.aws.amazon.com/cognito/home?region=us-east-1

"Yeni Kimlik Havuzu Oluştur" a tıklayın.

Bir kimlik havuzunun uygun adını girin. Kimlik Doğrulama Sağlayıcıları bölümüne gidin ve "Cognito" seçeneğini seçin.

Adım 3 - Cognito rolleri oluşturma

Kullanıcı Havuzu Kimliğini (Kullanıcı havuzu Kimliğiniz) ve Uygulama İstemci Kimliğini girin (kullanıcı havuzunda Uygulama İstemcileri'ne gidin ve kimliği kopyalayın).

Daha sonra, IAM'de kimlik havuzunun rollerini oluşturmak için 'Havuz Oluştur'a tıklayın ve' İzin Ver'e tıklayın. 2 Cognito rolü oluşturacaktır.

Adım 4 - Özel Politika Atama

Sonraki adım, yukarıdaki adımda oluşturulan kimlik rollerine özel politika atamaktır -

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

Kullanıcıyı yalnızca tek bir panoya erişimle sınırlamak için "*" yerine gösterge tablosu Amazon Kaynak Adı'nı (ARN) quicksight: GetDashboardEmbedUrl " altında geçirebilirsiniz .

Adım 5 - Cognito uygulamasında oturum açma

Sonraki adım, kullanıcı havuzundaki kullanıcı kimlik bilgileriyle Cognito uygulamasında oturum açmaktır. Kullanıcı uygulamada oturum açtığında, Cognito 3 jeton oluşturur -

  • IDToken
  • AccessToken
  • Jetonu Yenile

Geçici bir IAM kullanıcısı oluşturmak için, kimlik bilgileri aşağıda gösterildiği gibidir -

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
   }
});

Geçici IAM kimlik bilgileri oluşturmak için, aşağıdaki parametrelerle sts.assume rol yöntemini çağırmanız gerekir -

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);
   })
}

Adım 6 - Kullanıcıyı Quicksight'a kaydetme

Sonraki adım, aşağıdaki parametrelerle 3. adımda oluşturulan kimlik bilgileri için "quicksight.registerUser" kullanarak kullanıcıyı Quicksight'a kaydetmektir -

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”);
   }
})

7. Adım - AWS Yapılandırma dosyasını güncelleme

Sonraki adım, 5. adımda oluşturulan kullanıcı için AWS yapılandırmasını güncellemektir.

AWS.config.update({
   accessKeyId: AccessToken,
   secretAccessKey: SecretAccessKey ,
   sessionToken: SessionToken,
   "region": Region
});

Adım 8 - Quicksight kontrol paneli için yerleştirme URL'si oluşturma

5. adımda oluşturulan kimlik bilgileriyle, URL oluşturmak için aşağıdaki parametrelerle quicksight.getDashboardEmbedUrl'yi çağırın.

var params = {
   AwsAccountId: "Enter AWS account ID",
   DashboardId: "Enter 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);
   }
});

Yukarıda oluşturulan URL'yi kullanarak uygulamanızdan "QuickSightEmbedding.embedDashboard" çağırmanız gerekir.

Amazon Quicksight gibi, gömülü kontrol paneli de aşağıdaki özellikleri destekler -

  • Detaya inme seçeneği
  • Özel eylemler (yeni bir sekmeye bağlantı)
  • Ekran filtreleri
  • CSV'ye indirin
  • Görsellere göre sıralama
  • E-posta raporu kaydı
  • Kontrol panelini varsayılanlara sıfırla seçeneği
  • Kontrol panelindeki eylemleri geri alma / yineleme