iam & consolidated billing -ほぼ週刊awsマイスターシリーズ第4回

51
AWS マイスターシリーズ IAM & Consolidated Billing 20111019片山 暁雄( @c9katayama ソリューションアーキテクト

Upload: -ken-tamagawa-amazon-web-services

Post on 14-Jan-2015

25.836 views

Category:

Technology


5 download

DESCRIPTION

ほぼ週刊AWSマイスターシリーズでは、毎週テーマを決めて、各サービスの詳細情報を解説します。記念すべき第4回は、IAMとConsolidated Billingです

TRANSCRIPT

Page 1: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

AWSマイスターシリーズ ~IAM & Consolidated Billing~

2011年10月19日

片山 暁雄( @c9katayama ) ソリューションアーキテクト

Page 2: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ほぼ週刊AWSマイスターシリーズへようこそ! ~GoToMeetingの使い方~

参加者は、自動的にミュートになっています

質問を投げることができます!

GoToMeetingの仕組みを使って、随時書き込んでください

ただし環境によっては、日本語の直接入力ができないので、

お手数ですが、テキストエディタ等に打ち込んでから、

貼り付けててください

最後のQ&Aの時間で、できるだけ回答させて頂きます

書き込んだ質問は、主催者にしか見えません

Twitterのハッシュタグは#jawsugでどうぞ

Copyright © 2011 Amazon Web Services

Page 3: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Webセミナー

ほぼ週刊AWSマイスターシリーズ(全10回) 10/19 第4回 IAM & Consolidated Billing

10/26 第5回 ELB, AutoScaling & CloudWatch

11/1 第6回 CloudFormation

11/9 第7回 VPC

11/16 第8回 RDS

11/22 第9回 EMR

11/30 第10回 SES

http://aws.amazon.com/jp/event_schedule/ 申し込みサイト

Page 4: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

プレゼント

本日一番良い質問を頂いた方に、

AWS特製 EC2帽子 (サイズ:m1.small)

をプレゼントします!

Page 5: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Agenda

IAMの概要

IAMの操作・設定方法

Identity Federation

Consolidated Billing

Consolidated Billingの使い方

まとめ

Copyright © 2011 Amazon Web Services

Page 6: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

IAMの概要

Page 7: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

IAM(AWS Identity and Access Management)

AWS利用者の認証と、アクセスポリシーを管理する仕組み

AWS操作のためのグループ・ユーザーの作成が可能

「EC2インスタンスの起動」や「このS3へのPUT」のような、AWS操作に対するアクセス制御を行える

ユーザーとグループで管理

ユーザーごとに認証情報の発行とアクセスポリシーの設定が可能

グループに対してアクセスポリシーを設定できる

グループにユーザーが所属できる

• グループのポリシーを引き継ぐ

開発チーム 運用チーム

Page 8: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

AWS 開発チーム

IAM(AWS Identity and Access Management)

ユーザーごとに作成可能な認証情報

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

各種SDKのAPI利用時の認証に使用

セキュリティ証明書(X.509)

AMI-toolsなど特定の操作時の認証に使用

マネジメントコンソールへのログインパスワード

MFA(多要素認証)デバイス

マネジメントコンソールの認証要素

運用チーム

Page 9: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

IAM動作イメージ APIやマネジメントコンソールからの

アクセスに対して、権限をチェック

全操作可能

S3はすべて操作可能

S3参照だけ

Page 10: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ユースケース

セキュリティの向上

IAMユーザーは簡単に無効化できる

バックアップ専用ユーザー

EBSスナップショットのみ可能なユーザーでバックアップを実施

操作を誤ってもEC2を止めたり出来ない

ユーザーごとのS3バケット割り当て

1アカウントでS3を分割して使用できる

Page 11: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

IAMの操作・設定方法

Page 12: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

操作・設定方法

グループ・ユーザーの管理方法は以下の2つ

AWSマネジメントコンソールの利用

IAMのAPI実行

アクセス権限の設定は「Access Policy Language」で記述

JSONフォーマットの記述式

Page 13: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

マネジメントコンソール

「IAM」を選択

グループとユーザーの管理が可能

Page 14: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Access Policy Language {

"Statement": [

{

"Effect": "Allow",

"Action": [

" s3:ListBuckets ",

" s3:Get * "

],

"Resource": [

"*"

],

"Condition": {

"StringEquals": {

"aws:SourceIP": [“176.32.92.49/32“]

}

}

}

]

}

Page 15: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Access Policy Language {

"Statement": [

{

"Effect": "Allow",

"Action": [

" s3:ListBuckets ",

" s3:Get * "

],

"Resource": [

"*"

],

"Condition": {

"StringEquals": {

"aws:SourceIP": [“176.32.92.49/32“]

}

}

}

]

}

この定義に従って、アクセス可否を決定する

Page 16: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

アクセス制御の条件設定

{

"Effect": "Allow",

"Action": [

" s3:ListBuckets ",

" s3:Get * "

],

"Resource": [

"*"

],

"Condition": {

"StringEquals": {

"aws:SourceIP":

[“176.32.92.49/32“]

}

}

}

アクセス許可の設定なら”Allow”

拒否の設定なら”Deny”

対象となる操作を指定

ワイルドカード使用可能

対象となるリソースを指定

ARN(Amazon Resource Name)で記載

ワイルドカード使用可能

このアクセス制御が有効になる

条件の設定

この例の場合、

「アクセス元IPが176.32.92.49だったら、S3のListBucketsとGet系の操作を許可する」という意味

Page 17: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ActionとResource

「Action」は、操作自体に対する権限

RunInstances

AttachVolume

CreateBucket

DeleteObject

「Resource」は操作対象に対する権限

EC2インスタンス

EBSボリューム

S3バケット

S3オブジェクト

Page 18: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

サービス毎のAction/Resource利用可否 AWSサービス Action Resource

IAM

Amazon CloudFront

Amazon CloudWatch

Amazon EC2

Amazon ElastiCache

Amazon Elastic MapReduce

Amazon RDS

Amazon Route 53

Amazon S3

Amazon SES

Amazon SimpleDB

Amazon SNS

Amazon SQS

Amazon VPC

Auto Scaling

AWS CloudFormation

Elastic Load Balancing

EC2はResourceに

未対応のため、

インスタンスやEBSごとの制御は行えない

Page 19: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用可能なConditionの構文

文字列

StringEquals,StringNotEquals, StringEqualsIgnoreCase

StringNotEqualsIgnoreCase,StringLike,StringNotLike

数値

日付

Bool

IP Address

IpAddress

NotIpAddress

Page 20: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Conditionの構文

"Condition" : {

"DateGreaterThan" : {

"aws:CurrentTime" : "2009-04-16T12:00:00Z"

},

"DateLessThan": {

"aws:CurrentTime" : "2009-04-16T15:00:00Z"

},

"IpAddress" : {

"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]

}

} OR

AND

AND

Page 21: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

マネジメントコンソールでのポリシー設定

Policy Generatorを

使って作成

手動でポリシーを記述

テンプレートから選択

Page 22: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Policy Generator

Page 23: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ユーザーのStatement ユーザーのStatement

アクセス可否の決定ロジック

アクセス制御の条件は複数設定可能

ユーザー・グループごとに条件が設定できるため、相反する条件の設定も可能

すべてのアクセスはデフォルトで拒否(デフォルトDeny)

アクセス権限に“Allow”の条件があった場合、アクセス許可

ただしアクセス権限に1つでも“Deny”の条件があった場合、アクセス拒否(明示的なDeny)

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

グループのStatement

Allow

該当しない

(デフォルトDeny)

結果:Allow

Allow

Allow

結果:Deny

グループのStatement

Deny

Page 24: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ユーザーベースとリソースベース

ポリシーは、ユーザーやグループ以外に、リソースにも紐付け可能

S3バケット、SQSのキューに対してポリシーが適用可能

「特定のIPアドレスからしかアクセスできないバケット」などの設定が可能

ユーザーベース リソースベース

片山 北山 酒井

Page 25: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

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

AWSアカウントを超してアクセスする事が可能

{

"Statement" : {

"Effect":"Allow",

"Principal" : {

"AWS":"AWS Account Bのアカウント番号"

},

"Action":"s3:*",

"Resource":"arn:aws:s3:::mybucket/*"

}

}

1.Account Aのバケットに以下のポリシーを設定

2.Account BでUser1を作り、mybucketへアクセス権限付与

User1がmybucketにアクセス可能になる

3.User2に権限を与えない場合は、mybucketへのアクセス

は不可

Page 26: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

IAMユーザーでの管理コンソール利用

マネジメントコンソールの専用URLからログイン

「Account Alias」でユーザーフレンドリーな名前を指定可

ただしS3と同様早い者勝ち

専用URL

Account Alias利用

Page 27: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

制約事項

IAMユーザーではBillingを見ることは出来ません

全権限があっても、アカウントページへはログイン出来ません

1AWSアカウントあたり、以下の制約があります

グループは100個まで

ユーザーは5000個まで

1ユーザーが所属できるグループは10個まで

ただし制限解除は可能

Page 28: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Identity Federation

Page 29: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Identity Federation

企業・組織の認証機能と、AWSの認証を紐づける機能

例えばLDAP認証したユーザーに対してS3のアクセス権をつける、といった連携が可能

認証したユーザー(Federatedユーザー)ごとに、一時的なAWS認証情報(Temporary Security Credentials)を発行

Page 30: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Temporary Security Credentials

AWSに対する、一時的な認証情報を作成する仕組み

期限付きの認証情報(認証チケット)

ユーザーに対して、以下の3つのキーを発行 アクセスID

シークレットキー

セッショントークン

作成した認証情報の有効期限設定が可能 デフォルト12時間 最小1時間 最大36時間

ただし延長・短縮は出来ない

8

Page 31: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ユースケース

モバイルアプリケーション

システムログインしたモバイルアプリユーザーごとにテンポラリの認証情報を作成

モバイルから直接S3にアップロード可能

有効期限があるため、セキュア

一時的なアクセス権限の譲渡

一時的にS3へアップロード出来るようなアプリケーションの作成

一時的にEC2を起動できるような仕組みの構築

組織ユーザー毎のアクセス制御

ユーザーごとに利用できるS3バケットの作成

組織のグループに紐づけてアクセス制御を実施

Page 32: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

動作イメージ

Webアプリケーションで利用するケース

Page 33: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

動作イメージ

モバイルやクライアントアプリケーションで利用するケース

Page 34: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Identity Federation利用方法 final String userId = request.getParameter("userId"); final String password = request.getParameter("password"); // 組織や企業でなにかしらの認証を実施 executeLDAPAuthentication(userId,password); AWSCredentials credentials = new BasicAWSCredentials(IAMユーザーID,パスワード); // SecurityTokenのクライアント AWSSecurityTokenService securityTokenService = new AWSSecurityTokenServiceClient(masterCredentials); GetFederationTokenRequest req = new GetFederationTokenRequest(); req.setName(userId); // S3 Read onlyの権限設定 req.setPolicy(“{\”Statement\“: [{\”Effect\“: \”Allow\“,\”Action\“: [\"s3:Get*\",\"s3:List*\"],\"Resource\": \"*\"}]}"); // 認証情報の取得 GetFederationTokenResult result = securityTokenService.getFederationToken(req); Credentials cs = result.getCredentials(); String tempAccessId = cs.getAccessKeyId(); String tempSecretkey = cs.getSecretAccessKey(); String sessionToken = cs.getSessionToken();

16

アプリケーションから

APIを使って連携

Page 35: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

制約事項

対応サービス(2011/10現在)

EC2

S3

SQS

SNS

SimpleDB

マネジメントコンソールへのログインは不可

Page 36: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Consolidated Billing

Page 37: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Consolidated Billing

AWSの費用請求をまとめられるサービス

複数アカウントの費用を、1つにまとめて支払える

請求アカウント

子アカウント

子アカウント

全アカウントの費用がまとめて請求される

Page 38: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利点

支払いの一元化が可能

アカウントごとの利用明細の確認が可能

部署ごと

プロジェクトごと

通信量やデータ量は全アカウントを合算

合算後の量によっては、ボリュームディスカウントが可能

リザーブドインスタンスの費用の融通が可能

あるアカウントで買ったリザーブドインスタンスを使っていなければ、別のアカウントに自動でリザーブドの割引が適用

Page 39: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

請求アカウントを

決定

子アカウントを作成

(既存アカウント可)

請求アカウントから

子カウントへ通知

(専用画面からメール送付)

子アカウントに送られたメールで承諾

コンソリデート成立

Page 40: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

請求アカウントでログインし、「一括決済」を選択

Page 41: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

子アカウントに対して、リクエストを送信

Page 42: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

子アカウントに対して、リクエストを送信

子アカウントのメールアドレス

Page 43: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

子アカウントにAWSからメールが配信される

Page 44: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

子アカウントでリクエストを承認

Page 45: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

利用までの流れ

コンソリデート成立

Page 46: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

コンソリ後

請求アカウントに、子アカウントの費用が追加で表示される

Page 47: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

まとめ

Page 48: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

まとめ

IAMを使用すると、AWS操作の細かい制御が可能

ユーザーを分けることで、よりセキュアに

企業や組織の認証との連携も可能

Consolidated Billingで費用支払いの一元化と、アカウント毎の明細の確認、ボリュームディスカウント可能

Page 49: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

Q & A

Copyright © 2011 Amazon Web Services

Page 50: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

次回の

ほぼ週刊AWSマイスターシリーズは、

10月26日 17:00~

~ ELB, AutoScaling & CloudWatch ~

Copyright © 2011 Amazon Web Services

Page 51: IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回

ご参加ありがとう ございました

Copyright © 2011 Amazon Web Services