我正在尝试使用AWS4签名方法将数据发布到AWS管理的Elasticsearch.我想通过postman pre-script实现这一目标.我尝试使用下面的脚本,它完美地用于弹性搜索的GET操作,但它不适用于POST或PUT或DELETE操作并继续给我一个错误消息,签名与POST操作不匹配.有人可以帮助我修复邮差中的前脚本吗?
var date = new Date().toISOString();
var amzdate = date.replace(/[:\-]|\.\d{3}/g, "");
var dateStamp = amzdate.slice(0, -8);
pm.environment.set('authorization', getAuthHeader(request.method, request.url, request.data));
pm.environment.set('xAmzDate', amzdate);
function getPath(url) {
var pathRegex = /.+?\:\/\/.+?(\/.+?)(?:#|\?|$)/;
var result = url.match(pathRegex);
return result && result.length > 1 ? result[1] : '';
}
function getQueryString(url) {
var arrSplit = url.split('?');
return arrSplit.length > 1 ? url.substring(url.indexOf('?') + 1) : '';
}
function getSignatureKey(secretKey, dateStamp, regionName, serviceName) {
var kDate = sign("AWS4" + secretKey, dateStamp);
var kRegion = sign(kDate, …Run Code Online (Sandbox Code Playgroud)javascript amazon-web-services elasticsearch postman aws-elasticsearch
在 AWS 控制台中按下更新服务软件版本后,出现以下消息:已请求发布 ******** 的更新,但正在等待。在更新开始之前,您可以随时取消。”
现在我等了 1 天 - 仍然悬而未决。
任何想法需要多长时间,或者我需要做什么才能将其从待处理状态转移到更新状态,以及我是否应该预计更新过程中会出现任何停机时间,请在此处输入图像描述
我正在将每个服务下的所有实例从旧的 AWS 账户移动到新的 AWS 账户。我找到了将 EC2 和 RDS 移动到另一个帐户的方法。
现在我需要将 Elasticsearch 从旧帐户移动到新帐户。我无法找到移动 Elasticsearch 的方法。谁可以帮我这个事?
我使用 Terraform 预置 AWS Elasticsearch 服务,并希望使用 Terraform 为某些指标(例如 CPU 使用率等)设置 CloudWatch 警报。
为了做到这一点,我必须投入NodeId资源aws_cloudwatch_metric_alarm:

问题是aws_elasticsearch_domain资源没有合适的属性引用
而且我还没有在aws es cli https://docs.aws.amazon.com/cli/latest/reference/es/index.html中找到任何合适的内容
有什么想法如何让它NodeId在 Terraform 中使用吗?
我们有一个通过 CloudFormation 创建的 AWS Elasticsearch 域,运行 ES 6.3 版。当我们更新ElasticsearchVersion模板中的属性时,它会用一个运行新版本的新域替换 Elasticsearch 域,而不是更新现有域。
如果不进行就地升级,如何升级使用 CF 部署的 Elasticsearch 域?我现在几乎在想我需要通过 boto3 创建和管理我的 ES 域。
任何见解或想法将不胜感激。
我无法在 AWS ElasticSearch 控制台中访问我的 ES 域的索引选项卡。这是它在控制台中的样子:
即使我将我的 IAM ARN (arn:aws:iam::NNNNNNNNNNNNNN:root) 添加到控制台的访问策略中,我仍然收到此错误:
/_stats: {
"error":{
"root_cause":[
{
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
}
],
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
},
"status":403
}
Run Code Online (Sandbox Code Playgroud)
知道出了什么问题吗?该域也具有使用主密码的访问控制。
amazon-web-services elasticsearch amazon-iam aws-elasticsearch
我有 AWS Elastic 服务域设置,我正在尝试通过 Logstash 将一些数据从 ec2 实例推送到 AWS elasticservice。
我已经使用Open access policy - Allow all traffic. 我还启用Fine Grained Control并设置了一个master user帐户来访问 AWS ES 服务。
Kibana对于常规调用来说,这一切都可以正常工作cURL,但是logstash 会因请求发送到https://<my_es_hostname>/_license响应而失败401。
我无法弄清楚为什么会发生这个电话。当我尝试在浏览器中点击这个时,我得到{"Message":"Your request: '/_license' is not allowed."}
这是我从logstash 获得的示例日志:
[INFO ] 2021-06-02 11:40:18.858 [[main]-pipeline-manager] elasticsearch - New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["https://<host-name-partxxxx>.us-east-2.es.amazonaws.com:443"]}
[INFO ] 2021-06-02 11:40:19.902 [[main]-pipeline-manager] elasticsearch - Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[https://<username>:<password>@<host-name-partxxxx>.us-east-2.es.amazonaws.com:443/]}}
[WARN ] 2021-06-02 11:40:20.760 [[main]-pipeline-manager] elasticsearch - …Run Code Online (Sandbox Code Playgroud) amazon-web-services elasticsearch logstash aws-elasticsearch
我的日志由 ElasticSearch 从应用程序服务器的标准输出建立索引。无需修改写入日志的源,是否可以“漂亮地打印”任何 JSON 日志消息?如果我尝试从记录器中漂亮地打印 JSON,则每一行都会在 ES 中记录为单独的条目。
如果没有,我的 Kibana/OpenSearch 仪表板中会显示此消息,如下所示:
我们使用最新的 AWS OpenSearch 1.1。
我是 AWS 的初学者,对 AWS Cognito 系统有点困惑。
我在 VPC 后面有一个 AWS Elasticsearch 服务。我正在尝试使用 AWS Cognito 访问 Kibana 端点,但是当我导航到登录屏幕时,我看到一个空白页面。
我正在尝试做的事情是否可行,或者我是否需要先通过 VPN 进入 VPC 才能进入登录屏幕?如果是这样,我如何授予公共用户访问 Kibana 的权限(没有 VPN 的麻烦?)更好的解决方案是将反向代理指向 Kibana 并将其与 AWS Cognito 结合使用吗?谢谢你的帮助。
注意:我使用的是 Elasticsearch 6.2
我正在尝试使用我的accessKey和secretKey使用curl向我在AWS中的es集群发布请求。我已经通过邮递员成功完成了此操作(详细信息请参见此处),您可以在其中指定 AWS 凭证,但我想使用curl 来完成此操作。邮递员可以为您自动生成您的卷曲请求,但我得到的只是错误。
这是生成的curl请求和响应
curl -X GET \
https://search-00000000000001.eu-west-1.es.amazonaws.com/_cat/indices \
-H 'Authorization: AWS4-HMAC-SHA256 Credential=11111111111111111111/20181119/eu-west-1/es/aws4_request, SignedHeaders=cache-control;content-type;host;postman-token;x-amz-date, Signature=11111111116401882398f46011f14fdb9d55e012a4fb912706d67c1111111111' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Host: search-00000000000001.eu-west-1.es.amazonaws.com' \
-H 'Postman-Token: 00000000-0000-4001-8006-9291e208a000' \
-H 'X-Amz-Date: 20181119T220000Z' \
-H 'cache-control: no-cache'
{"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details."}%
Run Code Online (Sandbox Code Playgroud)
为了保护无辜者,身份证已被更改。
我已经检查了我所有的密钥和区域,就像我说的,这可以通过邮递员进行。是否可以通过curl 使用我的密钥访问此AWS 服务?