서비스 계정으로 Google Cloud 함수 인증 및 호출
3152 단어 cloudpythoncloudfunctionsgoogle
Google Cloud의 서비스는 한동안 사용되었습니다. Google Cloud Functions는 Google의 퍼블릭 클라우드 내에서 프로그래밍 방식의 기능을 만들고 구현하기 위한 Google Cloud Platform 내의 서버리스 이벤트 기반 서비스입니다.
모든 인프라 리소스는 Google Cloud Platform(GCP)에서 자동으로 프로비저닝 및 복구됩니다. GCP는 또한 작업할 수 있는 훌륭한 콘솔 명령 목록을 제공합니다.
Cloud Functions 인증
기능 인증에 적용할 수 있는 다양한 시나리오가 있습니다. 사용자 서비스 계정을 인증하기 위한 시나리오 중 하나입니다.
이 시점에서 이미 서비스 계정을 생성했다고 가정합니다. 첫 번째 단계로 시작하려면 서비스 계정을 IAM에 추가하세요. 이를 위해 GCP에서 IAM으로 이동하고 추가를 클릭합니다.
그렇게 하면 회원 이름을 입력할 수 있습니다. 거기에 서비스 계정 이름을 입력합니다. 다음으로 이 서비스 계정에 역할을 추가합니다.
서비스 계정을 사용하여 서비스를 인증하려면 서비스 계정에 다음 역할이 있는지 확인하세요.
저장을 클릭하여 데이터를 저장합니다.
토큰 생성 코드로 이동하기 전 마지막 설정은 서비스 계정에 대한 키를 생성하는 것입니다. GCP에서 서비스 계정으로 이동합니다. 서비스 계정을 표시하는 목록에서 키 만들기 옵션을 클릭합니다. 키 정보가 포함된 .json 파일을 다운로드해야 합니다. 민감한 정보가 포함된 imp 파일입니다. 자세한 내용은 here을 참조하십시오.
이제 서비스 계정이 설정되었습니다. 이제 이 서비스 계정에 대한 인증 토큰을 가져와야 합니다. 이렇게 생성된 토큰은 서비스 계정으로 인증을 사용하는 GCP 서비스를 호출하는 데 사용할 수 있습니다. 내 시나리오에서 Google 클라우드 기능을 사용했습니다. 액세스하려는 서비스에 동일한 서비스 계정이 설정되어 있는지 확인하세요.
이제 JWT 토큰을 생성하는 코드 스니펫을 살펴보겠습니다.
from google.oauth2 import id_token
from google.oauth2 import service_account
import google.auth
import google.auth.transport.requests
from google.auth.transport.requests import AuthorizedSession
import requests
# path to your cloud function or any other service
url = 'https://{region}-{project-id}.cloudfunctions.net/{cloud-function-name}'
# path to you keys file that was downloaded when keys for SA were created
keyFilePath = 'key.json'
creds = service_account.IDTokenCredentials.from_service_account_file
(keyFilePath,
target_audience=url)
# auth session
authed_session = AuthorizedSession(creds)
# make authenticated request and print the response, status_code
resp = authed_session.get(url)
# to verify an ID Token
request = google.auth.transport.requests.Request()
token = creds.token
# print the generated token
print(token)
print(id_token.verify_token(token,request))
그러면 후속 요청을 인증하는 데 필요한 JWT 토큰이 제공됩니다. 각 클라우드 서비스를 호출할 때 헤더에 이 토큰을 전달하기만 하면 됩니다.
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {token}'.format(token = token)
}
이 단계를 사용하여 토큰을 얻은 다음 GCP에서 호스팅되는 서비스를 호출할 수 있습니다. 동일한 코드와 단계를 사용하여 AWS Lambda 또는 다른 HTTP 요청에서 GCP 클라우드 함수를 호출할 수 있습니다.
Reference
이 문제에 관하여(서비스 계정으로 Google Cloud 함수 인증 및 호출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/praneetnadkar/authenticating-calling-google-cloud-function-with-service-account-4pjb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)