Más contenido relacionado
La actualidad más candente (20)
Similar a 01 awsとsalesforceを使ったエコシステム ファイル編 (20)
01 awsとsalesforceを使ったエコシステム ファイル編
- 1. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
AWSとSalesforceをつかったエコシステム
ファイル編
吉澤
- 2. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
Amazon S3って何?
2
Amazon Simple Storage Serviceの略で、AWSが提供しているスト
レージサービスの事。
特徴
・高い堅牢性:データ消失確率が0.000000001%
・高い可用性:99.99%
・安い:1GBあたり$0.3(約3円)
・APIがよい
・細かなセキュリティ設定も可能
- 3. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
Force.com for Amazon WebServices
3
URL:http://wiki.developerforce.com/page/Amazon_Toolkit
Force.com上からAWS(EC2,S3)を操作するパッケージ
- 4. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
Force.com for Amazon WebServices
4
AWSアクセスキーの設定
S3 AWS Credentialオブジェクトに登録
このCredentialNameを
各Cls内に設定し、認
証に使用します。
- 5. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
東京リージョン対応
5
東京リージョンのS3を扱うため、いくつかの設定が必要になります。
1. S3.clsのエンドポイントを書き換え
public String endpoint_x =
'https://s3-ap-northeast-1.amazonaws.com/soap';
2. 上記サイトをリモートサイトに登録
- 6. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
システム構成イメージ
6
S3オブジェクト
(バケット、ファイル情報)
実ファイルブラウザ
- 7. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
登録時の困ったこと
7
トラブル1:100KB以上のファイルがアップロードできない
※SalesforceのWebサービスAPIの制限
解決:ブラウザから直接S3へアップロードを行う
S3Bucket
①ページ表示時に必要
な情報をAPEXで生成し、
格納
②直接アップロード
- 8. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
登録時の困ったこと
8
トラブル2:ファイル名が重複した場合、上書きされてしまう・・・
解決:SalesforceId/ファイル名で一意にした
- 9. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
登録時の困ったこと
9
ブラウザによってファイル名入力フィールドで入力される値が異な
る
Firefox:ファイル名
Chrome:c:¥fakepath¥ファイル名
解決:Javascriptで解決
- 10. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
最終的な登録イメージ
10
S3オブジェクト
(バケット、ファイル情報)
実ファイル
⑤レコード作成更新(ファイル
名等)
④結果ページ表示
- 11. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
ダウンロード時イメージ
11
S3オブジェクト
(バケット、ファイル情報)
実ファイル
①ダウンロードボタン押下
②APEX内部で期限付き、認証キー
付URLを発行し、WindowOpen
※期限は1時間 AWS認証情報オブジェクト
(アクセスキー、シークレット
キー)
- 12. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
ダウンロード時で困ったこと
12
日本語ファイルの場合、正しい期限付き認証キー付URLが発行で
きなかった。
・キー発行時にファイル名をパラメータに使用しているが、エンコー
ドされていないとNGという事が判明
→キー発行前にエンコードし解決。
- 13. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
削除イメージ
13
S3オブジェクト
(バケット、ファイル情報)
実ファイル
①削除ボタン押下
②JSよりAPEX WebService呼出 AWS認証情報オブジェクト
(アクセスキー、シークレット
キー)
③AWS API Callout
④削除実行
⑤S3オブジェクトのレコード削除
⑥画面表示
- 14. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
S3ファイル削除で困ったこと
14
ファイル削除をトリガーにAWSのAPIをCalloutできる?
外部WebService呼出はトリガーからはNG(同期の場合)。
(エラーメッセージ:System.CalloutException: Callout from triggers
are currently not supported”)
解決:Javascriptを実行するカスタムボタンを作成、Apex
WebServiceからAWSのAPIをたたいて実ファイルを削除。
その後S3オブジェクトのレコードを削除。
- 15. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
ファイル削除関連
15
・もっとSalesforceっぽくゴミ箱を有効活用したい。
↓
1. S3オブジェクトの削除をキーにゴミ箱オブジェクト(カスタムオブ
ジェクト)にクローンを作成。
2. ゴミ箱オブジェクトをAPEXスケジュールで削除(&実ファイル
削除)
- 16. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
セキュリティについて
16
S3の仕様について
・S3のACLはPrivate,PublicRead,FullControll等の設定できる
・署名付き期限付きURLは、生成に使用したアクセスキーのセキュ
リティ権限が適用される。(IAMで設定)
・署名付き期限付きURLの構成は、
【https://ファイルパス? AWSAccessKeyId=アクセスキー& Expires=有効期限(ミリ
秒)& Signature=暗号化キー】
となる。
IAMについて
・IAMとはAWSの1組織に対してユーザー、グループを作成し、管
理するサービス。
・IAMで設定できるもの(S3)
特定バケットへのアクセス権限、IPアドレス制限等
・5000ユーザまで設定可能
- 17. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
セキュリティについて
17
こんな時は?
他のユーザーには非公開にしたい。
• Salesforceオブジェクトの公開設定で制限をかければOK
また、各ユーザごとのIAMアカウントを発行し、そのアカウントを
使ってS3へアクセスすることも可能
- 18. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
セキュリティについて
18
こんな時は?
アクセスキーはURLに直接書かれているけど大丈夫?
• シークレットキーが漏えいしない限りほぼ大丈夫です。
キーはSalesforceのオブジェクトで管理しています。
キーを月次で更新することでより高いセキュリティが保たれます。
組織外ユーザーからは見えない?
• S3のデフォルトアクセス権をPrivateにしているため、署名付き期
限付きURLでないとアクセスができません。(これは組織内ユー
ザーも同様です。)
- 19. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
セキュリティについて
19
どこら辺まで強化できる?
• IAMの設定で許可IPアドレスを指定できるので、社外からのア
クセスを遮断することが可能です。
• この場合指定IPアドレス以外から、該当のアクセスキーにて生
成した、署名付き期限付きURLでアクセスしても、アクセスでき
ません。
• なお、IP制限の他に、時刻でも制限可能です。
- 20. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
セキュリティについて
20
万が一アクセスキーとシークレットキーが漏れてしまったら
1. IAMユーザーのキーを削除
※本キーでのアクセスは遮断されます
2. 同一IAMユーザーのキーを新規発行
3. Salesforceに新しいキーを登録
※ 作業時間5分
- 21. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
監視について
21
S3は専用の形式でアクセスログが発行されます。
アクセス解析ツールのようなものはないので自作する必要があり
ますが、Access等で解析ツールを作れば解析は可能。
出力項目例
• バケット名
• 日時
• ユーザ
• IP
• 対象ファイル
• 処理内容 等
- 22. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
有効なケース
22
• 動画ファイルを管理したい。
• とにかく膨大な量のファイルがあり、その一部をSalesforceで使
いたい。
- 23. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
こんなことも・・・
23
• S3の画像ファイルを認証キー付URLとIMG関数を使って
Salesforceで表示する。
IMG関数
認証キー付URL
- 24. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
まとめ
24
• S3の設定はprivateで設定
• 共有設定等はSalesforceに任せる。
• 実ファイルはS3に配置してコストを削減。
- 25. Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.Copyright © 2014 TerraSky Co.,Ltd. All Rights Reserved.
25