ヤマムギ

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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

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

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

 - AWS, kintone , , ,

  関連記事

EC2 Windows インスタンス PowerShellでメタデータを見る

Linuxインスタンスならcurlコマンドで確認すればいいのですが、Window …

Amazon Location Service入門ワークショップ-ジオコーディング

ジオコーディングにより住所を緯度経度に変換したり、逆に緯度経度から住所を求めたり …

VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した

2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …

ハンズオン: グローバルインフラストラクチャ & API ~AWS認定デベロッパーアソシエイト(DVA-C02)~

このブログは2026年6月29日翔泳社さんより発売される「AWS教科書 AWS認 …

EC2:RunInstances APIにリクエストしてEC2インスタンスを起動(署名バージョン4、Postman)

AWSのAPIリクエストってHTTPでもよかったですよね?って思って、確認のため …

VyOSにSSMエージェントをインストールしました

VyOSにSSHでログインするのも面倒なので、SSMエージェントをインストールし …

「Fin-JAWS 第14回 Fin人類育成計画」で話させていただきました!

「Fin-JAWS 第14回 Fin人類育成計画」で話させていただきました。 久 …

AWS Lambda(Python)からZoom投票作成

以前、Zoomの投票(アンケート)をAPI経由で作成するというブログで書きました …

Amazon LinuxにAlfresco Community Editionをインストールする

ダウンロード準備 Alfresco公式サイトで、「エンタープライズコンテンツ管理 …

AWS Transit GatewayのAcceleratedサイト間VPN接続確認

Transit GatewayでVPN接続を作成するときに、Global Acc …