"ecctl user list" で "The requested resource could not be found." エラーが発生

Elastic Cloud 内のKibana閲覧ユーザーとそのロールをecctlコマンドでコントロールしたいと考えております。
ecctlコマンド自体のインストールは成功して、"ecctl deployment list" コマンドは動いたのですが、"ecctl user list"を実行したところ、エラーが発生しました。

    xxxxx@xxxx:~/.ecctl$ ecctl user list --verbose --verbose-credentials
    Using config file: /home/xxxxx/.ecctl/config.json
    ==================== Start of Request #1 ====================
    GET /api/v1/users?include_disabled=false HTTP/1.1
    Host: api.elastic-cloud.com
    User-Agent: ecctl/v1.1.0
    Accept: application/json
    Authorization: ApiKey xxxxxxxxx
    Accept-Encoding: gzip


    ====================  End of Request #1  ====================
    ==================== Start of Response #1 ====================
    HTTP/1.1 404 Not Found
    Transfer-Encoding: chunked
    Connection: keep-alive
    Content-Type: application/json
    Date: Wed, 06 Jan 2021 09:36:10 GMT
    Server: fac/cfc33d8
    X-Request-Id: e2d4f88317ab5d481507f9f97e4a132f

    43
    {"ok":false,"message":"The requested resource could not be found."}
    0


    ====================  End of Response #1  ====================
    {"ok":false,"message":"The requested resource could not be found."}

「requested resource」とあるが、そもそもコマンド内でリソースの指定は行っておりません。
公式ドキュメントには特にリソースID等の指定は不要なようでしたが、何か設定が足りてませんでしょうか。
最終的に行いたいのは、Kibanaを閲覧するユーザーとロールをCLIで作成・更新を行いたい、という事です。

解決策の他、アイデア等ございましたら、なにとぞご意見、ご教授のほど、よろしくお願いいたします。

「$HOME/.ecctl/config.yaml」にhostやuser/password もしくはapi_keyなどは設定しました?

taku333様、リプライありがとうございます。

ecctl initで初期設定を行いました。
その際に、api_keyを入力しています。

$HOME/.ecctl/config.json

{
  "host": "https://api.elastic-cloud.com",
  "api_key": "xxxxxx",
  "region": "gcp-asia-northeast1",
  "output": "json",
  "timeout": 30000000000,
  "insecure": true
}

どうぞよろしくお願いいたします。

@miz21358
こんにちは、自分の方でも環境作成してみたのですが上手く行きませんでした。

そこで、Githubよりソースを読んだところ下記の記載を見つけました。
「ECEでのみ使用可能」可能だそうです。

Lists all platform users (Available for ECE only)

taku333 様、わざわざ環境を作っていただいてまでご確認いただき、ありがとうございます。
ECEじゃないと使えないんですね…残念です。
普通にcurlを使えばCLIでユーザー作成できるのでしょうか。
私ももう少し調べてみようと思います。

cURLでKibana閲覧ロールを付けることができました。
色々とアドバイスいただき、ありがとうございました。

curl -H 'Authorization: ApiKey <base64ApiKey>' -H 'Content-type: application/json' \
-H 'kbn-xsrf: true' -H '{ WWW-Authenticate={ 0=\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\" & 1=\"Bearer realm=\\\"security\\\"\" & 2=\"ApiKey\" }' \
-X PUT '<KibanaEndpoint>/api/security/role/sample-suzuki@hoge.jp' -d '{
  "metadata" : {
    "version" : 1
  },
  "elasticsearch": {
    "cluster" : [ ],
    "indices": [
      {
        "names": [ "<index名>", "<index名>" ],
        "privileges": ["read"]
      }
    ]
  },
  "kibana": [
    {
      "base": [],
      "feature": {
        "dashboard": ["read"]
      },
      "spaces": [
        "default"
      ]
    }
  ]
}'
1 Like