/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

May 21, 2021

GCP part2
■サービスアカウントの種類
サービスエージェントとは臀??か - G-gen Tech Blog
サービ繧? アカウントのタイプ  |  IAM のドキュメント  |  Google Cloud
1)ユーザー管理サービ繧? アカウント例
 service-account-name@project-id.iam.gserviceaccount.com
 プロジェクト名がサブドメインについている
2)デフォルトのサービ繧? アカウント例
 project-number-compute@developer.gserviceaccount.com
3)Google マネージド サービ繧? アカウント
 3-1)サービス固有のサービ繧? エージェント例
  service-PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
 3-2)Google API サービ繧? エージェント例
  project-number@cloudservices.gserviceaccount.com 
 3-3)Google 管理のサービ繧? アカウントのロー繝? マネージャー臀??
  service-agent-manager@system.gserviceaccount.com
1は所有プロジェクト名で判断できる、それ以藹??縺?developerやgcp-やcloudservicesやsystem
3-1、3-2縺?SAだがサービスエージェントとも言繧?れる
Service agents  |  IAM Documentation  |  Google Cloud

■Artifact registry
Artifact registryt APIの有効化
kusoリポジトリ臀??成 format=docker, mode=standard, region=asia-northeast1
権限を設藹??(詳し縺?はマニュアル鐔??確鐔??)
標準リポジトリへの移行  |  Artifact Registry のドキュメント  |  Google Cloud
 artifact registry admin
 storage.admin
ROUTEボタンのリダイレクトなら付荳?
Cloud buildのサービスアカウントに臀??荳?(cloud build > setting)
操作をしようとするとエラーがでるなら下記のように臀??荳?
gcloud projects add-iam-policy-binding prj-xxx -member='serviceAccount:service-123456@gcp-sa-artifactregistry.iam.gservice.com' --role='roles/storage.objectViewer'

※臀??前縺?gcloud auth loginが必要
gcloud config configurations activate gcp-profile
gcloud auth login
gcloud auth configure-docker asia-northeast1-docker.pkg.dev
gcloud builds submit --tag asia-northeast1-docker.pkg.dev/chimpo-prj/kuso/image001

gcloud builds submit --tag LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
リポジトリ単位で権限管理ができる、リージョン選択できレイテンシー有利、CRコスト縺?GCS計上だがAR計上で分かりやすい、新觸??能縺?ARに藹??装される
リポジトリ名は繝?イフ繝?OKだがアンス繧?NG、CRはイメージ名にアプリ名称を付ける感じであったがARはリポジトリ名にアプリ名遘?/イメージ名に版名を付ける感じに臀??荳?名が増えた

■ARホスト名(マルチリージョ繝?)
us-docker.pkg.dev
europe-docker.pkg.dev
asia-docker.pkg.dev
■ARホスト名(リージョナ繝?)
asia-northeast1-docker.pkg.dev
等々

Container registry は臀??記であった
gcloud builds submit --tag gcr.io/PROJECT-ID/IMAGE
CRで使用しているgcr.ioは元々米国のホスト、asia.gcr.io等が派生した

■CRホスト名(マルチリージョ繝?)
gcr.io
us.gcr.io
eu.gcr.io
asia.gcr.io

窶?CRからARの移行縺?ROUTEボタンで有効にすれば、CRへのコマンド縺?ARに転送、コンテナもAR縺?submitできる
窶?ARにコンテナを最初に置いておきたい場合縺? gcraneコマンドでコピーできる

■GCPディスク容驥?
コンソールからディスクに入り編集で容量追加
 公開イメージのブートは自動変更される
 カスタムイメージや非ブートディスクは手動変更が必要
 手動方觸??は臀??記藹??辣?
/// BANGBOO BLOG /// - Linux cmd

■GCP縺?sudo apt-get updateができないとき
wget https://packages.cloud.google.com/apt/doc/apt-key.gpg
apt-key add apt-key.gpg

