catch-img

Prisma CloudのAPI使用に関する最初の注意点

みなさんこんにちは!Prisma Cloud製品担当SEの川口です。

今回はPrisma CloudでAPIを使用する際、最初の注意点について、簡単ですが書いておきたいと思います(基本的にPythonについての記述になります)。



目次[非表示]

  1. 1.Prisma CloudのAPIって、どうやって使うの?
  2. 2.Try the API
  3. 3.まず初めに
  4. 4.ただしわからないところが
  5. 5.ではどうするのかというと
  6. 6.たとえばユーザリストを取得したい場合




Prisma CloudのAPIって、どうやって使うの?

 以下URLにあるAPIリファレンスににサンプルコード付きで記載されています。

 https://api.docs.prismacloud.io/reference


Try the API

 その中で、REST APIのURLがhttps://api.prismacloud.ioである場合、APIドキュメントから直接Prisma Cloud REST APIのほとんどを試すことができます。

 しかし残念ながら弊社の環境はhttps://api.anz.prismacloud.ioのため使用できませんでした・・・。


まず初めに

(1)アクセスキーを作成

 PrismaCloud本体側のUIから、「設定」→「アクセスキー」を選んで新規作成します。





 この時Secretが表示されるのは最初の1回だけなので注意してください!



(2)JWTのトークンを取得する


 import requests


 url = https://api.anz.prismacloud.io/login


 payload = "{

     \"username\":\"ACCESS_KEY_ID\",

     \"password\":\"SECRET_KEY\“

      }“


 headers = {

      'accept': "application/json; charset=UTF-8",

       'content-type': "application/json; charset=UTF-8"}


 response = requests.request("POST", url, data=payload, headers=headers)


 print(response.text) ←これは無くてもOK

 ここで(1)で取得したAccess key idをACCESS_KEY_IDにとSecret keyをSECRET_KEYに記入してペイロードに入れておくことで認証が可能になります。


ただしわからないところが

APIリファレンス(https://api.docs.prismacloud.io/reference)には、リクエストヘッダーにx-redlock-authとContent-Typeは必須である旨が記載されているんですが、肝心のリクエストヘッダーにx-redlock-authを使用するサンプルコードがないため、パッと見分かりずらいです。たぶんですがマニュアル見ただけだと無理ではないかと思います(自分は無理でした・・・)。


ではどうするのかというと

まず最初にjsonライブラリをインポートしておきます。


 import json


で、ヘッダーを定義して(この段階では空欄でOKです)


 redlock_api_headers = { 'Content-Type': 'application/json', 'x-redlock-auth': '', 'cache-control': 'no-cache’ }


最初に取得したJWTからtokenを取り出して、ヘッダーに入れます(jsonをimportしておかないとエラーになるので注意)


 redlock_api_headers['x-redlock-auth'] = json.loads(response.text)['token’]


そのあと任意のAPIを定義しますが、リクエストヘッダーはAPIごとに違うので最初の定義の段階で宣言しておきます。


たとえばユーザリストを取得したい場合

Prisma Cloudに設定したユーザリストを取得したい場合は


  import requests

  url = "https://api.anz.prismacloud.io/v2/user"

  headers = {‘accept’: ‘*/*‘} ←これ

  response = requests.request("GET", url, headers=headers)


なので


redlock_api_headers = {'accept': '*/*’, 'Content-Type': 'application/json', 'x-redlock-auth': '', 'cache-control': 'no-cache’ }

として、定義しておいてtokenを入れればOKです!

(当然ですが、 requestの中でのヘッダーの変数は合わせてください)


以上簡単ですが、Prisma CloudでAPIを使用する際、最初の注意点について記載させていただきました!なにかご不明点ございましたら、お気軽にお問合せください。


関連記事

  “PRISMA”とは? ネットワンパートナーズ株式会社ブログサイト


川口 将生(かわぐち まさお)

川口 将生(かわぐち まさお)

ITインフラ・セキュリティのエンジニアです。
ご不明な点はお気軽に
お問い合わせください
ソリューション・カタログは
こちら