GCP
概要 GoogleCloudのIAMにおいて、ユーザやサービスアカウントの権限の棚卸しをする際に、とあるIAMパーミッションがどのロール・ユーザ(メンバー)に含まれるか調べる方法です。 事前に以下を知っておくとイメージが付きやすいです。 christina04.hatenablo…
背景 Kubernetes Ingressで作成されたGCPロードバランサー周りのコンポーネントは k8s2-um-xxx k8s2-rm-xxx k8s2-tp-xxx k8s-be-xxx など色々あり、どれが何を表しているのか分かりづらかったのでまとめます。 命名規則とコンポーネント 命名規則とコンポー…
概要 OpenTelemetryはOpenCensusやOpenTracingをまとめた形で生まれたので、既にOpenCensusやOpenTracingの形で実装されたライブラリは移行するのが大変です。 例えばGCPの各SDKは基本的にOpenCensusで実装されています。 そのようなライブラリを使用する際…
概要 Cloud ArmorのようなWAFは通常ルールベースで不正なアクセスを制御するため、悪意あるユーザがIPアドレスやパラメータをコロコロ変えたりすると都度ルールを設定する必要が出てきてイタチごっこになりがちです。 そんなケースに対応できるよう、機械学…
概要 GCPのWorkload Identity連携はサービスアカウントで秘密鍵を作らずともGCPリソースへのアクセス権を他の環境(オンプレ、別パブリッククラウド)に付与することができます。 これにより AWSからGCPリソースにアクセスする GitHub ActionsからGCRにDocke…
概要 BigQueryはIAMロールを設定する際にハマる事が多いので、アーキテクチャを理解しておくときちんと権限付与することができます。 BigQueryのアーキテクチャ BigQueryのアーキテクチャは以下のように ストレージ コンピュート の大きく2つに分かれていま…
概要 以下のような購入時のドメインイベントをメッセージング基盤に非同期で渡してから順番通りに実行したい、となった時に便利なのが順序保証をしてくれるPubSubのordering keyです。 購入処理 各マイクロサービスへの状態変更リクエスト 行動ログ追記 購入…
概要 前回はCloud VPNによる内部IPでの疎通方法を紹介しました。 christina04.hatenablog.com 今回はVPCピアリングを用いた疎通方法を紹介します。 VPCピアリングを用いて内部IPによる接続を行うと以下のメリットがあります。 レイテンシ 外部IPアドレスを使…
概要 GCPのVPCは物理ネットワークを仮想化したネットワークであり、異なるVPC同士は直接疎通することはできません。 通常であればExternal IP経由もしくはLBなどを用いてアクセスしますが、内部IPで疎通したい場合はVPNを構築する必要があります。 検証 事前…
概要 ローカルからGCPにアクセスする際に使う gcloud auth login gcloud auth application-default login について区別できるようまとめます。 環境 gcloud v340.0.0 gcloud auth login 用途 こちらはローカルで以下のようなGCP系CLIを実行する際の認証を得…
概要 christina04.hatenablog.com の実践編です。 特定のGCSバケットにのみアクセスできるサービスアカウントを作ってみます。
背景 IAMはアクセス制御をする上で非常に重要な仕組みですが、一方で複雑になりがちです。 間違った理解のままだと必要以上の権限を与えてしまい、事故の原因となるので押さえておくべき点をいくつかまとめてみます。 リソース階層 GCPのIAMにはリソース階層…
概要 従来のGKEのロードバランサーはNodeに到達後iptablesで再度負荷分散するという2段階ロードバランシングでした。 これによりレイテンシの増加、分散のばらつきといった問題が生じていました。 ref: Google Cloud Blog - News, Features and Announcemen…
背景 過去にいくつかpprofの使い方を紹介しましたが、実際に運用する上では以下の課題があります。 何かしら問題が発生して初めてプロファイリング開始するという後手になりがち 問題の再現が難しく、再び発生するまで様子見という流れになりがち プロファイ…
概要 GCPのCloud PubSubはメッセージング基盤として非常に有用です。 ただし利用する上で考慮すべきことも多々あるのでまとめておきます。 パラメータに関しては主にGoのクライアントライブラリをベースに説明します。 環境 Go 1.15.2 google-cloud-go v0.72…
概要 GKEのPodといったWorkloadからGCPのリソース(GCS、PubSubなど)にアクセスする場合 GKE NodeのService Accountの権限でアクセスする 権限を持ったService AccountのJSONキーを使う の2通りあります。 それぞれの問題点の理解と、その解決策としてのWo…
概要 タイトルの通りなのですが日本語記事がなかったのでまとめておきます。 経緯 developers.cyberagent.co.jp の対応でGooglePlayの定期購読ユーザの購読状態をリアルタイムに更新するため、Real-time developer notificationsを導入しました。 その際Pub/…