Slack

Slackでファイルアップロードを禁止させるためには?

More than 1 year has passed since last update.

概要

 社内のセキュリティポリシーでモバイルのSlack APPからのファイルDLを禁止するようにと、ク〇なルールがあったのでいろいろと調べた結果を共有します
 同様な要件を要求されている方がいれば参考までにご活用ください

 そもそもこのルールはモバイルを紛失した際にデータの流出を考慮したものだそうです...
 また、なにかご知恵があればご教授くださいー

結論

想定内ですが、
モバイルAPPからのDL禁止する機能はないOrz

ダメ元でSlack本部にこのような機能追加は可能かと問い合わせたところ以下の返信がありました(想定内w)

Hi there,

Thanks for reaching out. I'm afraid it's not possible to restrict file uploads/downloads in Slack and there isn't a way to add this functionality to Slack unfortunately. It's not a functionality our product team are considering adding in the future either. I'm sorry I don't have better news for you on this one today. If you have any further questions please do let me know.

All the best,

妥協案

ファイルアップロードさせないようにする

  • ファイルのやり取りはURLリンクで行う(運用ルールベースだと大変)
    ファイルの実態は別の認証機構が必要なサービスにする
  • BOTでファイルアップロードしたら即削除するように監視する(Snippetは残したい)
    残念ながらSnippetとアップロードしたファイルの区別ができない

    • 「xxxxx.js」、「xxxxxx.txt」、「xxxxx.py」などの拡張子がつくファイルをアップロードした場合は、Snippetとして認識される
    • 「xxxxx.xls」、「xxxxx.jpg」などはアップロードしたファイルとして区別できる
    • カッコ悪いがfile objectのtitleに拡張子が入っている場合は、添付ファイルとして見なす
      ※ファイルアップロード時に拡張子を含むファイル名が自動的にtitleになる
      botkitでの削除サンプルソース
    botkit-slack
    // file 作成時のイベント
    controller.on('file_public', function(bot, file) {
        const fileId = file.file_id;
        bot.api.files.delete({
                file: fileId
            }, function(err, res) {
                if (err) {
                    console.error(err);
                } else {
                    console.log(res);
                }
          });
    });
    
    • プライベートチャンネルのファイルアップロードイベントをトリガーできない
      files.listでプライベートチャンネルにアップロードしたファイル、Snippetを取得できるので、取得したファイルIDをもとにファイル削除する
      参考:http://lyncs.hateblo.jp/entry/2017/06/04/191421
    • Direct Messageでのファイルやメッセージはすべて取得できない(直接BOTとのやり取りは除く)

一日だけファイルアップロードを許可してもらう

 メッセージとファイルの保存期間を設定する機能を活用(有料アカウントのみ)する
例えばアップロードしたファイルの保存期間を1日にすることで、最低限1日だけの猶予をもらうように交渉する(その間にモバイルの紛失しなければw)