Запрещенная ошибка при получении сведений о кластере с использованием <publicServiceEndpointURL>с REST kubernetes API - PullRequest
0 голосов
/ 17 июня 2020

Попытка получить детали кластера kubernetes, такие как пространства имен и детали пода, с использованием API kubernetes, следуя do c

API:

<publicServiceEndpointURL>/api/v1/namespaces
Headers:
Authorization: bearer <id_token>

<id_token> - Генерирован токен IAM.

получит сообщение об ошибке сертификата на почтальоне с включенным сертификатом SSL, иначе будет выдана ошибка 403 Запрещено

Error: unable to verify the first certificate

Результат с отключением проверки сертификата SSL.

{
    "kind": "Status",
    "apiVersion": "v1",
    "metadata": {},
    "status": "Failure",
    "message": "namespaces is forbidden: User \"system:anonymous\" cannot list resource \"namespaces\" in API group \"\" at the cluster scope",
    "reason": "Forbidden",
    "details": {
        "kind": "namespaces"
    },
    "code": 403
}

Пробовал с помощью curl, и это приведет к той же ошибке

curl -k <publicServiceEndpointURL>/api/v1/namespaces -H "Authorization: Bearer <token>"

Ошибка chrome с вызовом API

net::ERR_CERT_AUTHORITY_INVALID

Как я могу получить доступ к этому API?

1 Ответ

0 голосов
/ 18 июня 2020

У вас есть права на вывод списка пространств имен в кластере? Если вы входите в систему как тот же пользователь через интерфейс командной строки, например, можете ли вы запустить kubectl get namespaces? Похоже на ошибку разрешений. Пользователю потребуется роль службы IBM Cloud IAM Reader (которая дает вам роль RBA C view) для всех пространств имен в кластере.

...