GCPキャッチアップメモ

つらつらと書いていく。まとまりはないので本当に自分用メモです

API Gateway は「API Config」と「ゲートウェイ」と呼ばれるコンポーネントで構成されている
API Gateway
1、API Config
2、ゲートウェイ

サービスアカウントとは?
サービス アカウントは、ユーザーではなく、アプリケーションや Compute Engine インスタンスなどのコンピューティング ワークロードで通常使用される特別なアカウントです。
サービス アカウントは人間以外のユーザーを表します。これは、カスタム アプリケーションなどのワークロードで、エンドユーザーの関与なしにリソースにアクセスする場合や、アクションを実行する必要がある場合を対象としています。
サービスアカウントはプリンシパルであり、リソースでもある
なる、、ほど??わからない

サービスアカウントは、権限を与えられて実行役となり(プリンシパル)、同時にその実行役を誰が使えるかという管理対象にもなっている(リソース)、という非常に重要な存在です。
1、サービスアカウントを作成
2、「Cloud Storageの管理者」のロールをサービスアカウントに付与
3、サービスアカウントをCumpute Engineに割り当て
4、結果、Compute EngineからCloudStorageへアクセス(CRUD)可能な状態を実現できる
------ ↑これが実行役(プリンシパル)としてのサービスアカウント ------
------ ↓これが管理対象(リソース)としてのサービスアカウント ------
1、PMは今月参画した開発者Aさんに、サービスアカウントの操作権限をあげたいと思った
2、PMは開発者Aさんに対して、「サービスアカウント ユーザー」のロールを付与する
3、結果、開発者Aさんは「Compute Engineに、CloudStorageへのアクセス可能なサービスアカウントを割り当てる」操作ができる状態になった
AWSのAIMロールと近しい感じ

これか

昨日GCP API Gatewayをコンソールからポチポチ作ってみた、openapi.ymlをアップロードしたがゲートウェイ作成で、不明なエラー。なぜ?
x-google-backendの指定が漏れていたかも
で、今朝見た記事
GCPのAPI Gatewayは、APIの定義を記載したOpenAPIドキュメント(v2.0)を渡すことで、設定できます。
しかし使ったことがある人なら分かると思うのですが、めちゃくちゃエラーが出ます。通常のviewerで問題なく表示できるドキュメントを使っても大量のエラーを吐くことがよくあります。しかも、何故か今どきv2しか受け付けません。v3で書くともちろんエラーを吐きます。
APIを修正してプルリク出してレビューしてマージして適用しようとすると、適用失敗してエラーになり作り直しになることが容易に想像ができます。これはツライです。
ハマりやすい様子、、

IAMロール3種類
基本ロール
事前定義ロール
カスタムロール
基本ロールには3種類
オーナー プロジェクトの全権限をもつ。IAM管理も可能
編集者 リソースの管理が可能、IAMの管理はできない
閲覧者 リソースの閲覧のみ。変更や作成は不可

認証はFirebase Authにする
内部的にはIdentity Platformを使っているらしい
認証トークンは1時間で切れるとのこと
でもfirebase SDK経由で取得すれば自動でリフレッシュしてくれる

後からFastAPIでCloudRunにデプロイ予定
今はfunctions frameworkでCloud functionsの開発をする土台をつくる
横文字ばっかりや

Cloudfunctionsの前段にAPI Gatewayを置く意味
アクセス制御をAPI Gatewayに分離しfunction側ではビジネスロジックに集中
・認証をまとめることができる
・ログの集中管理→どのパスにどのくらいアクセスがあったか調べることができる
・エンドポイントをドメインで統一できる
・レートリミットなどのカスタマイズをGateway側で集中管理
・CloudRunに移行するとき向き先を変えるだけで済む
おお、メリット多い

CloudfunctionsではなくCloudRunに変更
FastAPIをCloudRunにデプロイ
APIGateway経由でアクセス
APIGatewayにFirebaseAuth認証つけてアクセス
CloudRunからFiiestoreへusers一覧取得をする