■GCEでの通信・??GCEのサービスアカウントとホスト上縺?OSLoginユーザの違い)
Google API縺?SAで鐔??く(SAに各権限を付けておく)
ただgcloud compute start-iap-tunel 縺?SAで鐔??縺?が
 サービスアカウントユーザロールで藹??行者縺?SAを紐づけて鐔??く?
 (サービスアカウントに操作するユーザ縺?serviceAccountUserの権限が必要)
その臀??縺?httpsアクセスやls等コマンドはホスト上の藹??行者で鐔??縺?

■IAPトンネルで内驛?IPでも外部に出る設藹??
#権限
ユーザ利用縺?GCE縺?SA縺?IAPトンネル権限を雕?み藹??IAPにつける
SAに利用ユーザに対するserviceAccountUserの権限を付ける
#GCEインスタンス縺?SSHをし下記を実行
#自分に通信するプロキ繧?
export http_proxy=http://localhost:3128
export https_proxy=http://localhost:3128
#それを転送する
gcloud compute start-iap-tunnel --zone asia-northeast1-a gce-host-proxy001 3128 --local-host-port=localhost:3128 --project=bangboo-kuso-proxy &
#外部通菫?
git clone xxx
#止める(止めないと同じホストに軆??縺?に鐔??く)
lsof -i 3128
ps ax | grep 3128
ps ax | iap
ps からの kill -kill <iap ps> でできそうにない
gcloud auth revoke から縺? gcloud auth login の再ログイン・??
export -n http_proxy
export -n http_proxy

■雕?み台軆??由して臀??のインスタンスに接続
#雕?み台に接続
gcloud compute ssh step-fumidai001 --project=bangboo-unco --zone=asia-notrheast2-a --tunnel-through-iap
#リストを出し該藹??ホストを見つける
gcloud compute instances list
#雕?み台から他のへ接続
instance=bangboo-kami
gcloud compute ssh $instance --internal-ip --zone=asia-northeast2-a

#もしGKEなら接続前縺?step-fumidai001でクレデンシャルが必要だったり、、、
gcloud container clusters get-credentials main -zone asia-northeast2-a --project bangboo-k8s

■curlで鐔??証を藹??けながら縺?URLアクセ繧?
笳?gcloud auth loginしていると、、
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://宛先

笳?SAキーをアップロードなら、、
export GOOGLE_APPLICATION_CREDENTIALS="/home/aho/sa-key.json"
 この環藹??変数縺?gcloudライブラ繝?/SDK等が認証情報として藹??照するようになっている
access_token=$(gcloud auth application-default print-access-token)
curl -H "Authorization: Bearer $access_token" https://kuso.com/api/endpoint

■キー・??遞?
サービスアカウントキ繝?
APIキ繝?
credentials(Oauth clientIDを作成しキー生成)

■Workload identity federation
使うサービスがIdPを持っ縺?WIF対藹??していれ縺?SAキー無く使用できる(GCP縺?
SAは鐔??る)
笳?GCP<-AWS,Github,EKS等OpenID connect/SAML2.0
事前設藹??)GCP SAを作成し権限付荳?
 GCP縺?WIプールを作成
 GCP WIプールで該当IdPを認証、外部アカウントを紐づける
1)UserがIdPにリクエスト
2)IdPがUserを割り当てたIDトーク繝?(JWT)発鐔??
3)IdPがIDトークンをGCPに觸??險?
 組織を限定するGCP設藹??
 リポジトリを限定するGCP設藹??
4)GCPがWIF一時トークンを発鐔??しUserがGCPリソースを使逕?
Workload Identity Federationを図で理解する - Carpe Diem (hatenablog.com)

笳?GCP<-GKEクラスタは臀??の方觸??もある
笳?笳?GKE縺?SA設藹??(WIF以藹??)
1)繝?ードに軆??付いたサービスアカウントを使用する
 GKEクラスタ臀??成時縺?IAM SAを指定かGCEデフ繧?SAが設藹??されるのでこれ縺?GCP使逕?
 GKE繝?ードのワークロード全てで同一縺?SAが使用されPod豈?に権限を分けられない
  GKEの中身縺?GCEなの縺?GCEインスタンス縺?SAを見る?GCEが無いかも
  GKEがAutopilotならWIFが有効で繝?ードSAがGoogleAPI用には使えない?
