Конечные точки GCP: вызывающий не имеет разрешения после запроса ключа API в запросе - PullRequest
1 голос
/ 29 апреля 2020

Попытка использовать платформу Google Cloud с развернутым бэкэндом GKE.

У меня есть файл swagger для конечных точек, который отлично работает, когда не используется защита.

Я добавил определение ключа API в файл чванства:

paths:
  /create:
    post:
      ...
      security:
        - api_key: []

securityDefinitions:
  api_key:
    type: "apiKey"
    name: "key"
    in: "query"

и теперь, если я пытаюсь опубликовать сообщение, я получаю ожидаемое

{
    "code": 16,
    "message": "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

Хорошо, теперь я создал ключ API в разделах учетных данных GCP enter image description here

Я обновляю запрос на публикацию, чтобы включить ?key=API_KEY и получаю следующую ошибку:

{
    "code": 13,
    "message": "\b#The caller does not have permission",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

Не могу найти информацию об этой ошибке, неужели это значит, что мой ключ API не имеет права на эту конечную точку? Если так, как я могу это исправить?

1 Ответ

1 голос
/ 30 апреля 2020

Подтвердите, что у вас включены необходимые службы

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com

Также включите службу конечной точки gcloud services enable ENDPOINTS_SERVICE_NAME

...