/// 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 20, 2021 List
GCP on May 20, 2021 9:00 PM

May 20, 2021

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
無料枠
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段髫?認証、信用するデバイスの設定があるようだ

 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=ja
https://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=ja
https://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-project
3)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 cmd
gcloud projects list --filter='bangboo-' --format=json | grep -oP '(?<="name": ")[^"]*'

ど縺?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 list
gcloud config configurations create unko-profile
gcloud config set account unko@dot.com
gcloud config set project onara-project
gcloud config configurations activate unko-profile
gcloud auth login

■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費用が觸??かるが
リストアには大驥?データの場合は数日かかる場合があり保持期間の延長の考慮が必要 (デフ繧?7daysでは臀??足するかも)
パケットの削除のやり直し縺?Googleに蝠?い合繧?せが必要
早期削除は物理削除日を元に鐔??算するので鐔??理削除の期間後の日時が使用されるので、7days早めに削除してもいいかも

■GCP Cloud asset inventory
 5週間分の履歴が保管される
 CAI exportにより任諢?のタイムスタンプ縺?BQあるい縺?GCSに履歴情報を吐き出す
  コマンドやライブラリでダンプが可閭?
 gcloud CLI縺?gcould asset search-all-resourseコマンドにより設藹??
  BQに吐き出し各種状觸??のチェックやポリシーのチェックに活逕?

権限の確認もコマンドでできる
 gcloud asset analyze-iam-policy --organization=123456 --identity="user:fack@unko.com"

■Cloud logging
 豈?月藹??霎?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%等で軆??る等
400日縺?_requiredに入らないものが30日縺?_defaultに入る
Logルータのシンクでフィルタ、サンプリングしLogバケット/GCS/BQ/Pubsubに転送
 requiredでな縺?defaultに入る時縺?Logルータを設藹??しフィルタを觸??ければ觸??る
 自動縺?SAが作られるので臀??成や権限付荳?は臀??要
  包含フィルタが空なら全ロ繧?
  クエ繝?sample(insertId, 0.10)縺?10%のサンプ繝?
Logバケット縺?default30日は藹??更できる
全ログをBigqueryに入れるには軆??織プロジェクトで転送を設藹??すればいい
 クエリ・??Loggingをクエリで鐔??る、Logルータのシンクをフィル繧?(サンプ繝?)する

■Monitoring
ダッシュボードはサンプルから作ると楽
MQLで改藹??、クエリを実行するとエラーメッセが出るん縺?
fetch gae_instance::appengine.googleapis.com/flex/cpu/utilization | { top1, max(val()); bottom 1, min(val()) } | UNION
 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.json
cloud shell terminalでもファイルをアップロードできるの縺?up後下記縺?OK
gcloud 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.com
svacを指定するならこれでもいいがKeyがいる
 gcloud auth activate-service-account chinko-compute@developer.gserviceaccount.com --key-file=/himitsu/dame_key.json --project=bangboo-kuso
ログインユーザ確認で鐔??確鐔??
 gcloud auth list
gcloudコマンドのリファレン繧?

■セッ繧?
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_level
google_access_context_manager_service_perimeter | Resources | hashicorp/google | Terraform | Terraform Registry

VPCサービスコントロール・??Access context manager
VPC 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で使うのはネットワークタグで種類が違うと思繧?れる
ラベルはリソース整理や課金整理のための觸??閭?

■ネットワー繧?
外驛?IP
 External IP addressで藹??得、300円/月位、通常臀??つは自動で割り当てられる
PoP(Point of presence)
 世界70か所縺?GCPとエッ繧?(ネット)接続
NWトポロジーで通信が可鐔??化でき通信コストが分かる
 詳細開縺?のは片側だけにすると使用帯域が表示される

■課金
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型 subscriber
publisher -> 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のプロジェクトを使う
デフォルトプロジェクトから切り替えると戻せない、利点も少しだけ(サイト藹??照・??
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

Posted by funa : 09:00 PM | Web | Comment (0) | Trackback (0)