[Cloud] Automated Generation For OCI IAM Policies

原文はこちら。
https://blogs.oracle.com/developers/automated-generation-for-oci-iam-policies

OracleのCloud Developer Evangelistとして、Oracle CloudのサービスやOracle Cloudの提供機能で遊ぶことがよくあります。これはもちろんOCI (Oracle Cloud Infrastructure) Compute ConsoleのIdentity and Access Management (IAM) のセクションでかなり色々やっているということなのですけどね。
Overview of Oracle Cloud Infrastructure Identity and Access Management
https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm
IAMは非常に簡単なコンセプトで、他のクラウドベンダーのIAMを使ったことがあればご存知のことでしょう。IAMについては既に十分に説明されており、ドキュメントが簡潔でわかりやすいので、ここでは完全な概要を説明しませんが、想定より時間がかかってしまうタスクが、IAMポリシーの生成です。
Getting Started with Policies
https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm
OCIのIAMポリシーの構文は以下の通りです。
Allow <subject> to <verb> <resource-type> in <location> where <conditions>
構文自体はかなり簡単そうですね。そして実際にそうなのですが、よくある問題は、ポリシーの変数セクションに入れる値を覚えていなければならない、ということです。正確なグループ名、または使用可能な動詞とリソースタイプ、およびポリシーを適用したいコンパートメントの正確な名前を覚えておくのは面倒で、通常は2つまたは3つのタブを開いて正確な綴り、大文字/小文字を調べ、正しい動詞とリソースの種類を知るためにドキュメントをめくっています。そんなわけで、ポリシー生成にあたってもう少し楽にするために何かしようと決めました。そして、この問題に他にも苦しんでいる人がいらっしゃるのであればその方々に共有したいと考えました。

そこで、私のフラストレーションと怠惰から生まれた、OCIのIAMポリシー生成を支援する簡単なプロジェクトをご紹介します。このツールをコマンドラインから実行すると、各変数を選択するように求められます。あなたのOCIアカウントからの実際の値に基づいて利用可能な選択肢を選択できます。例えば、特定のグループを対象にしたポリシーの作成を選択した場合、このツールは選択可能なグループのリストを提示します。ツールには動詞やリソースタイプのリストが組み込まれているので、同様に選択することができます。毎回IAMポリシードキュメントを参照する必要はありません。以下はツールを実行中のイメージです。

コード自体は傑作ではありません。OCI CLIまたはSDKを介して公開されていないため、動詞やリソースタイプはハードコードされているからです。しかしながら動作し、ポリシー生成が少々楽になっています。ツール生成のコードはGitHubにありますので、ツールのアップデートや機能強化目的でプルリクエストを送ってください。
A simple Groovy tool to generate IAM policies for Oracle Cloud Infrastructure.
https://github.com/recursivecodes/oci-policy-generator
ツールはGroovyで書いているので、Groovyスクリプトまたはjava -jarを使って実行できます。もしバイナリを手に入れて試してみたいのであれば、最新のリリースを入手して試してみてください。
oci-policy-generator - releases
https://github.com/recursivecodes/oci-policy-generator/releases
このツールは、裏でOCI CLIを使用しており、必要に応じてOCI APIを照会しています。ポリシーを生成する前に、OCI CLIがマシンにインストールおよび設定されていることを確認しておく必要があります。
Command Line Interface (CLI)
https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm
外部の依存関係を最小限に抑え、プロジェクトをできるだけ軽量に保ちながら価値を提供するために、SDKではなくCLIを使用することにしました。それに、OCI CLIは非常に素晴らしいものなので、Oracle Cloudを使用する場合は、間違いなくそれをインストールし、それに精通している必要があります。

是非ツールをチェックいただき、何か質問やフィードバックがありましたらいつも通り(原文の)コメント欄にコメントをお願いします。

0 件のコメント:

コメントを投稿