No quiero que los usuarios de Amazon Cognito tengan acceso total a los grupos de usuarios cuando usen OpenSearch Dashboards.
Resolución
Dominio con control de acceso detallado desactivado
Si no activaste el control de acceso detallado en tu dominio de OpenSearch, usa la política de acceso al dominio del clúster de OpenSearch para restringir el acceso. La política otorga acceso de solo lectura a los usuarios de Cognito. Establece el permiso ESHttpGet en el rol asociado al inicio de sesión de Cognito.
Ejemplo de política de acceso a dominios con permiso ESHttpGet:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id:role/Cognito_identity-pool-name Auth_Role"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:region:account-id:domain/opensearch-domain-name/"
}
]
}
Nota: Sustituye account-id por el ID de tu cuenta de AWS e identity-pool-name por el nombre del grupo de identidades de Cognito. Además, sustituye region por tu región de AWS y opensearch-domain-name por tu nombre de dominio de OpenSearch.
Para obtener más información, consulta Configuración de un dominio para usar la autenticación de Amazon Cognito.
Después de aplicar la política, pruébala y, a continuación, envía una solicitud firmada a tu dominio para confirmar que solo se puede realizar la operación GET en el dominio.
Clúster OpenSearch con control de acceso detallado activado
Sigue estos pasos:
-
Abre la consola de Cognito.
-
Selecciona tu grupo de usuarios y, a continuación, elige Crear usuario.
-
Crea un usuario con un nombre como limited-user.
-
Crea un rol de administración de AWS Identity and Access management (IAM) para el usuario limited-user; por ejemplo, LimitedUserRole. Como usuario principal, usa el rol de IAM para asignar acceso limitado a usuarios específicos.
-
Adjunta la siguiente política de confianza a LimitedUserRole:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com :aud": "identity-pool-id"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com :amr": "authenticated"
}
}
}
]
}
Nota: Sustituye identity-pool-id por tu ID de grupo de identidades de Cognito.
-
Adjunta la siguiente política integrada personalizada que otorga permisos de solo lectura al dominio de OpenSearch:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowOpenSearchReadAccess",
"Effect": "Allow",
"Action": [
"es:ESHttpGet"
],
"Resource": "arn:aws:es:region:account-id:domain/"
}
]
}
Nota: Sustituye region por tu región y account-id por tu ID de cuenta.
-
Crea un grupo con un nombre como limited-user-group y, a continuación, asigna el rol de IAM LimitedUserRole al grupo.
-
Elige limited-user-group y, a continuación, agrega limited-user y otros usuarios al grupo.
Asignacion de un usuario limitado a un rol en Paneles de OpenSearch
- Inicia sesión en Paneles de OpenSearch como usuario principal.
- Elige Seguridad.
- Elige Roles y, a continuación, selecciona tu rol. O bien, crea uno nuevo. Para obtener más información, consulta Create roles (Creación de roles) en el sitio web de OpenSearch.
**Nota:**También puedes usar el rol predefinido readall_and_monitor o readall. Para obtener más información, consulta Predefined roles (Roles predefinidos) en el sitio web de OpenSearch.
- Asigna el rol a limited-user.
- Inicia sesión como limited-user.
Nota: No puedes realizar operaciones de escritura en Paneles de OpenSearch.