ヤマムギ

growing hard days.

*

kintoneでEveryoneに権限が設定されているアプリをAWS Lambdaで一括チェックする

   

こないだ、kintone Cafeでユーザーが自由に作成している環境だと、どんなアクセス権設定をしているのか見えないのが、ガバナンス的に課題ですな〜みたいな話をしてましたので、とりあえず簡易的にチェック出来るものをAWS Lambdaで作ってみました。

コードはこちらGithubです。

ランタイムはPython3.6です。

ドメインのアプリ一覧を取得

k/v1/apps.jsonでドメインのアプリ情報一覧を取得します。

Headerにはユーザー認証で

単体のアプリに対してのAPIではないので、APIトークンは使えないので、ユーザー認証を使います。

X-Cybozu-Authorizationにbase64エンコードした、「ユーザーID:パスワード」をセットします。

レスポンス

appsにアプリごとの情報が配列で最大100件返ります。

1度に100件なので

雑ですが、とりあえず10万アプリまで(タイムアウトするんじゃ。。。。)

なので、offsetで0件目から、100件目から,200件目からと順番に取得するようにしてます。

アプリごとに実処理をするLambdaに情報を渡す

実処理をするLambdaにappの情報を渡して非同期で実行しています。

実処理するLambdaでアプリのアクセス権を取得

/k/v1/app/acl.json?app=でアクセス権を取得します。

Headerは先ほどと同じユーザー認証です。

レスポンス

rightsの配列にアクセス権設定が返ります。

組織のポリシーにもよると思いますが、今回はデフォルトで設定されているEveryoneがそのままのアプリを抽出したいと思います。
(Everyoneが悪いというわけではありません。が、本当はアクセス権を限定したいアプリでEveryoneを外すのを忘れているケースもあるかなと思いまして)

詳細はコードを見ていただければと思いますが、
あとは、このレスポンスを辿って、recordViewableとか、recordEditableとかがTrueになっているかをチェックして、Slackに投稿します。

通知出来ました!

環境変数

ご参考にされる場合の環境変数を記載しておきます。

  • SLACK_URL : SLACKのWebhook URL
  • CHANNEL : SLACKのチャンネル
  • KINTONE_ID : kintoneの管理者ID
  • KINTONE_PASSWORD : kintoneの管理者パスワード
  • KINTONE_DOMAIN : kintoneのドメイン(xxx.cybozu.comまで全部)
  • LOG_LEVEL : INFOとかDEBUGとか
  • LAMBDA_NAME : アプリ一覧を取得する方のLambdaのみに設定、実処理をするLambdaの名前

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS, kintone , , ,

ad

ad

  関連記事

API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート

SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …

DynamoDB Accelerator(DAX)のサンプルアプリケーション(Python)を実行

DynamoDBデベロッパーガイドのDynamoDB Accelerator(D …

Amazon CloudWatch Syntheticsでハートビートモニタリングを実行

このブログに対してハートビートモニタリングのCanaryを実行してみました。 C …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を執筆いたしました

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」という本の第 …

AWS CLIからIAM Identity CenterへサインインしてCodeCommitのリポジトリを使用する

Macで操作しました。 AWS CLIバージョンアップ [crayon-66a4 …

Cybozu Days 2021「WeWork Japanが kintoneの導入ショック期を越え、利用定着するまで」セッションを観ました

2021/11/1のCybozu Days 2021に来ました。 初日のみの参加 …

S3署名付きURL(GetObject)生成後にオブジェクトを上書きアップロードしたら

ダウンロードリクエストを実行したタイミングのオブジェクトがダウンロードされるので …

AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認

AWS Systems Manager Run CommandからEC2 Lin …

AWS Organizationsからアカウントを新規作成してみて

AWS Organizationsでアカウントを新規作成することがありましたので …

RDS ProxyをAurora MySQLで

Lambda関数をたくさん同時実行してMySQLにアクセスしても大丈夫なようにR …