はい、3ぃさんです
AWSの案件に入ることになったので、AWSの資格を取ることにしました
どうせなら、食べること好きな3ぃさんがIT×食で何か作れないかなという視点で考察していこうと思うので
3ぃさんと一緒にAWSを勉強してくれる方
食との掛け合わせに興味がある方は見ていってね
学んだこと
AWS Identity and Access Management(IAM)とは
AWS操作をするための認証・認可の仕組みのこと
- AWSアカウント内のユーザを作成
- AWSリソースへのアクセス権限を管理
- リソース間のアクセス権限を管理
- 一時的なアクセスを許可
などができる
IAMの主要要素はポリシー、ユーザ、グループ、ロール
IAMポリシー

IAMポリシーとは、ユーザなどへのアクセス権限を付与するための設定ドキュメントのこと
ユーザやユーザグループ、ロールというIdentityに対して許可権限を設定できる
例えば、Lambdaというサービスと DynamoDBというサービスにアクセスするときのアクセス権限設定を考えてみる

IAMユーザに対してポリシーAの設定を
Lambdaへのアクセスを許可、DynamoDBへのアクセスを拒否
とした時はこんな動き
このようにサービスへのアクセスを制限することができる

IAMグループに対してポリシーBの設定を
LambdaとDynamoDBへのアクセスを共に許可としたときは
先ほどIAMユーザでアクセスできなかったDynamoDBにもアクセスできるように設定を入れることができる
IAMユーザ
IAMユーザとは
IAMポリシーで定義されたアクセス権限内でAWSサービスを利用できるユーザのこと
AWS上でアカウントを作成するとルートユーザが最初に作成されるが
基本的にはIAMユーザを作成し、それに必要な権限を与えて操作する
| ルートユーザ (特別な操作ができる唯一のユーザ) | 最初に作成されるIDのアカウント 全ての権限を有する 権限が強すぎるため、基本的な操作では使用しない |
| 管理者権限 | 管理者権限が許可されたIAMユーザのこと IAMの権限が付与されている |
| パワーユーザ | IAM以外の全てのAWSサービスにアクセスできるIAMユーザのこと |
IAMユーザグループ
グループとしてまとめて権限を付与する仕組み
グループには複数のIAMユーザが設定される
IAMユーザがたくさんいる場合に一つ一つ権限設定すると手間なので
複数のユーザを一つのグループにまとめて権限設定が可能なようにしているってこと
IAMロール
AWSリソースが別のリソースに対するアクセス権限を付与できる
要はAWSサービスとAWSサービスを連携させたいというときに
AWSサービスに対して、アクセス許可を与える必要があるということ

この他にも別のAWSアカウントのIAMユーザにアクセス権限を委譲することもできるらしい
理解したこと・気づき
AWSのサービスを会社の部署の扉だとして
IAMポリシーはセキュリティカードみたいなものなんだね
セキュリティカードの設定でこの人は入れる入れないを判断するから
そういった設定をIAMポリシーで設定ができることがわかった
そして、一人一人に扉に入れる設定を入れることもできるし
営業部ってグループに属している人なら営業部に入れるポリシーが適用できるような
営業部でも部長なら他の部署にも入れるみたいな感じ
ルートユーザはなんでもできるが故に通常は使わせない運用とするのはLinuxとかとも同じなのがわかった
グループで権限変えられるのも同じだね
複数のポリシーに当てはまるユーザが、一つのポリシーじゃできないことも
他のポリシーで許可されていればできるという動きなので
誰がどの権限を与えられている? と複雑怪奇になることもあり得そう
まとめ
AWS上では複数のIAMユーザが作成できて
基本は作成したユーザを使って作業するよ
ユーザにはIAMポリシーで権限設定を与えて必要な権限を与える必要があるよ
ユーザがたくさん必要で、権限設定のグループ分けができそうだったら
グループ単位で権限の設定もできるよ
AWS上のサービス同士で連携する際には
IAMロールの権限設定気をつけないといけないので注意が必要だよ
また、次回IAMの続きを勉強するよ
んでわ


コメント