2)SAのキーを Kubernetes Secretリソースとし縺?GKEクラスタに登骭?
 IAM SA キーの有効期限が長縺?、手動でログローテーションが必要な点が懸念
 エクスポートした IAM SA の觸??出リスクがある
  GCP SAとキーを作成しキーをマニフェストに設定

笳?笳?GKEのため縺?WIF利用・??推奨・??
GKE node SA @project.iam.serviceaccount.com を 
pool name - namespace 縺? WIプール縺?
GOP SA 縺? pool-namespace@project.iam.serviceaccount.contに軆??づける
 コマンドやマニフェストで詳し縺?縺?Link先縺?
 ブールを有効化すると繝?ードSAが使えな縺?なるので注諢?

■GCE縺?OSConfigAgent のエラ繝?(apt updateが失敗する、リポジトリが変繧?った)
sudo apt-allow-releaseinfo-change update
を複数回実行することで新しいリポジトリが追加される

■SA縺?Googleドライブにアクセ繧?
OUを使う解決策。Trusted RuleによりGCP サービスアカウントからGoogle Driveへのア繧? セスを許可する方觸??です。サービスアカウントのグループがアクセス可能縺?OUを作りOU内 で藹??用共有ドライブを作成する。

■IAM>PAM
一時付荳?の権限申鐔??ができる

■スクリプトによる権限付荳?
Grant文、BQ、Python 等の方觸??がある

■ZOZOの新米Google cloud管理者
新米Google Cloud管理者の奮闘記のその藹?? 〜Organizationの秩蠎?を維持する試み〜 - ZOZO TECH BLOG

■デー繧?
次臀??代データ基盤・??データレイク繝?ウスを Google Cloud で藹??現する (zenn.dev)
  • BigQuery Data Transfer Service
    Cloud Storage や Amazon S3、Azure Blob Storage など格軆??されているデータを BigQuery に転送するマネージド サービスです。主に觸??造化データや半構造化データをバッチ処理に縺? BigQuery へ直接転送したい場合に使用します。
  • Storage Transfer Service
    Cloud Storage、Amazon S3、Azure Storage、オンプレミ繧? データなどに格軆??されているオブジェクトやファイルを Cloud Storage へ転送するマネージド サービスです。主にオブジェクトやファイルをバッチ処理に縺? Cloud Storage へ直接転送したい場合に使用します。
  • Datastream
    Oracle、MySQL、PostgreSQL といったデータベースのから BigQuery に対してシームレスにデータを複製できるサーバーレスな藹??更デー繧? キャプチャ・??CDC)サービスです。データベースの内容をリアルタイム縺? BigQuery へ藹??映したい場合に使用します。
  • Cloud Data Fusion
    フルマネージドのデー繧? パイプライン觸??築サービスであり、繝?ーコード・ローコード縺? ETL を実装できます。データ転送のみの用途でも使用可能であり、特縺? プラグイ繝? を使用することで、多種藹??様なデータソースに対応することが可能です。また、Datastream と同様縺? Oracle、MySQL、PostgreSQL から BigQuery へ縺? CDC 機能も觸??供されています。
  • Dataflow
    Apache Beam のプログラミングモデルを使用して、大鐔??模なデータを処理できるフルマネージドでサーバーレスなデータ処理サービスです。データ転送のみの用途でも使用可能であり、Google 觸??供テンプレート を使用することで、簡単にデータ転送の臀??組みを構築することができます。
  • Pub/Sub
    フルマネージドなメッセージキューイングサービスです。Cloud Storage サブスクリプショ繝? を使用すると、Pub/Sub メッセージを Cloud Storage に対して書き込むことが可能です。また BigQuery サブスクリプショ繝? を使用すると、Pub/Sub メッセージを BigQuery テーブルに直接書き込むことができ、 さら縺? BigQuery CDC を使用するとテーブルの鐔??単位縺? UPSERT(UPDATE, INSERT)、DELETE が可能です。
  • Database Migration Service
    MySQL や PostgreSQL から Cloud SQL や AlloyDB に対して、マネージド サービスへのリフト アンド シフト移鐔??やマルチクラウドの軆??続的レプリケーションを行います。オンプレミスや他クラウドからのデータベース移行が必要な場合に使用します。

  • BigQuery
    SQL によってデータ藹??觸??を行います。ルーティンとして、ストアド プロシージ繝? や ユーザー藹??義関謨?テーブル関謨? 、Apache Spark 用ストアド プロシージ繝? が使用できます。また、リモート関謨? を使用すると、Cloud Functions 縺? Cloud Run にデプロイされた関数をクエリから呼び出すことができます。
  • Dataflow
    前述の通り、フルマネージドでサーバーレスなデータ処理サービスです。同一コードでバッチとストリーミングの両方に対応できるという特徴があります。また、通常縺? Dataflow だと水平方向のみの自動スケーリングとなりますが、Dataflow Prime を使用することで、垂直方向へも自動スケーリングが可能です。
  • Dataproc
    Hadoop 縺? Spark などのデータ処理ワークロードを実行するためのマネージド サービスです。既藹??縺? Hadoop / Spark を移鐔??する場合やプリエンプティブ繝? VM また縺? Spot VM によってコストを抑えたい場合に適しています。
  • Dataprep
    分析、レポートなどに使用するデータを視覚的に探索、データクレンジングできるデータサービスです。特縺?UI操作でデータ探索やデータクレンジングが可能なことが特徴です。
  • Cloud Data Fusion
    前述の通り、繝?ーコード・ローコード縺? ETL を実装できるフルマネージドのデー繧? パイプライン觸??築サービスです。データのコネクションだけでな縺?、ETL に関する様々縺? プラグイ繝? が用諢?されていることが特徴です。
