34
IAMで まもれ僕らの AWS JAWS-UG 初心者支部 2015/11/27

IAMでまもれ僕らのAWS(JAWS-UG 初心者支部)

Embed Size (px)

Citation preview

IAMでまもれ僕らの AWS

JAWS-UG 初心者支部

2015/11/27

• 名前:片山 暁雄

• 所属:株式会社ソラコム–シニアソフトウェアエンジニア

• ID: @c9katayama

#ヤマン

• 元AWSソリューションアーキテクト(金融担当)

• AWS認定ソリューションアーキテクト(アソシエイト)

好評発売中!(Kindle版もあるよ!)

IAMとは

AWSインフラを操作するための

「認証」と「認可」のサービス

IAM = Identity and Access Management

バケットユーザー

(コンソール/CLI/SDK) IAM

この人は”ヤマン”です(認証)

ID/パスワード or

AccessKey/Secret AcccessKey

このバケットへのPUTはOK

(認可)

ユーザー

• アカウントユーザー(rootユーザー)• AWSアカウント作成時にできるユーザー• どのような操作でもできる• 基本的に利用しない

• IAMユーザー• IAMで作成されたユーザー• 付与された権限のみでAWSを操作できる• コンソールへのログインID/パスワード、および

AccessKey/SecretAccessKeyはIAMユーザーごとに発行可能

よくある勘違い

• IAMユーザーを作ると、EC2へログインできる• IAMユーザーを作ったので、どのような操作でもできる

•名前•AccessKey/SecretAccessKey

•コンソールへのログインパスワード•MFA

•権限(IAMポリシー)

IAMユーザー設定項目

MFA(多要素認証)

•ハードウェアタイプ

•ソフトウェアタイプ•オススメはIIJ SmartKey

•ショートメッセージ(SMS) New!

権限(IAMポリシー)

• IAMユーザーに認可を与えるためのポリシー

•JSON形式

•2つのポリシー形式

•インラインポリシー

•管理ポリシー(推奨)• 一括変更

• バージョン管理

インラインポリシー

インラインポリシー

管理ポリシー

{

"Version": "2012-10-17",

"Statement": [

{

"Sid": "Stmt1448599027000",

"Effect": "Allow",

"Action": [

"s3:PutObject"

],

"Resource": [

"*"

]

}

]

}

このポリシーが許可をするものか、拒否をするものか(Allow or Deny)

許可(拒否)対象のAWS

サービスおよびAPI

詳細なリソース指定(特定のS3バケットだけ、など)

{

"Version": "2012-10-17",

"Statement": [ {

"Effect": "Allow",

"Action": [

"s3:PutObject"

],

"Resource": [

"*"

]

},

{

"Effect": “Deny",

"Action": [

"s3:GetObject"

],

"Resource": [

"*"

]

}

]

}

覚えなくていいです!

ポリシージェネレーター

ポリシーエディター

•ユーザーには複数のポリシーが設定できる

•ポリシーの優先順位で決まる

ポリシーの優先順位

デフォルト Deny <明示的な Allow < 明示的な Deny

•S3へのフルアクセスを許可するポリシー

•S3へのputを拒否するポリシー

例えば・・・

デフォルト Deny(デナイ)

• ロール=役割

• IAMユーザーやAWSサービスに、IAMの権限を付与する仕組み

• ロールには、「ロール種別」と「権限(ポリシー)」のみ設定できる

• ロールを作っても、それだけではキーも発行されない

IAMロール

•AWSサービスロール

•クロスアカウントアクセスロール

• IDプロバイダアクセスロール

IAMロールの種類

AWSサービスロール

•EC2やLambdaなどを起動する時に付与するロール

•付与したロールの権限を、インスタンスの中/Lambda Functionから使用出来る

S3アクセス

ロールなし

ロールあり

AccessKey/SecretAccessKeyの設定が必要

CLIがロール用に発行されたキーを自動取得

•プログラムコードから、AccessKey/SecretAccessKeyを排除出来る

•ロールのキー(STS)は、自動的にリフレッシュされる•有効期限付きのキーが発行される

AWSサービスロールの利点

クロスアカウントアクセスロール

開発用AWSアカウント

本番用AWSアカウント

•あるAWSアカウントから、別のAWSアカウントのAWSリソースへアクセスするためのロール

クロスアカウントアクセスロール

開発用AWSアカウント

本番用AWSアカウント

• ロールに対して、そのロールを使えるAWSアカウント/IAMユーザーを設定

• AssumeRoleリクエストで、一時的なキーを発行

S3アクセス

Assumeロール

• AWSアカウントや操作ごとにIAMユーザーを作らずに済む• IAMアカウント管理が楽になる

•同一AWSアカウント内でも利用可能

•例えばIAMユーザーにはDBのdelete権限を付与せずに、DB削除時だけ削除権限のついたロールを使うことができる

クロスアカウントアクセスロールの利点

IDプロバイダアクセスロール

• Facebook、GoogleなどのIDやSAMLに対して使

えるロール

• 指定のIDプロバイダのアカウントに対してロー

ルを割り当てると、「Facebookログインした

ユーザーがアクセスできるS3」などを実現でき

• ActiveDirectoryと連携して、AD上のユーザーを

管理コンソールにログインさせる(シングルサイ

ンオン)

ログイン

トークン

トークン

トークン

OK

• IAMを使うと、AWSインフラを細かく権限制御できる•通信はSORACOMで守る

• IAMロールは便利かつセキュア。極力利用すべし

• rootアカウント だめ 絶対

•デフォルト Deny

まとめ

SORACOMのイベントスケジュール

12月7日 AWSとの共催セミナー(大阪)

IoTプラットフォームとAWS IoT

12月10日 AWSとの共催セミナー(東京)

IoTプラットフォームとAWS IoT

12月11日 SORACOM User Group

1月27日 SORACOM Summit(仮)

《 株式会社ソラコムのビジョン 》

世界中のモノと人をつなげ

共鳴する社会へ