■サービスアカウントの種類
サービスエージェントとは臀??か - G-gen Tech Blogサービ繧? アカウントのタイプ | IAM のドキュメント | Google Cloud1)ユーザー管理サービ繧? アカウント例
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の有効化
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 に関する様々縺? プラグイ繝? が用諢?されていることが特徴です。
GKEやRunに信頼できるコンテナイメージのみをデプロイするための管理
ポリシーや承鐔??者を設藹??し縺?OKのもののみ許可する
コンテナ脆弱性スキャン強弱の設定等
■reCaptcha
v1はゆがんだ文字を入力するもの、v2は画蜒?を選択し私はロボットではありませんとチェック、v3縺?Web行動履歴等をスコア化して自動的に判藹??を行う操作不要のもの・??GCPコンソールで軆??果分析もできる)
■BQ DuetAI
BQ studio内縺?notebookがありpythonが使える(現在プレビュ繝?
MLモデルを作成し使用できる