AWSでVPC制御のElastic Search Serviceを作成しようとしています。問題は次のコードを実行するとエラーが発生することです。 'ValidationException:処理を続行する前に、サービスに関連付けられた役割を有効にして、VPCにアクセスするためのAmazon ESの権限を付与する必要があります。' ValidationException:続行する前に、あなたのVPCにアクセスするためにアマゾンES権限を与えるサービスにリンクされた役割を有効にする必要がありますValidationException:続行する前に、サービスに関連付けられた役割を有効にして、Amazon ESにVPCへのアクセス権を付与する必要があります。
const AWS = require('aws-sdk');
AWS.config.update({region:'<aws-datacenter>'});
const accessPolicies = {
Statement: [{
Effect: "Allow",
Principal: {
AWS: "*"
},
Action: "es:*",
Resource: "arn:aws:es:<dc>:<accountid>:domain/<domain-name/*"
}]
};
const params = {
DomainName: '<domain>',
/* required */
AccessPolicies: JSON.stringify(accessPolicies),
AdvancedOptions: {
EBSEnabled: "true",
VolumeType: "io1",
VolumeSize: "100",
Iops: "1000"
},
EBSOptions: {
EBSEnabled: true,
Iops: 1000,
VolumeSize: 100,
VolumeType: "io1"
},
ElasticsearchClusterConfig: {
DedicatedMasterCount: 3,
DedicatedMasterEnabled: true,
DedicatedMasterType: "m4.large.elasticsearch",
InstanceCount: 2,
InstanceType: 'm4.xlarge.elasticsearch',
ZoneAwarenessEnabled: true
},
ElasticsearchVersion: '5.5',
SnapshotOptions: {
AutomatedSnapshotStartHour: 3
},
VPCOptions: {
SubnetIds: [
'<redacted>',
'<redacted>'
],
SecurityGroupIds: [
'<redacted>'
]
}
};
const es = new AWS.ES();
es.createElasticsearchDomain(params, function (err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(JSON.stringify(data, null, 4)); // successful response
}
});
問題は、私はこのエラーを取得することです。私は、弾性検索サービスのためにこのサービスにリンクされた役割をどのように作成するかを考え出すことはできません。 aws.amazon.comのIAMコンソールでは、役割のためにそのサービスを選択することはできません。私はそれが自動的に作成されるはずだと信じています。
誰かがこれに遭遇したか、それを修正する方法を知っていますか?
私も同じエラーを取得していますテスト
elasticsearch
ドメインを削除することができます。サービス連携リンクを[VPCOptions]に設定する方法がないようです(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html#aws-properties- elasticsearch-domain-vpcoptions-seealso)である。 Amazon ESでは、VPCにアクセスしてドメインエンドポイントを作成し、VPCのサブネットにネットワークインターフェイスを配置するためのサービスに関連した役割が必要です。 –