AWS IAM入門

22
クラウドで、世界を、もっと、はたらきやすく Copyright © Serverworks Co.,Ltd. All Rights Reserved. http://www.serverworks.co.jp AWS IAM⼊⾨ いまさらですが 株式会社サーバーワークス 髙⽥ 知典

Transcript of AWS IAM入門

クラウドで、世界を、もっと、はたらきやすく Copyright©Serverworks Co.,Ltd.AllRightsReserved. http://www.serverworks.co.jp

AWS IAM⼊⾨いまさらですが

株式会社サーバーワークス髙⽥ 知典

Page:2Copyright©Serverworks Co.,Ltd.AllRightsReserved.

「 AWSにおけるセキュリティとコンプライアンス」P11よりhttps://d0.awsstatic.com/webinars/jp/pdf/services/20160315_securitycompliance-160322014616.pdf

Page:3Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMとは

AWS Identity and Access Management (IAM) は、ユーザーに対して AWS へのアクセスを安全に制御するための仕組み(略)。IAM により、どのユーザーがお客様の AWS リソースを使⽤できるか(認証)、それらのユーザーがどのリソースをどのような⽅法で使⽤できるか(承認)を制御できます。

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html より

Page:4Copyright©Serverworks Co.,Ltd.AllRightsReserved.

Page:5Copyright©Serverworks Co.,Ltd.AllRightsReserved.

想像図

ManagementConsole

API

各種リソース(EC2/S3/etc)

IAMユーザ名/パスワード

認証と認可

AWS

アクセスキー/シークレットアクセスキー

AWS IAM

操作

ヒト

プログラム/AWS CLI

だれがなにをできるか

IAMユーザ

Page:6Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認証

AWSアカウント(root)ユーザ

• AWSアカウント(root)ユーザ• AWSアカウント作成時のユーザ

• メールアドレス• 超強⼒な権限=>なんでもできる• 通常しないようにする

• 後述するIAMポリシーによる認可制御ができない• アクセスキーID/シークレットアクセスキーも削除しておく

• できればMFA(多要素認証)で保護

Page:7Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認証

IAMユーザとIAMグループ

• IAMユーザ• ユーザ名• 認可情報(IAMポリシー)を付与することが可能• IAMグループに所属させることが可能

• IAMグループ• グループ名• 認可情報(IAMポリシー)を付与することが可能

• グループに付与した認可情報は、IAMユーザへ付与したものと同時に評価される

Page:8Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認証

IAMユーザの認証情報

• パスワード• ユーザ名と組み合わせManagement Consoleへロ

グイン• アクセスキーID/シークレットアクセスキー

• APIを使⽤するときのクレデンシャル情報• 1つのIAMユーザに対して2つまで設定可能

• ローテーションすることが可能• 漏洩しないように注意が必要

• AMIの共有、コード埋め込み(GitHub)

• X.509証明書• SOAP API認証⽤

Page:9Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認証

IAMユーザの認証情報

• MFA• パスワード、アクセスキーID/シークレットアクセ

スキーと組み合わせて使⽤する• ハードウェアMFA• 仮想MFA

• Google Authenticator• Authy

Page:10Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認可

IAMポリシー

• AWSのリソースに対する権限設定を⾏う

• JSONで記載する

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html

全てのリソースに対して

許可する

EC2の情報を閲覧することを

Page:11Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認可

IAMポリシーの付け⽅(インラインポリシー)

IAMユーザたかだ

IAMグループKixs

IAMポリシーEC2読み取り専⽤

IAMユーザにしだ

IAMポリシーEC2読み取り専⽤

IAMポリシーS3アップロード

Page:12Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認可

IAMポリシーの付け⽅(カスタマー管理ポリシー)

IAMユーザたかだ

IAMグループKixs

IAMユーザにしだ

IAMポリシーEC2読み取り専⽤

ec2_readonly

IAMポリシーS3アップロード

s3_upload

IAMグループUWFVer.1 Ver.5

Ver.1 Ver.5

Page:13Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認可

IAMポリシーの付け⽅(AWS管理ポリシー)

IAMユーザたかだ

IAMグループKixs

IAMユーザにしだ

IAMポリシーAdministratorAccess

IAMポリシーPowerUserAccess

IAMグループUWF

Page:14Copyright©Serverworks Co.,Ltd.AllRightsReserved.

認可

IAMポリシーの作成ツールなど

• AWS Policy Generator • https://awspolicygen.s3.amazonaws.com/policygen.html• 必要なパラメータを入れることでJSONを自動生成

• IAM Policy Simulator• https://policysim.aws.amazon.com/home/index.jsp• 適応前にテストを行うことが可能

Page:15Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMロール

IAMロール

• AWSサービス⾃体や、個別のアプリケーションなどに対して、AWSリソースへの操作権限を付与する仕組み

• IAMユーザやグループには付与されない

• IAMロールにIAMポリシーを紐付ける

• EC2で利⽤されることが多い

IAMロールWebサーバ IAMポリシー

S3アップロード

Page:16Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMロール

EC2からS3へのアクセス(IAMユーザを使う場合)

EC2instance

Amazon S3 bucket

AWS CLI

認証と認可

AWS IAM

アクセスキーシークレットアクセスキー

S3へのファイルアップロード

認証情報をOS内に持つ必要がある=漏洩リスク

Page:17Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMロール

EC2からS3へのアクセス(IAMロールを使う場合)

EC2instance

Amazon S3 bucket

AWS CLI

認証と認可

AWS IAM

S3へのファイルアップロード

認証情報を

OS内に埋め込む必要がない

Page:18Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMロール

EC2からS3へのアクセスの詳細(IAMロールを使う場合)

EC2instance

Amazon S3 bucket

AWS CLI

S3へのファイルアップロード

AWSSTS

temporarysecuritycredential

temporarysecuritycredential

アクセスキーIDシークレットアクセスキーセッショントークン

有効期限

認証と認可

AWS IAM

Page:19Copyright©Serverworks Co.,Ltd.AllRightsReserved.

IAMロール

EC2ではIAMロールを使ったほうがよい

• IAMロールに対応したアプリケーションが必要• AWS CLIは対応• AWS SDKも対応しているが、実装するアプリケーション側で

IAMロールを使⽤するような記述を⾏う必要がある。

• EC2はローンチ(⽣成)時にしか、IAMロールを付与できない

• 当初、利⽤する予定がなくても、IAMポリシーを付与していない空のIAMロールを付けておいたほうがよい

Page:20Copyright©Serverworks Co.,Ltd.AllRightsReserved.

その他にも

• IAMロールとSTS• クロスアカウントアクセス/Switch Role

• IAMによるFederation

Page:21Copyright©Serverworks Co.,Ltd.AllRightsReserved.

まとめ

• AWSを利⽤する際、各種リソースへのアクセスコントロールには、IAMを利⽤します

• AWSを学ぶ上で、特徴的な仕組みであるが故に、(私は)理解しにくい部分と思いましたが、⼀度理解ができると、活⽤範囲が広いです

• IAMの利⽤料は無料です

Page:22Copyright©Serverworks Co.,Ltd.AllRightsReserved.

参考資料

• AWS Identity and Access Management ドキュメントhttps://aws.amazon.com/jp/documentation/iam/

AWS クラウドサービス活⽤資料集• [Identity and Access Management (IAM)]https://d0.awsstatic.com/webinars/jp/pdf/services/20160921_AWS-BlackBelt-IAM.pdf

• AWSにおけるセキュリティとコンプライアンスhttps://d0.awsstatic.com/webinars/jp/pdf/services/20160315_securitycompliance-160322014616.pdf