Contenu connexe
Similaire à IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回 (20)
Plus de SORACOM, INC (20)
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
- 3. 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/
- 5. Agenda
IAMの概要
IAMの操作・設定方法
Identity Federation
Consolidated Billing
Consolidated Billingの使い方
まとめ
Copyright © 2011 Amazon Web Services
- 7. IAM(AWS Identity and Access Management)
AWS利用者の認証と、アクセスポリシーを管理する仕組み
AWS操作のためのグループ・ユーザーの作成が可能
「EC2インスタンスの起動」や「このS3へのPUT」のような、AWS操作
に対するアクセス制御を行える
ユーザーとグループで管理
ユーザーごとに認証情報の発行とアクセスポリシーの設定が可能
グループに対してアクセスポリシーを設定できる
グループにユーザーが所属できる
• グループのポリシーを引き継ぐ
開発チーム 運用チーム
- 8. IAM(AWS Identity and Access Management)
ユーザーごとに作成可能な認証情報
アクセスキー/シークレットキー
各種SDKのAPI利用時の認証に使用
セキュリティ証明書(X.509)
AMI-toolsなど特定の操作時の認証に使用
マネジメントコンソールへのログインパスワード
MFA(多要素認証)デバイス
マネジメントコンソールの認証要素
開発チーム AWS 運用チーム
- 9. IAM動作イメージ APIやマネジメントコンソールからの
アクセスに対して、権限をチェック
全操作可能
S3はすべて
操作可能
S3参照だけ
- 14. Access Policy Language
{
"Statement": [
{
"Effect": "Allow",
"Action": [
" s3:ListBuckets ",
" s3:Get * "
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"aws:SourceIP": [“176.32.92.49/32“]
}
}
}
]
}
- 15. Access Policy Language
{
"Statement": [
{
"Effect": "Allow",
"Action": [
" s3:ListBuckets ",
" s3:Get * "
],
"Resource": [
"*" この定義に従って、アクセス
], 可否を決定する
"Condition": {
"StringEquals": {
"aws:SourceIP": [“176.32.92.49/32“]
}
}
}
]
}
- 16. アクセス制御の条件設定
{
アクセス許可の設定なら”Allow”
"Effect": "Allow",
拒否の設定なら”Deny”
"Action": [
" s3:ListBuckets ",
対象となる操作を指定
" s3:Get * " ワイルドカード使用可能
],
"Resource": [
対象となるリソースを指定
"*"
ARN(Amazon Resource Name)で記載
],
ワイルドカード使用可能
"Condition": {
"StringEquals": {
"aws:SourceIP": このアクセス制御が有効になる
[“176.32.92.49/32“] 条件の設定
}
}
} この例の場合、
「アクセス元IPが176.32.92.49だったら、S3の
ListBucketsとGet系の操作を許可する」という意味
- 18. サービス毎のAction/Resource利用可否
AWSサービス Action Resource
IAM
Amazon CloudFront
Amazon CloudWatch
EC2はResourceに
Amazon EC2
未対応のため、
Amazon ElastiCache
インスタンスやEBSごと
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
- 19. 利用可能なConditionの構文
文字列
StringEquals,StringNotEquals, StringEqualsIgnoreCase
StringNotEqualsIgnoreCase,StringLike,StringNotLike
数値
日付
Bool
IP Address
IpAddress
NotIpAddress
- 20. Conditionの構文
"Condition" : {
"DateGreaterThan" : {
"aws:CurrentTime" : "2009-04-16T12:00:00Z"
AND
},
"DateLessThan": {
"aws:CurrentTime" : "2009-04-16T15:00:00Z"
},
AND "IpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
} OR
- 23. アクセス可否の決定ロジック
アクセス制御の条件は複数設定可能
ユーザー・グループごとに条件が設定できるため、相反する条件
の設定も可能
すべてのアクセスはデフォルトで拒否(デフォルトDeny)
アクセス権限に“Allow”の条件があった場合、アクセス許可
ただしアクセス権限に1つでも“Deny”の条件があった場合、アク
セス拒否(明示的なDeny)
デフォルトDeny < Allow < 明示的なDeny
グループのStatement グループのStatement
Allow DenyAllow
ユーザーのStatement ユーザーのStatement
該当しない
Allow
(デフォルトDeny)
結果:Allow 結果:Deny
- 25. クロスアカウントアクセス
AWSアカウントを超してアクセスする事が可能
1.Account Aのバケットに以下のポリシーを設定
{
"Statement" : {
"Effect":"Allow",
"Principal" : {
"AWS":"AWS Account Bのアカウント番号"
},
"Action":"s3:*",
"Resource":"arn:aws:s3:::mybucket/*"
}
}
2.Account BでUser1を作り、mybucketへアクセス権限付与
User1がmybucketにアクセス可能になる
3.User2に権限を与えない場合は、mybucketへのアクセス
は不可
- 30. Temporary Security Credentials
AWSに対する、一時的な認証情報を作成する仕組み
期限付きの認証情報(認証チケット)
ユーザーに対して、以下の3つのキーを発行
アクセスID
シークレットキー
セッショントークン
作成した認証情報の有効期限設定が可能
デフォルト12時間 最小1時間 最大36時間
ただし延長・短縮は出来ない
8
- 34. Identity Federation利用方法 アプリケーションから
APIを使って連携
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
- 39. 利用までの流れ
請求アカウントを
決定
子アカウントに送られた
メールで承諾
子アカウントを作成
(既存アカウント可)
請求アカウントから
子カウントへ通知
コンソリデート成立
(専用画面からメール
送付)
- 50. 次回の
ほぼ週刊AWSマイスターシリーズは、
10月26日 17:00~
~ ELB, AutoScaling & CloudWatch ~
Copyright © 2011 Amazon Web Services