GCP スキルバッジをもらおう　３.Cloud IAM: Qwik Start〜Security & Identity Fundamentals

今回から実際にラボを実施した際の記録を載せていきます。
学習の助けになったリンクや、後に見るための学習メモ、ちょっと迷った手順を書いていきます。
学習の助けになったリンクは、「学習に役立つリンク」にまとめて書いてあります。
メモは:writing_hand:アイコンをつけてます。
迷った手順は箇条書きでつらつら書いてます。
実際の手順については、[Google Cloud Skills Boost](https://www.cloudskillsboost.google/)のラボの手順を参照してください。

クエスト「[Security & Identity Fundamentals](https://www.cloudskillsboost.google/quests/40)」の最初のラボから始めます。
SkillBoostの始め方は記事「[GCP スキルバッジをもらおう　1Google Cloud Skill Boostをはじめよう](https://qiita.com/orange-tora/items/57d5fe3486f4c7e1a58a)」をどうぞ。

:::note info
この記事は「<a href="https://qiita.com/advent-calendar/2021/gcp-skill-boost-sif">GCP スキルバッジをもらおう！　〜Security & Identity Fundamentals Advent Calendar 2021</a>」の一部として公開しています。
２５日にスキルバッジが獲得できるペースで公開していきます。
:::

##ラボの情報
ラボの名前：[Cloud IAM: Qwik Start](https://www.cloudskillsboost.google/focuses/551?parent=catalog)
所要時間：４５分　レベル：Introductory　必要なクレジット:1
概要：
同じプロジェクトに属する二つのユーザーアカウントを使い分けて、権限の付与や、付与した権限で可能な操作をクラウドコンソールで確認する。

##学習に役立つリンク
参考URL：
[IAM](https://cloud.google.com/iam/docs/overview#concepts_related_to_identity)
[プロジェクト、フォルダ、組織へのアクセス権の管理](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
[ロールについて](https://cloud.google.com/iam/docs/understanding-roles#primitive_roles)
関連SDK：
[gsutil](https://cloud.google.com/storage/docs/gsutil/commands/ls?hl=ja)

##ラボの実施記録
###2 人のユーザーのセットアップ

:::note warn
二つのコンソールの使い分けに注意。
課金に関わることもあるので本当注意。
:::

* Googleコンソールタブを開いたら、それぞれのUsername 1、Username 2のそれぞれのユーザ情報でログインします。手順はラボに書いてあるとおりです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365170/34e400e1-e7b3-75db-3ec4-02f98492d740.png" width="200" height="400">

* 途中、2要素認証の確認画面が表示されたら[Confirm]を押すとスキップできます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365170/2d80d2c9-02e2-bb0a-9a5c-6524718c5e57.png" width="200" height="400">

* このラボでは、２つのユーザアカウントを使用するため、ブラウザタブごとに異なるログイン情報を用いて使い分けます。
* その過程でログインに失敗していると、Google Skill Boostにログインしたときの情報でGoogle Consoleを開いてしまうことがあります。

（↓こういう表示になっていたら失敗してます）
![スクリーンショット 2021-12-18 22.53.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365170/75dcac61-db38-0548-ea43-da138fc62cc8.png)

無料のお試しに関する案内が出るが、これは絶対に無視すること。
失敗していたら、プロフィールアイコンをクリックしてログアウトします。その後、ラボのログイン情報でログインをしなおします。
![スクリーンショット 2021-12-18 23.22.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365170/80922a7b-e886-50c5-892d-0ee6b6bec503.png)

* 右上のプロフィールのアイコンで、どちらのユーザーで操作しているかをよく確認すること。


###IAM コンソールとプロジェクト レベルのロール
メモ:writing_hand:：ロールというのは```権限```の集合です。
権限とは、行える操作のこと。
権限の対象リソースと何が行えるかでセット。
ロールは```ユーザー```、```グループ```、または```サービス アカウント```に付与します
ロールには```基本のロール```と、```カスタムロール```があります。ロールについてはこの次のラボで詳しくやります。
たとえば、```Bigquery.jobuser```はリソース「Bigquery」に対してジョブの実行ができる権限セットをもったロールです。

メモ:writing_hand:：基本のロールについて
```基本ロール```はプロジェクト レベルの権限を設定するもの。
別途指定しない限り、すべての Google Cloud サービスへのアクセスと管理が基本ロールで制御される。
（「[ロールについて](https://cloud.google.com/iam/docs/understanding-roles#primitive_roles)」より抜粋）

| ロール名 | 説明 |
|:-:|:--|
|roles/viewer   | フォルダ、組織、Cloud IAM ポリシーなど、プロジェクトの階層を参照するための読み取りアクセス権。このロールには、プロジェクトのリソースを表示する権限は含まれていません。  |
|roles/editor   | すべての閲覧者権限と、状態を変更するアクション（既存のリソースの変更など）に必要な権限。  |
|roles/owner   | すべての編集者権限と、以下のアクションを実行するために必要な権限。プロジェクトおよびプロジェクト内のすべてのリソースの権限とロールを管理する。プロジェクトの課金情報を設定する。  |
|roles/browser   | フォルダ、組織、Cloud IAM ポリシーなど、プロジェクトの階層を参照するための読み取りアクセス権。このロールには、プロジェクトのリソースを表示する権限は含まれていません。  |

###編集者のロールを調べる
Cloud　Console上で権限の状態を確認する。特に迷うことはなし。

###アクセステストのためのリソースの準備
####バケットの作成
* クラウドコンソール上でバケットを作成します。
* 名前は「グローバルな一意の名前」と説明がありますが、```プロジェクトID```を使用すると良いです。
```プロジェクトID```は、ラボの起動情報からコピーするか、CloudShellで表示しても良いですし、画面上部の表示部分からコピーすることもできます。

* 権限が原因で失敗した場合、ユーザー名 1 の認証情報でログインし直してください。

####サンプルファイルのアップロード
* ローカルでテキストファイルを作成して、「sample.txt」という名前で保存しておき、それをアップロードする

###プロジェクトへのアクセス権の削除
* 誤ってユーザ１のアクセス権を削除しないように注意。何もできなくなります。
* 反映に時間がかかります、座して待つ。

###Storage の権限の追加　と　アクセス権の確認
* ここは特に迷うところは無かったです。

##お疲れさまでした
これでラボの手順は終了。
右上のスコア表示が「100/100」になっていることを確認して、「ラボを終了」を押します。