salesforceからawsへの接続 using oidc/saml

6

Click here to load reader

Upload: shinichi-tomita

Post on 14-Apr-2017

825 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: SalesforceからAWSへの接続 using OIDC/SAML

SalesforceからAWSへの接続 Using OIDC/SAML

Shinichi TomitaMashmatrix, Inc.

@stomita

Page 2: SalesforceからAWSへの接続 using OIDC/SAML

何をやったのか• SalesforceにAWSのシークレットを保存せずにAWS上の各種サービス(もちろん非公開)にSalesforceからアクセスする

• http://qiita.com/stomita/items/81e88ca380300ac35563 (OIDCの場合)

• http://stomita.hatenablog.com/entry/2013/12/23/195110 (SAMLの場合:2年前の記事)

Page 3: SalesforceからAWSへの接続 using OIDC/SAML

通常の連携との違い

通常の連携 OIDC/SAMLによる連携

AWS Access Key IDAWS Secret AccessKey

OIDC ID Token /SAML Assertion

SF Username/Password

SF Username/Password

Page 4: SalesforceからAWSへの接続 using OIDC/SAML

何がうれしいのか• AWSサービスをSalesforceと同一のセキュリティコンテキストで利用できる

• シークレット情報をSalesforceで管理しなくてもOK

• エンドユーザレベルでのアクセス監査も可能に

• 属性を用いたFine-Grained Access Control (FGAC)

Page 5: SalesforceからAWSへの接続 using OIDC/SAML

参考: DynamoDBでのFGAC

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/FGAC_DDB.html

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessToUserItems", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": [ "${www.amazon.com:user_id}" ] } } } ]}

例:ユーザIDで始まるパーティション・キー値を持つレコードにのみアクセスさせたい場合のポリシー設定

Policy Variable

Page 6: SalesforceからAWSへの接続 using OIDC/SAML

何を学んだか• OIDCでの連携の場合は、Policy Variableに利用できる属性が現在のところsubしかない模様

• subの値はSalesforce OIDCの場合 https://login.salesforce.com/id/<orgid>/<userid> の形式で表現される識別子となる

• SAML連携の場合はアサーション属性をpolicy keyにマッピング可能

• http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html

• ちゃんとFGACをやりたいときはSAML連携がよさそう

• Salesforceではアサーションに含める属性は数式で自在に定義できるため、もし使えるなら強力になるなのだけど…