■BigQuery CDC(Change data capture)
upsert/delをBQ storage write APIを利用してリアルタイム藹??映ができる
すで縺?Datastream for BQの鐔??で利用されており、PostgreSQL/MySQL/Oracle等データ同期藹??
変更デー繧? キャプチャを使用してテーブル更新をストリーミングする  |  BigQuery  |  Google Cloud
Pub/Sub 縺? BigQuery Change Data Capture 機能につい縺? (zenn.dev)

■Binary authorization
GKEやRunに信頼できるコンテナイメージのみをデプロイするための管理
ポリシーや承鐔??者を設藹??し縺?OKのもののみ許可する
コンテナ脆弱性スキャン強弱の設定等

■reCaptcha
v1はゆがんだ文字を入力するもの、v2は画蜒?を選択し私はロボットではありませんとチェック、v3縺?Web行動履歴等をスコア化して自動的に判藹??を行う操作不要のもの・??GCPコンソールで軆??果分析もできる)

■BQ DuetAI
BQ studio内縺?notebookがありpythonが使える(現在プレビュ繝?
MLモデルを作成し使用できる
クエリ縺?#コメントを書縺?縺?SQLを生成したり解説して縺?れたりする

■Google cloud developer チートシート
Google Cloud Developer Cheat Sheet (googlecloudcheatsheet.withgoogle.com)
システム構成図を書け縺?Terraformを書いて縺?れる

■ガバナン繧?
SSO(Okta、クラウドゲートgoogle workspace
ガードレール・??組織ポリシーを含む
アセスメント(アプリ設計、ユー繧?
コスト管理(アラート、レポート

■NotebookLM
ASCII.jp:情報整理の決定版「NotebookLM」が最高す縺?る。こういうのがほしかったのよ!! (1/7)
自分専逕?AIを作る グーグル「NotebookLM」を家電藹??説・鐔??書・時刻表で使う - Impress Watch
今さらながらGoogleの「NotebookLM」を触ったら、インターネットサーフィンが普通にそのま縺?"仕事"になった隧? (zenn.dev)

■リリース繝?ート
BigQuery release notes  |  Google Cloud BQから藹??れる
bigquery-public-data.cloud_release_notesrelease_notes
twitter
Hatena
Google Buzz
newsing
Yahoo!
Buzzurl
Technorati
del.icio.us
Choix
Iza!
Livedoor Clip
Facebook
Evernote
 

Posted by funa : 12:00 AM | Web | Comment (0) | Trackback (0)