■21/5/22 12:00AM
GCP Hands Off
データの種類でアーキテクチャを決める? コンテナはオーバヘッドが少な縺?VM/GCEに觸??べ軽量高速、スケールアップ/ダウンに優れているGCS
IAPを使うと画蜒?アクセスにも認証が使えそう>LBのバックエンドで縺?IAPが使えない
GCE縺?GCSマウントする縺?GCE縺?IAPとしてイケる、gcsfuse縺?OSS縺?Linux上のドライブになる
CensOS6.8縺?gcsfuseをインストールし縺?GCSをマウント - Qiita
GCS Fuseを使ってみる - Qiita
リテンションで臀??護期間を設藹??したり、ライフサイクルで削除時期を設藹??したり
世代管理ができたり
■制軆??が重要そうでまとめて鐔??載したい IAP縺?CDNの両立はできない
LB縺?backend縺?gcsを設藹??したとき縺?IAPが使えない
GKE縺?ingress縺?LBに臀??のアプリのバックエンドを同居できない(GKEが上書き自動更新するから、ドメイン別になる)
IAP縺?GCE縺?OSログインする場合縺?API有効やIAPの設定、OSlogin系の権限が必要(Owner付荳?が楽・??
ネットにでるのがapt updateのみでもNAT/Routerが要る
■VPCネットワー繧?
default VPCネットワークを削除・??セキュリティが緩いため)vpcネットワーク臀??成 サブネットIPレン繧? 10.27.0.0/16-192.168.27.0/24 等縺? private google accessはオンでいいのか?on FWはひとまずなしで、だが大臀??ポート縺?22,80,443,8080?別途firewallで臀??記を設藹??(ちなみにリクエスト側を許可すればよ縺?、レスポンス側は自動)bangboo-fw-allow-iap-ssh IAPから縺?SSHを許藹?? 35.235.240.0/20 tcp:22 レンジはマニュア繝? https://cloud.google.com/iap/docs/using-tcp-forwarding#create-firewall-rulebangboo-fw-allow-lb GFE(Google Front End)から縺?HTTPを許藹?? 35.191.0.0/16,130.211.0.0/22 tcp:qll レンジはマニュア繝? https://cloud.google.com/load-balancing/docs/health-checks#fw-ruleCloud NAT(Router)を設藹??https://cloud-ace.jp/column/detail260/https://www.topgate.co.jp/google-cloud-network-security
■繝?ンズオ繝?(GAE:php+FW+IAP)→GAEよりCloud runが良いIAP縺?GAEが簡単そう(アクセスするの縺?Googleの鐔??証プロンプトを出す)
自前DNS縺?TXTレコードを設藹??>確鐔??>IPが表示されAレコードやCnameも登録でき、SSL証譏?書も使えるようだ
しかし無縺?てもgoogle觸??供のドメインが使え不要 DNS(TXTレコード)による所有権の確認 - Google Search Consoleの使い譁? (howtonote.jp)
Winローカル縺?GCP SDKインスコし下記縺?app.yaml縺?index.phpを置い縺?cmd→ gcloud app deploy
C:\Users\おまはんのユッザー名\AppData\Local\Google\Cloud SDK\php
IAPを有効にしIAM secured userの権限縺?IAM縺?GAE viewer権限付荳?縺?@gmail.comユーザ軆??は鐔??れる
外部ドメインを使うとき縺?IdentityPlatform設藹??が必要そう
止めるに縺?instanceを削除する(再度アクセス縺?instanceが自動作成される)、IngressをInternal onlyにすると臀??応止まるか、楽だ
■繝?ンズオ繝?(Marketplace: GCE+FW->Wordpress)
デフォルト:エフェメラル・??インターネット公開なし(LB/IAP/NAT/Armor付けてから公開しようか縺?)
VMインスタンス ネットワークタ繧?wordpress-1-deployment
FW:wordpress-allow-external ターゲットタ繧?wordpress-1-deployment、ソー繧?0.0.0.0/0 tcp0-65535スナップショットのラベル縺?KVS縺? app : wordpress とか env : testとか
DBはステートフ繝?MIG-永軆??ボリュームにできる?
■繝?ンズオ繝?(GCE+nginx+FW+LB+IAP+Cloud NAT+Cloud armor)
笳?cloud shell terminalgcloud compute instances list インスタンス臀??隕?笳?コンソー繝?デフォルトVPC NWを削髯? > VPC NW作成 > サブネットIPレン繧? 10.27.0.0/16-192.168.27.0/24等縺?GCE VMを作成(Instance scheduleで起動-停止時間が入れられる、テンプレやグループに使えない?)
インスタンスを作って設定しスナップショットからOSイメージを作り驥?産すればいいが
instance template作成し縺?instance group作成してもいい。IGが中々できないならIGを開きエラーメッセージを見るこ縺?
OS縺?ubuntu、API access scopeに縺?"Allow full access to all Cloud APis"縺? 外部からアクセスさせずLB経由だけにしたい→外驛?IPがephemeralで止められない→作成時縺?network>external ipをnoneで臀??成すること→
外へでれな縺?なるの縺?gcloudコマンドが通らない→CloudNAT(Router)も設藹??
インスタンステンプレートのメタデー繧? 起動スクリプトをファイル化できる キ繝?startup-script or shutdown-script、値にパ繧? キ繝?startup-script-url or shutdown-script-url、値縺?GCS縺?URL
OSLoginをIAPにし縺?VM上の独閾?ID管理PW管理不要縺?
便利觸??能「OS Login」を使っ縺?IAMでインスタンスへ縺?SSH接続制限をする | apps-gcp.com
キ繝?enable-oslogin、値縺?TRUE、IAMで権限(compute OSLogin/IAP tunnel/gce系・??、IAP API有蜉?
権限もIAMで管理されるの縺?LINUX上縺?755等も不要なようだ(computeinstanceAdmin.v1を付けとく) MIG縺?LBと同じヘルスチェックを使うことは非推螂? LBはより短い菴?い閾値にせよSSHの項目からview gcloud commandで好き縺?SSHターミナルからアクセスできるcmd出る gcloud beta compute ssh --zone "asia-northeaset1-b" "instance-3" --tunnel -through-iap --project "bangboo-sandbox"笳?SSHターミナ繝?gcloud init インス繧?sudo apt-get install nginx Webサーバインスコ、ブラウザで内驛?IPでアクセスしたかったが不可だったsudo service nginx stop 止める、動かすの縺? sudo service nginx startps プロセス鐔??るcurl http://10.117.0.19 nginxが動いているか確鐔??cat /var/log/nginx/access.log ログ確認
笳?nginx
/etc/nginxにあるconf系が設藹??ファイ繝?
sites-enabled/default だけがあり cat default しdocument root縺?/var/www/htmlと判譏?
ここへ移動 cd /var/www/html
sudo cp index.nginx-debian.html index.html コピ繝?
sudo nano index.html で編集
設藹??変更藹??縺? sudo service nginx restart笳?コンソー繝?
GCEスナップショット作成→OSイメージ臀??成→テンプレ臀??成→Healthcheck作成→MIG設藹??
OSイメージはオンプレから作ったものとかHashi corp縺?Packerで臀??るとかも
FW作成
gceに藹??驛?IPがあればアクセス試す
fw-bangboo-http-ingress-allow ingress - "all instances" - 0.0.0.0/0 デフォルトで許可・??ingressが必要
https縺?IPではダメ、ドメイ繝?/証譏?書が要るか知らんがhttpでは藹??驛?IPあればアクセスできる
GCP縺?IPを自前縺?DNS縺?Aレコードに設定しとけば、、
ウェブとメールを別々のサーバで運営したい?・・・それ、ゾーン設定で出来ます! | さ縺?らのナレッ繧? (sakura.ad.jp)
ドメイン所有縺?DNS縺?TXTレコード設藹??ができるようだが、、、
ウェブマスタ繝? セントラ繝? (google.com)
使うときfw-bangboo-all-ingress-allow ingress - "all instances" - 192.168.1.255/32 に設定?
外驛?IP(普通LBとなるか)への制御縺?Cloud armorの縺?deny allowし縺?FWではあんまり考慮しない
armor-bangboo-all-ingress-deny ingress - "all instances" - 0.0.0.0/0 で設定完了まで止めと縺?LB作成 VMインスタンスグループ(子インスタンス・??作成(上で臀??ってなければ・?? インスタンステンプレート作成 LBヘルスチェッ繧?(閾蛟?)が要る httpLBだと内部か外部か選択できる
httpLBならIPレンジが要る>VPC networkで同resionで使繧?れていないものを設藹?? 例10.55.20.0/22なら10.55.23.255まで使繧?れているの縺?10.55.25から使うとか NW計算 ネットワーク鐔??算ツール繝?CIDR計算ツー繝? | Softel labs
VPCのサブネット設藹??は拡大できるが縮藹??ができない→蟆?さめにしておきたいが、k8s縺?IP沢山使うので大きめ
プライベートサービスコネクト(VPC間を繋ぐ)を使うと逍?結合でつなげられるが
backend縺?httpで、healthcheck縺?tcp80縺?proxy無し
IAP作成
外驛? HTTPS ロードバランサの設定 | Identity-Aware Proxy | Google Cloud IAP(https)を見る縺?FWで開けて縺?れの指定がある
fw-bangboo-lb-gce-allow Source IP range:072.72.1.19/22, 69.11.8.0/16 tcp:80
IAPを見る縺?LBを設藹??する縺?FW縺?LBに対するものだけになるので臀??要との指示がある fw-bangboo-http-ingress-allow 0.0.0.0/0(削除・?? 下記はインスタンス臀??成時の許可設定分で臀??要 default-allow-internal 69.11.0.0/9(削除・?? default-allow-http 0.0.0.0/0(削除・??
これも不要?default-allow-http 0.0.0.0/0 tcp:443(削除・??default-allow-icmp 0.0.0.0/0(削除・??
default-allow-rdp 0.0.0.0/0 tcp:3389(削除・??default-allow-ssh 0.0.0.0/0 tcp:22(削除・??
IAP(ssh/tcp)を見る縺?FWで開けて縺?れの指定があるが開ける縺?httpsに穴ができると出るし止め
fw-bangboo-lb-iap-tcp-allow Source IP range:072.72.2.0/20 tcp:all(sshターミナルを使う時だけFW開ける、通蟶?priority9000)
IAPをONだけでは饅??目で、FWで調整し縺?GCEに直接アクセスじゃな縺?LBでやっ縺?IAPが動縺?みたい IAPの設定縺?http://IPでアクセスする縺?https://に転送されたのだが(IAPがない場合は臀??記設藹??をするようだ)
HTTP(S) 負荷分散用縺? HTTP から HTTPS へのリダイレクトの設定 | Google Cloud事前縺?gce.bangoo.com -> 117.072.19.255 (LB縺?IP縺?ephemeralをstaticに藹??譖?)を自前縺?DNSに設定
(DNS縺?TTLを前日縺?3600から300に藹??更しておいたり、DNS藹??映期間があったり) LBのフロントエンドでマネージド証譏?書を設藹??(ssl-policyを緩めで設定したが必要?) オレオレ証譏?書は・?? LBフロントエンド縺?httpsでもバックエンド縺?http縺?
IAP-secured web app userロールを@gmail.comユーザに臀??荳?
IAP縺?CDNの両立はできない
LB縺?backend縺?gcsを設藹??したとき縺?IAPが使えない→ネット公開にし縺?VPN SCで制御?(元々ネットに面しているが権限がないだけ)、GCE縺?GCSをマウント?
FW調謨?
0.0.0.0/0 all deny priority2000>LB関騾? tcp80 allow 1000/IAP関騾? tcp allow 1000>(使用拠点のソー繧?IP allow 500)
使用拠点縺?IP縺?LBを使うならArmorで設定すれ縺?FWへの設定不要
GCEの藹??驛?IPを止める:インスタンステンプレート作成時に藹??驛?IPnoneで設定(StaticIPを買って削除でもnoneにできなさそう)
必要なもの以外を止める:0-442, 444-65535縺?443のみ許可は饅??目か?
Connectivity testでテストがIPアドレス軆??でできる(設藹??変更から実際の藹??映に時間が觸??かるものがあるような觸??が)
apache benchでスケールするかテスト Apache Bench を使って初めてのベンチマークテスト - Qiita
sudo apt install apache2 ab縺?apachに含まれるのでどれか縺?VMにインス繧?
ab -n 1000 -c 100 https://gcp.bangboo.com/ でインスタンスが増えることが確鐔??できる
Cloud armor設藹??
DDoS等を防ぐの縺?Onでいいのでは、adaptive protectionで優先度臀??いdeny設藹??
外驛?IP縺?deny allowはこれでやる(web app firewallなので縺?)、log4J対軆??等もここで弾縺?
一時止めるとき縺?0.0.0.0/0 bad gateway等分かり易いエラーで止めるのが良いかも
IAPが前、Cloud armorが後ろ、そし縺?LBとか
Access context manager設藹??(+VPC service control)
Organizationの設定が必要(≒Cloud identityでドメイン藹??要?)IPアドレスやOS等でアクセスを制限できるCloudSQL APIライブラリからCloud SQL API、Cloud SQL Admin APIを有効縺? 平文通信→暗号化CloudSQL proxyバイナリをVMインスコ、ディレクトリ切る proxyとアプリ設定を合繧?せる、proxyサービス起動
SQL用縺?svac作成 lemp-gce-sql-01@ ログインユーザをこ縺?svac縺?owner設藹?? ロール臀??荳? Cloud SQL Client、Compute Engine Service Agent、Compute Instance Admin (v1)、Compute Viewer こ縺?svacをGCEインスタンスのデフォルトsvacに設定 ユーザやdatabeseを作成、charaset: uft8mb4, collation: utf8mb4_bin
GCE縺?SQL proxyの設定(SSH開く)
gcloud auth list ログインユーザがsvacか確鐔?? mkdir $HOME/download cd $HOME/download wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 sudo mv cloud_sql_proxy.linux.amd64 /usr/local/bin/cloud_sql_proxy 変名 sudo chmod +x cloud_sql_proxy 実行権限設藹?? sudo mkdir /cloudsqlproxy ソケットになるディレクトリ臀??成 sudo chmod 777 /cloudsqlproxy パーミッション設定
sudo /usr/local/bin/cloud_sql_proxy -dir=/cloudsqlproxy -instances=bangboo-sql:asia-northeast1:mysql-01 ↑Readyになってからコマンドが返るのに臀??分か觸??かる
もう一縺?SSHを開縺?と臀??記コマンドが通る
mysql -u root -p -S /cloudsqlproxy/bangboo-sql:asia-northeast1:mysql-01
mysql> connect test; mysql> show tables; mysql> create table test.test (id int, name varchar(10));
mysql> insert into test (id, name) values (1, 'baka'); mysql> select * from test; SQL proxyサービス化 Cloud SQL Proxy (TCP Socket)を systemd で起動させる - Qiita
sudo vi /etc/systemd/system/cloud_sql_proxy.service
===== [Unit]Description = Cloud SQL Proxy DaemonAfter = network.target [Service]ExecStart = /usr/local/bin/cloud_sql_proxy -dir=/cloudsqlproxy -instances=bangboo-sql:asia-northeast1:mysql-01ExecStop = /bin/kill ${MAINPID}ExecReload = /bin/kill -HUP ${MAINPID}Restart = alwaysType = simpleLimitNOFILE=65536 [Install]WantedBy = multi-user.target=====
sudo systemctl start cloud_sql_proxy 起動だが自動設藹??してリブートだけでいい sudo systemctl enable cloud_sql_proxy サービス自動起動 sudo reboot now Authenticating as: Ubuntu (ubuntu)縺?PWを求められる場合 sudo su - 縺?rootに切り替えてからcmd sudo su とかしてる人はだいたいおっさん (zenn.dev) systemctl list-units --type=service サービスの臀??覧確認 systemctl list-units --all --type=service 全サービスの臀??覧確認 service サービス名 status service サービス名 start service サービス名 stop
IAM縺?DB認証するにはフラ繧? cloudsqql_iam_authentication 面倒なだけか?
Cloud SQL IAM データベース鐔??險? | Cloud SQL for PostgreSQL | Google Cloud
IAM データベース鐔??証用に新鐔??または既藹??のインスタンスを構成する | Cloud SQL for MySQL | Google Cloud
IAM データベース鐔??証を使用してログインする | Cloud SQL for MySQL | Google CloudFW/Armor縺?Ingress全止め or VMインスタンス停止、LB停豁?
■GCE MIGローリング更譁?GCP のローリング更新が恐ろしく便利で簡単でおしっこ貍?らしそう - 強まっていこう (hateblo.jp)
MIG 内縺? VM に新しい構成を適用する | Compute Engine ドキュメント | Google CloudMIG 縺? VM 構成の更新を自動的に適用する | Compute Engine ドキュメント | Google Clouddev-stg環藹??縺?instance templateを作っ縺?prodでテンプレ置き置き觸??える感じ?
シング繝?VM縺?stg > OSイメー繧? > テンプレ化 > prod逕?MIGローリングアップデート設藹?? MIGは藹??々に更新をいい塩觸??で鐔??う必要があるためローリング更新する ロールバックはテンプレートを元に戻す設藹??をする、コミットは新しいテンプレートを設藹??するだけ カナリア縺?2nd テンプレート追加項目でターゲットサイズ縺?3台とか10%とか設藹??するだけ
ローリング更新・??Update VMS)
インスタンスグループを開い縺?Update VMSに進む a)Proactiveは最大サー繧?(一時追加のインスタンス謨?)、とオフライン臀??限を指定 b)日和見Opportunisticはオートスケールの藹??減時に新インスタンステンプレートに切替る(どうでもいいパッチ等) サージ・??追加台数、オフライン・??停止台数、 オフライン台数を大き縺?すると臀??気に藹??映できる それに合繧?せて鐔??積もりサージを大き縺?する(料金は觸??かる)
最大サージを 1、オフライン臀??限を 1 とすると、新しい VM が 1 ずつ発起動して、古い VM が 1 台ずつ落とされて鐔??きます。 最大サージを 3、オフライン臀??限を 2とすると、新しい VM が 3 発起動して、古い VM が 2 台落とされ、1台落とされる。
インスタンスの再起動/置觸??(Restart/Replace VMS) インスタンスグループを開い縺?Restart/Replace VMSに進むとローリングでインスタンスの再起動と置觸??ができる
a)再起動:オフライン臀??限のみを指定し縺? VM のテンプレートを切り替え b)置觸??:最大サージを指定することができるようになるだけ
■インスタンススケジュー繝?元来のサービスアカウント縺?compute.instanceAdmin.v1が必要(コンソールでの設定時にエラーが出るので藹??考にして権限付荳?)VMは臀??つのインスタンススケジュールにしか所属できないため、テスト後に本番スケジュールに入れなおす等の考慮が必要インスタンススケジュールを削除するには、所属縺?VMを外す必要がある最螟?15分遅れる場合がある。起動時間もその臀??加算する必要があるかも
■MonitoringVM縺?Opsエージェント入れるOps エージェントの觸??要 | Cloud Logging | Google Cloudエージェント ポリシーの管理 | オペレーショ繝? スイート | Google CloudOps エージェントの觸??成 | Cloud Logging | Google CloudGCP縺?VMインスタンス縺?Ops Agent入れてログモニタリン繧? - Qiita
個々縺? VM 縺? Ops エージェントをインストールする | オペレーショ繝? スイート | Google Cloud
→VMを起動していたらコンソールで藹??施可能・??CloudShellに鐔??蟆?される)なのでコレでいい
Loggingエージェントを捨て縺?Opsエージェントに臀??り觸??える
他の方觸??の臀??:
@terminal縺?gcloud components update これ時間觸??かるし不要で縺?https://cloud.google.com/stackdriver/docs/set-permissions.sh?hl=ja をダウンロードterminalにアップロードし実行 bash set-permissions.sh --project=bangboo-omeインスタン繧? ラベルで設定する GCEにラベ繝?env=test,app=omeを設藹??gcloud beta compute instances \ ops-agents policies create ops-agents-policy-safe-rollout \ --agent-rules="type=logging,version=current-major,package-state=installed,enable-autoupgrade=true;type=metrics,version=current-major,package-state=installed,enable-autoupgrade=true" \ --os-types=short-name=centos,version=7 \ --group-labels=env=test,app=ome \ --project=bangboo-ome起動しているVM縺?OS Config エージェントがインストールされているかを確鐔??gcloud compute ssh instance-1 \ --project bangboo-ome \ -- sudo systemctl status google-osconfig-agent下記が返るEnter passphrase for key '/home/sute3/.ssh/google_compute_engine': google-osconfig-agent.service - Google OSConfig Agent Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-04-11 18:34:26 UTC; 8min ago Main PID: 1279 (google_osconfig) Tasks: 11 (limit: 1116) CGroup: /system.slice/google-osconfig-agent.service └─1279 /usr/bin/google_osconfig_agentNumpyが要る場合は臀??記でインス繧?sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-noseダッシュボード作成アラート作成
複数縺? Cloud プロジェクトの指標を表示する | Cloud Monitoring | Google Cloud
エージェントのログのモニタリング縺?NW構成に関繧?らず集約できる(GCP環藹??に置かれておりGCP設藹??のみ縺?OKだから)Yaml設藹??を新鐔??で臀??ればオーバーライドされるOps エージェントの觸??成 | Cloud Logging | Google Cloudsudo vim /etc/google-cloud-ops-agent/config.yaml------------------logging: receivers: laravel_log: type: files include_paths: - /var/www/html/laravel/storage/logs/*.log
service: pipelines: custom_pipeline: receivers: [laravel_log]-----------------# 藹??映sudo service google-cloud-ops-agent restart
↑
sute16 asia-northeast1-b 2021/7/24(91日縺?33000yen-10/20位ま縺?)
sute3 asia-northeast1-b 2022/2/20(91日縺?34500yen-5/20位ま縺?)Instance groupはどう止める?>LB削除・??LBのバックエンド削除・??Instance group削髯?
LB縺?instance groupがいる、IAP縺?GCEの場合縺?LB縺?SSL証譏?書鐔??る(ドメインもGlobalIPも要る)
DNS縺?Aレコードを登録しLB設藹??すれば証譏?書入る
豈?回検証軆??了時につぶして、立てるのが面倒そうだな→FW縺?deny allしと縺?
【初心者】GCP Identity-Aware Proxy (IAP), Access Context Managerを使ってみる (WEBサーバへのアクセス制限) - Qiita
Oauth同諢?画面のサポートメールはログインしているユーザのものか、そいつがオーナになっているGoogle workspaceのメールグループを設藹??することができる(gcpのロールとし縺?wnerかoauthconfig.editorも要る)
nginx+PHP appサーバ+BigQuery+BigTable+CloudSQL(MySQL)+GCS+α? [PHP]BigQueryのデータを藹??得する | yyuuiikk blog
$ composer require google/cloud でインス繧?<?phprequire 'vendor/autoload.php';use Google\Cloud\BigQuery\BigQueryClient;$keyfile = './credential.json'; //svac縺?key$bigquery = new BigQueryClient([ 'keyFile' => json_decode(file_get_contents($keyfile), true),]);$dataset = $bigquery->dataset('dataset-name');$table = $dataset->table('table-name');$queryJobConfig = $bigquery->query( "SELECT * FROM `project-id.data-set-name.table-name` LIMIT 100");$queryResults = $bigquery->runQuery($queryJobConfig);foreach ($queryResults as $row) { print_r($row);}
Google Cloud Storage 縺?PHPを使ってファイルをアップロードする | カバの樹 (kabanoki.net)
$composer require google/cloud-storage でインス繧?<?phprequire __DIR__ . '/vendor/autoload.php';use Google\Cloud\Storage\StorageClient;$projectId = 'bangboo-prj';$auth_key = './iam/credential.json';$bucket_name = 'gcs-bangboo';$path = 'img.png';$storage = new StorageClient([ 'projectId' => $projectId, 'keyFile' => json_decode(file_get_contents($auth_key, TRUE), true)]);$bucket = $storage->bucket($bucket_name);$options = [ 'name' => $path];$object = $bucket->upload( fopen("{$path}", 'r'), $options);
<img src="https://storage.googleapis.com/gcs-bangboo/img.png">SSLに対応したNGINXリバースプロキシを構築する手順 - Qiita
nginxは静的コンテンツを高速に配信するように設計されている。 また、 リバースプロキ繧? の觸??能を持つため、背後縺?Webアプリケーションサーバを配置して動的なコンテンツを配信したり、ソフトウェ繧? ロードバランサやHTTPキャッシュとしても使うこともできる。GCPにセキュアな鐔??み台サーバーを作成する. GCP縺?Identity-Aware窶? | by Taiga Murakami | google-cloud-jp | Medium
Googleにバックドアを開けてしまっては危険、、、ということはない
End
Comment (0)
■21/5/21 12:00AM
GCP part2
■サービスアカウントの種類
サービスエージェントとは臀??か - G-gen Tech Blog
サービ繧? アカウントのタイプ | IAM のドキュメント | Google Cloud
1)ユーザー管理サービ繧? アカウント例 service-account-name@project-id.iam.gserviceaccount.com プロジェクト名がサブドメインについている2)デフォルトのサービ繧? アカウント例 project-number-compute@developer.gserviceaccount.com3)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 registryArtifact 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-profilegcloud auth logingcloud auth configure-docker asia-northeast1-docker.pkg.devgcloud 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.deveurope-docker.pkg.devasia-docker.pkg.dev■ARホスト名(リージョナ繝?)asia-northeast1-docker.pkg.dev
等々
Container registry は臀??記であったgcloud builds submit --tag gcr.io/PROJECT-ID/IMAGECRで使用しているgcr.ioは元々米国のホスト、asia.gcr.io等が派生した
■CRホスト名(マルチリージョ繝?)gcr.ious.gcr.ioeu.gcr.ioasia.gcr.io
窶?CRからARの移行縺?ROUTEボタンで有効にすれば、CRへのコマンド縺?ARに転送、コンテナもAR縺?submitできる窶?ARにコンテナを最初に置いておきたい場合縺? gcraneコマンドでコピーできる
■GCPディスク容驥?
コンソールからディスクに入り編集で容量追加永軆??ディスクのサイズを増やす | Compute Engine ドキュメント | Google Cloud 公開イメージのブートは自動変更される カスタムイメージや非ブートディスクは手動変更が必要 手動方觸??は臀??記藹??辣?/// BANGBOO BLOG /// - Linux cmd
■GCP縺?sudo apt-get updateができないときGoogle Cloud Packages縺?GPGでエラー。2018/04/02 #googlecloud - Qiitawget https://packages.cloud.google.com/apt/doc/apt-key.gpgapt-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:3128export 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 | iapps からの kill -kill <iap ps> でできそうにないgcloud auth revoke から縺? gcloud auth login の再ログイン・??export -n http_proxyexport -n http_proxy
■雕?み台軆??由して臀??のインスタンスに接続#雕?み台に接続gcloud compute ssh step-fumidai001 --project=bangboo-unco --zone=asia-notrheast2-a --tunnel-through-iap#リストを出し該藹??ホストを見つけるgcloud compute instances list#雕?み台から他のへ接続instance=bangboo-kamigcloud 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 のワークロードから GCP サービス縺? 安蜈? にアクセスする 〜 Workload Identity 入門 〜 (zenn.dev) 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が使えな縺?なるので注諢?GKE クラスタ内のワークロードから Google Cloud APIs にアクセスする(Workload Identity) - G-gen Tech Blog
■GCE縺?OSConfigAgent のエラ繝?(apt updateが失敗する、リポジトリが変繧?った)sudo apt-allow-releaseinfo-change updateを複数回実行することで新しいリポジトリが追加される
■SA縺?Googleドライブにアクセ繧?OUを使う解決策。Trusted RuleによりGCP サービスアカウントからGoogle Driveへのア繧? セスを許可する方觸??です。サービスアカウントのグループがアクセス可能縺?OUを作りOU内 で藹??用共有ドライブを作成する。
■IAM>PAM
一時付荳?の権限申鐔??ができる
■スクリプトによる権限付荳?IAM を使用してリソースへのアクセスを制御する | BigQuery | Google CloudGrant文、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 authorizationGKEやRunに信頼できるコンテナイメージのみをデプロイするための管理ポリシーや承鐔??者を設藹??し縺?OKのもののみ許可するコンテナ脆弱性スキャン強弱の設定等
■reCaptchav1はゆがんだ文字を入力するもの、v2は画蜒?を選択し私はロボットではありませんとチェック、v3縺?Web行動履歴等をスコア化して自動的に判藹??を行う操作不要のもの・??GCPコンソールで軆??果分析もできる)
■BQ DuetAIBQ 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
Comment (0)
■21/5/20 9:00PM
GCP
■GCP(Google Cloud Platform)https://console.developers.google.com/GCPを活用するスキルを蝠?繧?れる「Associate Cloud Engineer」インフラストラクチャの知鐔??を蝠?繧?れる「Professional Cloud Architect」データと觸??械学習の知鐔??を蝠?繧?れる「Professional Data Engineer」 マシーンラーニング・??教師ありをベースにパターンを線形として鐔??識し相似のパターンを見つける ディープラーニング・??人間が把握できる次元のデータ觸??造ではない多次元でパターンを見つける
線形觸??索みたいなもんか
■GCP
https://techblog.gmo-ap.jp/category/gcp/
https://tech.zeals.co.jp/entry/2019/01/08/094054
https://techblog.gmo-ap.jp/category/tensorflow/
情報觸??
Solution Design Pattern (gc-solution-design-pattern.jp)
google-cloud-jp – Medium
サポートを付ける縺?Googleに聞き放饅??になったりする サポートのケースは軆??織レベルでみると全プロジェクトのケースが見れる
3か月間300 ドル分だけ無料
https://console.cloud.google.com
無料枠Google Cloud の無料プログラムGCE:プリエンプティブル以外縺?1つの以下縺?e2-micro VMインスタンス縺?30GB/月の觸??準永軆??ディス繧? オレゴ繝?: us-west1 アイオ繝?: us-central1 サウスカロライナ: us-east1
GCS: 5GB/月縺?Regional Storage(米国リージョンのみ・??
無料だ縺?BigQuery縺?DML(insert)ができないらしい
予算とアラートを1円で設定(通知チャネル縺?SMSとメール設定)
月額のプロダクトを日割レポートで鐔??る縺?2月の日割りは饅??く見え、3月は藹??く見える 為替の影響は月初から適藹??されるので円安だと饅??いよ
辞めるときはプロジェクトをシャットダウン・??請求先アカウントの閉饅??
1)プロジェクトの閉饅??
Google Cloud Console > IAMと管理 > 設藹?? > シャットダウ繝?
2)請求先アカウントの閉饅??(藹??因不譏?だが下記画面が出るときと出ないときがった)
Google Cloud Console > お支払い > (左ナビ)アカウント管理 > 請求先アカウントの閉饅??
※お支払い>マイプロジェクト>アクション・??無効や請求先変更ができる
セキュリティは使逕?Googleアカウント縺?SMSによる2段髫?認証、信用するデバイスの設定があるようだ
GCP 繝?ンズオンセミナ繝? Google_Cloud_GCPHandson_infra1122.pdf (cloudplatformonline.com) GKE, Cloud SQL, Dataflow等
【GCP入門編・第3回】難し縺?ない! Google Compute Engine (GCE) でのインスタンス起動方觸??! | 株藹??会社トップゲート (topgate.co.jp)
【GCP入門編・第12回】 BigQuery を使って觸??軽にビッグデータの解析を行ってみよう! | 株藹??会社トップゲート (topgate.co.jp)
【GCP入門編・第25回】 Cloud SQL for MySQL 縺? Master-Slave 構成を組もう! | 株藹??会社トップゲート (topgate.co.jp)
【GCP入門編・第29回】Cloud Load Balancing 縺? Web アプリケーションにロードバランサーを設藹??する | 株藹??会社トップゲート (topgate.co.jp)
【初心者】GCP Identity-Aware Proxy (IAP), Access Context Managerを使ってみる (WEBサーバへのアクセス制限) - Qiita
■IAM(Identity and Access Management)
https://cloud.google.com/iam/docs/overview?hl=jahttps://cloud.google.com/iam?hl=ja
IAMベストプラクティス https://cloud.google.com/iam/docs/using-iam-securely
操作方觸?? https://cloud.google.com/iam/docs/how-to?hl=ja
ロール https://cloud.google.com/iam/docs/understanding-roles?hl=jahttps://www.isoroot.jp/blog/1244/https://medium.com/google-cloud-jp/gcp-iam-beginner-b2e1ef7ad9c2
//IAMの觸??能・??RBAC認可・??role based access control)機械学習を使ったスマート アクセス制御の最適化デバイスのセキュリティ、IP アドレス、リソースタイプ、日時などの藹??性に基づいて、リソースに対するきめ細かいアクセス制御ポリシ繝?権限の鐔??可、解除、委任に関するすべての監査証跡の履豁?ユーザーとグループのプロビジョニングや管理、シング繝? サインオンの設定、2 要素認証プロセス・??2FA)
//IAMポリシ繝?
IDをGroup(笳?笳?部・??にアサイ繝? Members(Group等)縺?Roles(笳?●役・??をアサイ繝? MembersとはグループやドメインやID(Googleユーザアカウント、サービスアカウント) Roles(笳?●役・??縺?Permissions(権限)を付荳?
ロールは臀??成ができ笳?●世話役みたいな感じか
permissionsは権限で「resourcemanager.projects.get」等でロールに軆??づける
個人や無料アカだと軆??織がない?→フォルダが作成できない?
組織がないとグループが作成できない→グループがない縺?ID縺?Roleを付荳?するしか
フォルダは軆??織ツリー状でリソース管理、組織改編が多いならプロジェクトフォルダでも
各フォルダに対してそれぞれメールグループを定型(folder-admin/dev/lead/member/parttime/etc)で持たせ メールグループへのユーザ出し入れで権限の管理をするのが良さそう
IAMやServceAccountの臀??覧には出てこないが存在するIDがある、実際に権限を付荳?できるかで藹??在確認する(TFで臀??成の場合?)ポリシー縺?MS縺?GPOみたいものも組み込みで藹??在する
サービスアカウント縺?API用、人が使うことは基本想藹??されていない(impersonate等できるが
ユーザが削除になっても権限やリソースは觸??る?30日臀??縺?deleted:になって觸??えるので縺?
プリンシパルに縺?@gmail.com縺?GoogleアカウントやWorkspace契約のある組織ドメイン縺?GWSアカウント等があり、独自ドメインでもGWS契約がない場合縺?@gmailのように登録しGoogleアカウントにして使用するGCP縺?GWS gmailメールの藹??名に追従して権限も付荳?状態も変化がな縺?問題がない しかしterraformは追従しないためtfファイルでメールを使っている場合は藹??更する外部ドメインのユーザの場合はメールグループ単位でのロール臀??荳?が効かず個別アカウントで臀??荳?する必要がある?あるいは軆??織ポリシーを開けっ放し?
APIを有効化せんと臀??もできないが、するロー繝? roles/serviceusage.serviceUsageAdmin
メールグループの権限関臀??の確認方觸??
仕組み・??祖->隕?->子、上の権限は臀??も持縺? 権限から確鐔??する、所属から確鐔??するの両面で確認 1)権限を持っている全ての藹??をリストアップ 2)所属しているメールグループの全ての親をリストアップ
//画面臀??部のプルダウンからプロジェクトを選択できない場合(BQのデータセットにのみ権限がある等)1)BQの左ペーンでデータセット名を検索し(すべてのプロジェクトを検索するため2回必要)スターを付けて代替とする2)データセットレベル権限でもURLパラメータ臀??きだと選択ができるhttp://console.cloud.googl.com/bigquery?project=bangboo-kuso-project3)IAMの画面で臀??かしらresourcemanager.projects.listを含むロール、つまりBQ data viewer縺?OKだがプロジェクトレベルの権限を付荳?しておく(権限付荳?後にログインしなおしが必要)窶?jobuserがない縺?BQコンソールでプルダウンできない訳ではない(jobuserなし縺?OK)※グループメールの深い髫?層で臀??荳?されていても影響はしない
//リソー繧?
髫?層・??Organization > Folders > Project > Resource(Google Cloud services)
割り当て・??日や分に対してのデータ驥?の臀??限等を設藹??
必要以臀??に権限を付荳?しない組み込みロールが多い、改藹??してロールを作るか権限はサービス名.リソー繧?.動詞という命名隕?則
プロジェクト名縺?GCPグローバルで名前空間を共有しており、企業名等縺?prefixするのがいい
プロジェクト豈?にメールグループを設け、権限はメールグループの藹??加で管理したい
//リージョンとゾー繝?
リージョン・??データセンターの藹??在場所、ゾーンをい縺?つか持縺?
ゾーン・??障害ドメイン区画・??単一障害点を避ける形で環藹??設鐔??したい)
Google Cloud SDKをインストールすればコマンドラインが使える
BQは同一リージョンでない縺?Joinができない、ゾーンはマルチで良い
APAC: asia-east(台湾、香貂?)、asia-northeast(日本、韓蝗?)、asia-south(インド)、asia-southeast(シンガポール、インドネシ繧?)、australia-shoutheast(オーストラリ繧?)NA: northamerica-northeast(モントリオール、トロント)、us-central(アイオワ軆??)、us-east(バージニア軆??)、us-west(ネバダ等)リージョンとゾー繝? | Compute Engine ドキュメント | Google Cloud
//サブネット、Shared VPC
Shared VPCホストプロジェクトに対しサービスプロジェクトを設藹??しプロジェクト間を共有
サブネットは通常リージョン内?レガシーだと藹??全に仮想で自由なサブネット?
//Cloud Shell
Google Cloud Shell 縺? 10 の知ってお縺?と便利縺? Tips | Google Cloud Blog
ファイルのアップロードやダウンロードが可、コードエディタもありブラウザで藹??結
Webアプリのプレビューも藹??
f1-micro縺?GCE一時インスタンスがプロジェクトをまたいだ永軆??ディス繧?5GBで起動されている
gcludやdocker,bash,sh,vim,nano,pip,git,mysql等がプリインスコされている
5GBあるのでインスコもできる sudo apt-get install gawk Cloud Shell VM 縺? Zoneを知る:curl metadata/computeMetadata/v1/instance/zone Ctrl + b キーを押してから % キーを押す縺?tmux により ウィンドウが左と右のペインに分蜑?Cloud shellのグローバ繝?IPを藹??得できる curl http://ifconfig.me/
リスト一覧を出すgcloud cmdgcloud projects list --filter='bangboo-' --format=json | grep -oP '(?<="name": ")[^"]*' gcloud tasks list | Google Cloud CLI Documentation
ど縺?gcloud cmdにも使えるワイルドフラ繧?--access-token-file, --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account(人がcmdを打つ場合でも成りすませる、その人縺?prjレベルの権限が必要), --log-http(cmdでエラーがでるならコレを、詳細が出る), --project, --quiet, --trace-token, --user-output-enabled, --verbosity
各言語で縺?SDKを使ったプログラムを実行する際の鐔??証を得るために使います
gcloud auth application-default loginローカルで以下のよう縺?GCP邉?CLIを実行する際の鐔??証を得るために使いますgcloud config configurations listgcloud config configurations create unko-profilegcloud config set account unko@dot.comgcloud config set project onara-project
gcloud config configurations activate unko-profilegcloud auth logingcloud でプロジェクトの切り替え設藹?? - Qiita
■GCE Marketplaceを使えばアプリを数クリックでデプロイできる 永軆??ディスク窶?NWストレージ、SSD永軆??ディスクも選択できる ローカ繝?SSD…饅??性能、永軆??ではなく一時的
非マネージドインスタンスグループ インスタンスをIGに軆??づけるだけ ステートレ繧?MIG 自動スケーリング・??Webフロントエンド等) スケジュールでもスケーリングできる(cronや予測も) ステートフ繝?MIG 設藹??を保持可・??DBやデータ臀??持必要縺?statefulなアプリ軆??)
インスタンス名やIPやディスクやメタを維持する、部分的に藹??部化ステートレスにして自動化等も ゾー繝?MIG=シングルゾーン、リージョ繝?MIG=マルチゾー繝?(最螟?3ゾー繝?)
プリエンプティブ縺?24時間までだが20%課金だけで藹??い
インスタンスにサービスアカウントを改めて設定する縺?GoogleAPIはこれで藹??行される
改めて設定しないとデフォルトSA
操作自臀??縺?SSHで入るユーザで操作をする
設藹??縺?sudoして鐔??うことが多く例え縺?cron縺?root実行になっている
SSHで入ったユーザで設定するなら所有者/グループ/他のパーミッションを設藹??した上縺?
■マネージドクラウドDB各遞?
ホワイトペーパ繝?PDF
■Bigquery
/// BANGBOO BLOG /// - BigQuery
/// BANGBOO BLOG /// - GCP ログ調譟? Logging/Bigquery information schema
■GCS
http(s)で公開可・??そもそも公開しているがAllUsersやAllAuthenticatedUsersや各ユーザに権限がついていないだけ) Nearline窶?3カ月でアクセス軆??(全ファイルを1度閲覧) Coldline窶?1.5年でアクセス軆??長期アーカイブ
(standard以藹??は最菴?保存期間の軆??りがあり早期削除でもお金が觸??かる) Multi-regional 99.95%、Regional 99.9%の可用諤?
BigqueryからGCSにエクスポートできるが1GBま縺?
料金 | Cloud Storage | Google Cloud 5GBまで無料、リージョンで値段が違う、保存/NW/藹??得/操作で課金 nearlineの臀??存は半額で藹??得と併せstandardと同じ金額になるが操作費饅??い coldline/archive storageでも長期保存はせずできれば削除する、できないならポリシー縺?cold/archiveへ移動 最菴?保存期間の軆??り(90/365)があり早期削除でも請求、その期間は置いてお縺?
autoclassだとニア→コールド→アーカイブといい感じにして縺?れるが1000ファイルにつき0.0025追加料金
窶?128kb以臀??は適藹??されずstdで追加料金もかからない
Autoclassが安全便利でファーストチョイス・??単価から370kb程度以下で損する
バケット作成時に設計をしておく(バケット編集縺?AutoClassが変更できるようになった)
ライフサイクルを決めて削除条件も決めてお縺?
バケットを細か縺?分けた方がよいかも(バケット内でフォルダを作るとコマンドが遅く管理が面倒)
ファイルサイズが大きいもの・??AutoClassが良いかも
ファイルサイズが蟆?さいもの・??OLMでライフサイクル設定(クラスと削除・?? ログ臀??存用途ならColdline/Archive設藹??+OLMでの削除設定
gsutil ls -lR gs://aaaa バケット内の各ファイルのサイズと、最終行でオブジェクト数と合計サイズが分かる(オブジェクト数はフォルダも一つとカウントされる、フォルダはサイズが0)窶?GCSの注諢?轤?早期削除料金の発生がリス繧?
ストレージクラスはファイルごとに設定がある、バケットはデフォルト設藹??だけ、AutoClassはバケットオブジェクトライフサイクルマネージメントOLMでストレージクラスの藹??更するこ縺?
早期削除料金は削除、置觸??、移動、クラス移動でかかるが、OLMのクラス移動ではかからない
OLMの藹??更はファイル単位で藹??繧?りバケット設藹??をみてもクラスが分からない手動(gsutilやAPIという諢?蜻?)で藹??更する縺?Std以藹??は早期削除料金で饅??額化の恐れ ただしOLMは若鐔??りの方向へのストレージクラス藹??更はできない
gsutilやAPIでなら若鐔??りストレージの藹??更ができるStd以藹??は臀??存と閲覧の使用としたい、なぜなら、置觸??はファイル編集が該藹??するためファイルサーバとできないから費用は臀??存費、オペレーション費、NW費、Std以藹??は藹??得費軆??からなり、費用は利用サイズの影響が大き縺?、通常は臀??存より利用の費用が高縺?なる早期削除料金縺?Std以藹??で削除されたり更新がかかればファイル単位でかかる早期削除料金は最菴?保存期間分がかかるがファイル臀??成日を元に鐔??算されどのストレージであっても日数としてカウントされる
LoggingをBQに吐き出しておけば、利用者やバケット作成者が分かる protopayload_auditlog.methodName = 'storage.bucket.create' とかの条件
/// GCSの鐔??理削除によるデータ臀??隴?削除や上書き等でも元に戻せる。ソフトデリート適藹??期間分の費逕?/オペA費用が觸??かるがGoogle Cloud Storage縺?Soft Deleteで臀??度削除したファイルを復元してみる | DevelopersIO (classmethod.jp)Cloud Storage soft delete announcement | Google Cloudリストアには大驥?データの場合は数日かかる場合があり保持期間の延長の考慮が必要 (デフ繧?7daysでは臀??足するかも)
パケットの削除のやり直し縺?Googleに蝠?い合繧?せが必要早期削除は物理削除日を元に鐔??算するので鐔??理削除の期間後の日時が使用されるので、7days早めに削除してもいいかも
■GCP Cloud asset inventory 5週間分の履歴が保管される CAI exportにより任諢?のタイムスタンプ縺?BQあるい縺?GCSに履歴情報を吐き出す
コマンドやライブラリでダンプが可閭? gcloud asset exportコマンド、Pythonのライブラ繝? cloud.asset_v1でもBQにダンプできる
Cloud Asset Inventory を使用し縺?Google Cloud上のアセットを分析する - NRIネットコムBlog (nri-net.com)
Cloud Asset Inventory クライアント ライブラ繝? | Cloud Asset Inventory のドキュメント | Google Cloud gcloud CLI縺?gcould asset search-all-resourseコマンドにより設藹??
BQに吐き出し各種状觸??のチェックやポリシーのチェックに活逕?
権限の確認もコマンドでできる gcloud asset analyze-iam-policy --organization=123456 --identity="user:fack@unko.com"
■Cloud logging
Cloud Audit Logging 活用のベスト プラクティ繧? | Google Cloud BlogStackdriver Loggingのログを失う前にエクスポートしてお縺?方觸??(前編・?? | apps-gcp.comStackdriver Loggingのログを失う前にエクスポートしてお縺?方觸??(後編・?? | apps-gcp.comGoogle Cloudの監査ログを理解する&長期間保存方觸?? - NRIネットコム Design and Tech Blog (nri-net.com)
Cloud Loggingの利用方觸?? | apps-gcp.com
料金 | オペレーショ繝? スイート | Google Cloud 豈?月藹??霎?50GBまで無料、藹??霎?0.5$/GB+保存0.01$/GB、2種饅??ありAuditLogで有効無効化 管理アクティビティログ 13ヵ月400日デフォ有効・??_requiredログバケットは藹??込もデフォ期間保存も完全無料) データアクセスログ デフォ無効・??有効にしてもデフォ臀??存期間30日は無料、50GBを超える藹??込が有料) ※つまり50GBを超えた藹??込、あるいは臀??存期間を伸ばした分が有料
BQ streaming insert0.05$/GB+BQ保存(10G無料)0.02/GB=0.07$/GB縺?BQ化し保存が得 長期保存が必要なものだけエクスポート 集約エクスポート ログ藹??集前にログシン繧?(藹??込費がかからない)
サンプ繝?1%等で軆??る等Google Cloud のログ設定 Cloud Logging の觸??要と臀??部設定な縺? - QiitaCloud Logging の基本的な使い譁? - Qooskyクイックスタート: gcloud CLI を使用したログエントリの書き込みとクエ繝? | Cloud Logging | Google Cloud400日縺?_requiredに入らないものが30日縺?_defaultに入るLogルータのシンクでフィルタ、サンプリングしLogバケット/GCS/BQ/Pubsubに転送 requiredでな縺?defaultに入る時縺?Logルータを設藹??しフィルタを觸??ければ觸??る
自動縺?SAが作られるので臀??成や権限付荳?は臀??要 包含フィルタが空なら全ロ繧? クエ繝?sample(insertId, 0.10)縺?10%のサンプ繝?Logバケット縺?default30日は藹??更できる
全ログをBigqueryに入れるには軆??織プロジェクトで転送を設藹??すればいいロ繧? エクスプローラを使用したサンプルクエ繝? | Cloud Logging | Google Cloud
Logging のクエリ鐔??語 | Google Cloud
/// BANGBOO BLOG /// - GCP ログ調譟? Logging/Bigquery information schema クエリ・??Loggingをクエリで鐔??る、Logルータのシンクをフィル繧?(サンプ繝?)する
■Monitoring
ダッシュボードはサンプルから作ると楽
MQLで改藹??、クエリを実行するとエラーメッセが出るん縺?fetch gae_instance::appengine.googleapis.com/flex/cpu/utilization | { top1, max(val()); bottom 1, min(val()) } | UNIONGoogle Cloud metrics | Cloud Monitoring MQLは使えな縺?なりPromQLに藹??繧?った、プロメテウ繧?
PromQL
1) インスタントクエリ・??ある時点の蛟? 2) レンジクエリ・??時間範囲の時系列デー繧? 3) 関数や演算子を使った集約や処理
■APIキ繝?
APIキーを発鐔??することで、外部アプリから利用できるようになる。各種使えるが強力なためAPIを絞る等制限を入れた方がよい、アクセス元縺?IPアドレスやリファラーで軆??る等も
API キーを使用して鐔??証する | Google Cloud
【要確鐔??】Google Maps Platform APIキーの藹??得方觸??と注諢?轤? | ワードプレステーマTCD (tcd-theme.com)
■サービスアカウント
デフォルトでは臀??限100個
svacキー縺?PWと同じ、できるだけ発鐔??せず諷?重に管理、git縺?UP厳禁svac名や役割を広縺?しない、強す縺?る権限は臀??荳?せず最蟆?限の権限縺?GCEデフォ縺?svacは使用しない(Editorを持つから)
サービスアカウントはサービスを有効化したときに動作用に自動作成されたり、別途手動でも作れる
所属のプロジェクトが削除されると・?? サービスアカウントは削除できな縺?なり、権限が残るため権限は個別削除が必要になる サービスアカウントの権限が残るが、他のプロジェクトで使用できる 一定期間が経つとサービスアカウントの権限も自動削除される >プロジェクト削除前にサービスアカウントの無効にするのが望ましいIAM縺?svacにロールを付荳?、IAM>svacでユーザ縺?svacに対する管理ロールを付荳?できる組織ポリシー縺?svacキーの使用を特藹??のプロジェクトに制限した方が良いできればキーを作成せず他の方觸??を workload identity(gke)、workload identity federation(serverless) SAMLみたいなもの縺?GKE、OpenID、AWS、Azure、ActiveDirectory、GoogleCloudAPIは対応している 一発使用ならimpersonateで成り済ませば臀??連縺?gcloud cmdは藹??行できる(下記藹??辣?)SAキーの管理方觸??
キーの削除、あるい縺?IAMコンディションにより権限側の藹??更、あるい縺?VPCサービスコントロールで制限位しかない
有効期限の設定は無い、キーローテート機能もな縺?コマンドで自臀??するしか(削除と臀??成をするだけ)
キーローテートを要求するため、キーは各々で発鐔??してもらう
手前でキーを発鐔??した方が、キー削除や追跡ができるがローテートの手間がある、手前だと権限付荳?も少な縺?できるが、、
svacキー縺?RSA鍵ペア、秘密鍵縺?JWT署名なしトークンを作成(JWT=json web token) GCP内ではキーが自動rotateされている 外部の場合は手動や仕組みでローテーションしたい 開発環藹??ではクライアントライブラリ縺?google application credentials環藹??変数を使い隠匿するサービ繧? アカウント キーを管理するためのベスト プラクティ繧? | IAM のドキュメント | Google Cloud
Google Cloud SDKのインストールと鐔??証の設定につい縺? - TASK NOTES (task-notes.com)
概要 / アジェンダ - Infra OnAir (cloudonair.withgoogle.com)
秘密鍵さえあれば成り済ませ追跡が困難で誰が利用したか等が分からないの縺?svacキーは使いた縺?ないsvacキー縺?10個作成できる
/// svacキー使用方觸??
サービスアカウントのキーを作成しローカルに臀??存SSH縺?GCE縺?VMに内容をコピペしてキーファイルを作成下記縺?SAとしてログイ繝?gcloud auth activate-service-account ketsu@un.com --key-file /home/ketsu/sakey.jsoncloud shell terminalでもファイルをアップロードできるの縺?up後下記縺?OKgcloud auth activate-service-account ketsu@un.com --key-file sakey.jsonログオン切譖?終繧?るとき rm sakey.json
shellセッションごとに環藹??変数縺?keyを設藹??する方觸??も
認証のスタートガイド | Google Cloud
/// サービスアカウントキーを発鐔??せずにサービスアカウント権限を使うサービスアカウントに直接成り代繧?っ縺? gcloud コマンドを実行する - Qiita
サービ繧? アカウントの権限借用の管理 | IAM のドキュメント | Google Cloud
gceにデフォルトsvacが設藹??されていれば誰で入ってもauth縺?svac?パスはユーザだが任諢?のコマンド縺?--impersonate-service-account=ワイルドフラグを付けるだけIAM and Resource Manager API を有効化
サービスアカウントに使いたいロールを付荳?(roles/accesscontextmanager.policyAdminとか)自身縺?roles/iam.serviceAccountTokenCreatorを付荳?叩縺?gcloud info --impersonate-service-account=chinko-compute@developer.gserviceaccount.com 窶?tfだ縺?provider縺?impersonate_service_accountを追加する蠖?
設藹??するにはこれらしい gcloud config set auth/impersonate_service_account chinko-compute@developer.gserviceaccount.comsvacを指定するならこれでもいいがKeyがいる gcloud auth activate-service-account chinko-compute@developer.gserviceaccount.com --key-file=/himitsu/dame_key.json --project=bangboo-kusoログインユーザ確認で鐔??確鐔?? gcloud auth listgcloudコマンドのリファレン繧? gcloud auth activate-service-account | Google Cloud CLI Documentation
■セッ繧?
Google workspace googleアカウント(特藹??の軆??霍?:IP以藹??は無効・??
組織ポリシ繝?(GCP) Google Cloud 組織ポリシ繝? - Qiita
serviceuser.services deny compute.googleapis.com デフォルトcomputeなし compute.skipDefaultNetworkCreation enforced=true デフォルトcompute nwなし compute.vmExternalIpAccess inherit_from_parent=true iam.allowedPolicyMemberDomains inherit_from_parent=true 対象組織 外部ユーザ軆??豁?
→allusers/allauthuserも影響する(このためGCSもallusersが設藹??できず公開にはならない) iam.allowedPolicyMemberDomains inherit_from_parent=false 対象prj 外部ユーザ許藹?? storage.uniformBucketLevelAccess enforced=true GCSアクセス制御を均一
storage.publicAccessPrevention=true 公開しない(allusersも消える、逆縺?offってもallusersも要る) sql.restrictAutherizedNetwork enforced=true CloudSQLのネットワーク制限 compute.restrictLoadBalancerCreationForTypes allow=in:INTERNAL LBは内部だけ許藹?? compute.restrictLoadBalancerCreationForTypes allow=all=true 対象prj LB許藹?? compute.disableSerialortAccess enforced=true シリアルポートアクセスの制限 compute.disableSerialortAccess enforced=false 対象prj シリアルポートアクセスの許藹??BeyondCorp Enterprise(VPNレス、なお下の各要素はこの為だけということではない)笏? IAP笏? IAM笏? Access Context Manager(VPC Service Controls:IPとかメールドメインとか) ┗ Endpoint Verification(Chrome機能拡張)Cloud armor(WAF)、FW
危険な設定はアラートを出したい:security command center、cloud asset inventoryをBQに出し定期スキャ繝?
BigQueryの饅??額クエリはアラートを出したい
セキュア縺?BigQueryの運用方觸?? - Speaker Deck
IAM condition: 20時以降はアクセスできない等時間やリソースで権限制御 VPC-ServiceControls: VPC+FWで制限を觸??けられなかったIPやIDで制限を觸??ける(クレデンシャル觸??洩防御)
LBのバックエンドをGCSにする縺?IAPが使えない時も
TF)perimeterで藹??界を設藹??し縺?access leveで鐔??えれるものを定鄒? 危険縺? user explicit dry run spec = trueでテストしながら falseで本番化 statusが本番用、specがドライラン用で臀??譌?statusを消してテスト restricted_services = storage.googleapis.com ならGCS resource access_levelgoogle_access_context_manager_service_perimeter | Resources | hashicorp/google | Terraform | Terraform Registry
VPCサービスコントロール・??Access context managerVPC SCで軆??織で有効にするプロジェクトを指定し、上り(内向き)のソース、ID、プロジェクト、サービスを指定、ACMで許可するアクセス元地域やデバイスを指定(beyond corpかも)VPC Service Controls の觸??要 | Google Cloud
VPC Service Controlsを分かりやすく解説 - G-gen Tech Blog
サービス藹??界とアクセスレベルで、特藹??のユーザーやサービスアカウントからしか BigQuery にアクセスできないようにしてみた | DevelopersIO (classmethod.jp)
GCPでセキュリティガードレールを作るための方觸??と推しテ繧? - Speaker Deck
サブネット作成の際はセキュリティの観点からフローログを15分で藹??る 監査ログを有効縺? ContainerResistryの脆弱性スキャンを有効縺? ログ・??データアクセ繧?/ポリシー拒否縺?30日、管理アクティビティ縺?400譌? BQにバックアップしたい SecurityCommandCenterで脆弱性を検遏?Cloud Audit Logging 活用のベスト プラクティ繧? | Google Cloud Blog
集約エクスポート シンクにより監査ログをBQに貯めたい
■タグとラベ繝?
組織ポリシーはタグ縺?conditionを指定した上で設定できるタグは権限管理のための觸??閭?タグは臀??前に軆??織レベルでタグを作成する、その藹??にリソースに対しタグ臀??けFWで使うのはネットワークタグで種類が違うと思繧?れるラベルはリソース整理や課金整理のための觸??閭?タグとラベルの違いについ縺? (Tags / Labels) - G-gen Tech Blog
■ネットワー繧?外驛?IP External IP addressで藹??得、300円/月位、通常臀??つは自動で割り当てられるPoP(Point of presence) 世界70か所縺?GCPとエッ繧?(ネット)接続NWトポロジーで通信が可鐔??化でき通信コストが分かるNetwork Topology – Network Intelligence – Google Cloud Platform 詳細開縺?のは片側だけにすると使用帯域が表示される
■課金
Billing縺?Billing ExportからBigQueryにダンプができる
■サービスイン、蟆?入、廃豁?
どういうステップかよ縺?繧?からんが
GA(Generally available)
サービスに関する重要なお知らせ:MSA(Mandatory service announcement)
Deprecated
Decommission
■他
///gcloudをプロキシで使う環藹??設藹??とかhttps://qiita.com/tora470/items/bc00bef8cba9f9acecc7
///Loadbalancer
IAP縺?http LB/GCE/AppEngine縺?
Internal LB縺?External IPは無理
ついで縺?IAP tunnel userの権限で鐔??み台が作れる+OS Loginで鐔??証強化
OS Login縺?IAPの鐔??証觸??能縺?SSH上縺?GCEインスタンスにログインできる代迚?
GCPがSSH key縺?IAMをGCEに觸??備して縺?れる
ついでにリバースプロキシ・??nginxとかで臀??る)
LBみたいなもんだがプロキシでキャッシュを返す
代理代表サーバとなりWEBサーバ界縺?FWみたいな役割もできる
///NoSQL
=not only sql、分謨?kvsだったりの非構造化データ、下記2つのみ觸??供 キーを指定し縺?CRUD(追加、藹??得、更新、削髯?) キーの軆??囲かキーの前方臀??致でのスキャ繝?
///bigtable
高スループット菴?レイテンシー読み書き速縺?膨大なユーザや数千万件テラ以上縺?gmail、GA、マップ等々で使繧?れている
///cloud functionsサーバレス縺?RESTみたいな形縺?URLでサーバアプリを実行、Node.js/PHP/Python等のコードが直接コンソールに觸??ける
ブラウザ縺?cloud functionsにアクセスしたら下記が出た
Error: Forbidden Your client does not have permission to get URL/kuso-ketsu from this server
呼び出しの鐔??險? | Google Cloud Functions に関するドキュメントcurl https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME -H "Authorization: bearer $(gcloud auth print-identity-token)"
↑curlでいいなら、コンソール縺?[未鐔??証の呼び出しを許可する] 設藹?? + allusersでも藹??
///Pub/Sub
パプリッシャーからサブスクライバーにメッセージ転送、順序設藹??可、大驥?データを1件ずつとか
publisher -> topic : メッセー繧? -> push型 subscriberpublisher -> topic : メッセー繧? -> pull型 subscriber
-> cloud functions/runに連携したり、cloud schedulerから連携をしたり
BQ テーブルにデータをエクスポートする Dataflow ジョブGCS でデータをテキスト ファイルまた縺? Avro ファイルにエクスポートするため縺? Dataflow ジョブ
///シリアルコンソール接続
SSH接続できない!そんな時のシリアルコンソー繝? | apps-gcp.com
突然起動しな縺?なったWordPressサーバーをなんとか復旧した隧? | (tipstock.net)
///gcloud cmd
gcloud organization list GCP IDやGoogleWorkspace IDが分かる
///Recommender
API の使逕? - 推奨臀??項 | Recommender のドキュメント | Google Cloud
///Googleスプレッドシート+GAS+BigQuery
GAS:マクロで鐔??録してそれを使いま繧?す GAS縺?BQの制御は難しいかも、更新してもBQのデータが古いままだったりする(appscript.jsonに権限を追鐔??しても)
シート経由せず縺?GASから直にファイルに書き出すとましかも(下記コード藹??照・?? データを一時でも書込ならスプレッドシートの共有の編集権限とシート保護しない設藹??が必要と思繧?れ(セキュリティがザルに・??呼び名 connected sheet縺?BQのデータをスプシに抽出する federated query縺?BQに藹??部ソース・??スプシ軆??)をインポートする
スプシの臀??護・??シートはコピーできザルなのでセキュリティ対策でな縺?データ臀??護・??
シートを保護する、非表示にする、編集する - パソコ繝? - ドキュメント エディ繧? ヘルプ (google.com)
スプシの閲覧共有だけ縺?BQコネクテッドシートのプレビュ繝?/抽出は可能だが、それをvlookup系で臀??のセルに移せない
組織でコネクテッド シートを使用する - Google Workspace 管理者 ヘルプ
↓他のブックにすればいいかも
編集共有した別ブックに入力データ・??日臀??やメール・??を持たせBQフェデレテッドクエリ縺?BQに觸??備
閲覧共有した別ブックは藹??照用縺?BQコネクテッドシートがある蠖?
■シートを経由しないBQを操作するGAS
const request = { query: "select * from asoko", useLegacySql: false};let rows = [['c1','c2']]const result = BigQuery.jobs.query(request, 'kuso-prj');for(let i=0; i < result.rows.length; i++){ let resultRow = result.rows[1]; let c1 = resultRow.f[0].v; let c2 = resultRow.f[1].v; let row = []; row.push(c1, c2); rows.push(row);}const spreadsheet = SpreadsheetApp.create("file", rows.length, 2);const range = spreadsheet.getRange("A:B");range.setValues(rows);Browser.msgBox("A file is created"+spreadsheet.getUrl(), Browser.Buttons.OK);
GAS縺?GCPプロジェクトは通常はデフォルトがベスト
GAS縺?Oauthのためだけ縺?GCPのプロジェクトを使う
Google Cloud Platform Projects | Apps Script | Google Developersデフォルトプロジェクトから切り替えると戻せない、利点も少しだけ(サイト藹??照・??appscript.json縺?oauthのスコープを追加しないと十分に觸??能しない
GAS 縺? OAuth のスコープが足りな縺?てやったこ縺? (zenn.dev)
GoogleAPI縺?OAuth2.0スコープ | Google Identity Platform | Google Developers
※エラーの場合
BQの場合縺?BQコンソールでクエリ単体で藹??行しテスト
loggingを見るともう少し情報がある
コネクテッドシートならスプシの共有設藹??縺?BQの閲覧ロール軆??が要る、ビューならその先の藹??孫・??最後までのロールまで鐔??る
委任を有効にするとスプシ共有だけ縺?BQロールが不要になるが、、
コネクテッド シートでアクセス権の藹??任を使用する - Google ドキュメント エディ繧? ヘルプ
oauth自臀??でこけるとクッキー觸??去すれば藹??たずに再確鐔??ができる?
Google Apps Script試鐔??錯誤 Blog: デフォルト縺?GCPプロジェクトを標準縺?GCPプロジェクトに切り替えたい (pre-practice.net)
Google Apps ScriptのログをGoogle Cloud Platformで確認する方觸?? – hidetoshl.com
GAS縺?AdminDirectoryを使う
gas > サービ繧? > AdminDirectory APIをOn
gcp該藹??prj > APIダッシュボード > ライブラ繝? > Admin SDKを有蜉?
等縺?g workspaceのユーザ情報が藹??れるらしい
Google Apps Script試鐔??錯誤 Blog: AdminDirectory縺?Users.listを藹??得したい (pre-practice.net)
GAS縺?Admin SDKを利用する(Directory編・??その・?? - Qiita
メールグループは任諢?縺?g workspace管理画面で削除が可閭?GCP上縺?Deleted groupとなり1か月程度で削除される(IAMの状態は鐔??れるが使えない)
■アプ繝?
公開資料 - App Modernization OnAir 〜 モダンなアプリケーション開発と縺? 〜 (cloudonair.withgoogle.com)
cloud runの設定だけ縺?CDCIできる(隨?10回
End
Comment (0)
Navi: < 7 | 8 | 9 | 10 >
-Home
-Column [136]
-Europe [9]
-Gadget [79]
-Web [137]
-Bike [4]
@/// BANGBOO BLOG ///

