阿里雲国際代理店: 阿里雲APIインタフェース呼び出しと鍵構成方法
クラウドコンピューティングやバックエンド開発に触れたばかりのクラスメートにとって、「APIインタフェースを呼び出す」ことは業務とクラウド資源を貫通するための必須の道である。スクリプトを書いて自動的にシャットダウンしたり、セキュリティグループを一括修正したり、阿里雲のOSSストレージや大モデルインタフェースを自分のシステムに統合したりしても、APIは欠かせない。
しかし、多くの人は暗号学名詞 (access key、Secret、HMAC-SHA1、署名アルゴリズムなど) を見ると頭が大きくなったり、配置が不適切で、誤って鍵をGitHubに漏らしたりしてサーバーがハッキングされて採掘され、被害が大きい。
今日のこのチュートリアルは白話であなたを全プロセスに連れて行きます
安全に鍵を取得する方法
,へ
ローカルで優雅に配置する方法
を選択します
最も簡単なコードで最初のAPI呼び出しを完了します
。
第一段階: 核心概念 (ドアの鍵を直接口にかけないでください)
手を出す前に、二つの核心概念を明らかにしなければならない
AK
そして
エスケー
。あなたのようなものです
クラウドidとパスワード
。
Access key ID (略称): あなたの「ユーザー名」に相当します。これは公開されていて、阿里雲に「私は誰ですか」と伝えるために使われています。
Access key Secret (略称SK): あなたの「パスワード」に相当します。「私は確かに私だ」と証明するために公開することはできません。
阿里雲のAPI要求ごとに、SKで要求内容を暗号化して署名する必要がある。阿里雲は要求を受けた後、同じアルゴリズムで検証して、合格してから釈放する。
🚨鉄則: メインアカウントのAK/SKを使わないでください!
もしあなたが直接阿里雲大上司の口座番号 (主口座番号) の鍵を使うと、この鍵はあなたの口座の下のすべての財産の最高の制御権を持っている。
正しいやり方:
「掃除僧」のようなサブアカウント (RAMユーザー) を作って、特定のことをする権限だけを割り当てて、このサブアカウントのAK/SKを使う。
第二段階: 安全取得鍵 (5分)
私たちはalibaba cloudの
RAM (アクセス制御)
を選択します。
1.RAMサブユーザーの作成
阿里雲コンソールにログインし、上部の検索バーにRAMを入力し、クリックしてアクセス制御コンソールに入ります。
左側のナビゲーションバーで、「id管理」-> 「ユーザー」をクリックします。
「ユーザーの作成」ボタンをクリックします。
重要なパラメータ構成: ログイン名: api-オペレータ-ossなどの意味のある名前を付ける (OSSインタフェースを呼び出すためにこのアカウントを表す)。表示名: OSSインタフェース専用アカウントなど。アクセス方法: ポイント! OpenAPI呼び出しアクセスをチェックする必要があります。「コンソールログイン」にチェックを入れる必要はありません。このアカウントはwebページにログインする必要がないからです。
「OK」をクリックしてください。画面に表示されます
この表には、access key IDとaccess key Secretが含まれています。
今すぐコピーしてローカルの安全な場所 (パスワードマネージャなど) に保存してください!> 注意: このSecretは今回だけ表示されます。ページを更新したり、ウィンドウを閉じたりすると、もう見えなくなります。なくしたら、削除して再構築するしかない。
2.人事に権限を与える (授権)
作成したばかりのサブアカウントは「白丁」で、何の権限もなく、直接インタフェースを呼び出すとエラーになります
User no t認証
。
先ほどのユーザーリストで、新規ユーザーを見つけ、右側の「権限の追加」をクリックします。
ライセンス範囲の選択: クラウドアカウント全体。
ポリシーを選択: 検索ボックスに呼び出すサービスを入力します。たとえば、サーバを制御したい場合は、ECSを検索し、「管理権限」または「「読み取り専用権限」をチェックします。最小権限の原則に従うことをお勧めします。何が必要なのか、簡単にAdministratorAccess (システム管理者) に直接渡してはいけません。
「Ok」をクリックすると、許可が完了します。
第3段階: 鍵のローカル構成 (ハードコードを拒否!) を参照してください
AK/SKを手に入れたら、千万円です。
しないで
直接コードに書かれて死んだ。いつかコードが公開倉庫に届いたら、全額の給料で請求書を提出するのを待っています。
業界標準のやり方は利用です。
環境変数
。
1. Linux/macOSの構成方法
端末を開いて、環境変数ファイルを編集します (例:
~/.Bashrc
または
~/.Zshrc
):
C e x c e x c e c o n t i o n c o n t i o n c o n t i o n c o n t i o n t i o n a t i o n a t i o n a t i o n a t i o n a t i o n a t i o n a t i o n a t i o n
C e x c e x c e c o n t e r c o n t i o n c o n t i o n c o n t i o n c o n t i o n c o n t i o n a t i o n a t i o n a t i o n a t i o n a t i o n a t i o n
保存後、実行します
Source ~/.bashrc
(または対応するファイル) 設定を有効にします。
2. Windowsの設定方法
このコンピュータを右クリックします。
「ユーザー変数」または「システム変数」で「新規」をクリックします。もう一つ新規作成しました。変数名: 0._ _ cloud _ access _ key _ secret、変数値: あなたのSKを入力します。
「Ok」をクリックして保存します。注意: 構成が完了したら、統合開発環境 (VS Coなど) を再起動する必要があります
De/PyCharm) またはコマンドラインウィンドウでは、そうでなければ新しい変数を読むことができません。
第4段階: 第1回API呼び出し実戦 (Pythonサンプル)
今、環境の準備ができました。私たちは最も推奨される方法で阿里雲公式のものを使います
V2.0 SDK
一回の呼び出しをします。ここでは、あなたのアカウントの下にあるすべてのECSサーバインスタンスを照会することを例にします。
SDKコアライブラリと対応する製品ライブラリをインストールする
ローカル端末で実行:
バッシュ
Pipインストルメントacloud_tea_openapi
Pipインストルメントacloud_ecs2014 06 = = 4.3.0
2.呼び出しコードを作成する
阿里雲のV2.0 SDKは非常に知能的で、私たちが配置した環境変数を自動的に読み取る
Alibaba cloud _ access _ key _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
そして
_ _ _ _ Access _ key _ secretを参照してください._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
コードに敏感な言葉は書かない。
インポートos
Import sys
From qq aclou _ ecs2014 Client import Client as ecs2014-12 Client
From acloud_tea_openapi import model as open_api_model
From qq acloud_ecs2014 import model as ecs_2014.00 _ model (c.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O
Class 0 apidemo:
@ 317method
Defcreate _ client() -> ecs2014-526client:
「」
アカウントClientの初期化
「」
# SDKは、環境変数からqq _ cloud _ access _ key _ idとqq _ cloud _ access _ key _ secretを自動的に取得します
Config = open_api _
Model.Config()
# あなたが呼び出す地域のドメイン名を選択します。例えば、杭州はcn-han、上海はcn-shanghaiです
Config.endpoint = f"ecs.cn-hangzhou.aliyuncs.com」
Returecs05526client (config)
@静的メソッド
Defmain ():
Client = b 0 apidemo.Create _ client()
# リクエストパラメータの構築 (現在の地域のECSインスタンスを照会)
Describe_instances_request = (
Ecs_31/526_model.Describeinstancesrequest (
Region_id = "cn-hangzhou"
)
)
トライ:
# 呼び出しを開始する
Response = client and scribe_interances (describe_interances_request)
# 返されたJSON結果を印刷する
& Nb
Sp; print("=== API呼び出しに成功し、結果は次の ===") を返します
Print (response.body)
Except Exception as error:
# エラーを優雅に処理する
Print (f "=== API呼び出し失敗 ===")
If hasattr(error, "message"):
Print (f "エラーメッセージ: {error.message}")
If hasattr(error, "code"):
Print (f "エラーコード: {error.code}")
If _ _ _ _ = = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
C 0 apidemo.main()
このコードを実行して、あなたのサーバーのインスタンスリストJSONデータを見たら、あなたはすでに阿里雲のAPIの扉を開けたことを示しています。
第五段階: 上級者の神仙ツール -- OpenAPI Explorer
コードを書きたくない場合や、あるインタフェースのパラメータがどのように入力されているか分からない場合、阿里雲は絶対的な「カンニング神器」を提供しています
OpenAPIポータル (OpenAPI Explorer)
。
ブラウザアクセス https://next.api.aliyun.com /
左側の検索ボックスに「クラウドディスクの作成」や「メールの送信」など、使いたい機能を入力します。
真ん中のフォームには、可視化インタフェースの入力ボックスでパラメータを直接入力します。
ポイント: webページの右側にある「SDKサンプル」タブページは、入力したパラメータに基づいてさまざまな言語のコードをリアルタイムで自動的に生成します (Python、Java、Go、Node.jsがあります)
)
Webページで「呼び出しを開始」を直接クリックして、インターフェイスから返された結果が間違っているのを見て、デバッグした後、右側のコードを直接あなたのプロジェクトにコピーすれば使えます。
ピットを避けるコツをまとめる
インタフェースを調整するのは難しくなく、細部と安全ではありません。最後に4つの避難所の錦嚢を送ります
権限の最小化: 読み取り専用にできる場合は読み書きをしないでください。特定の製品を制限できる場合はすべて選択しないでください。
コードの非暗号化: ソースコードにaccess _ keyの後ろに文字列がついているのを見て、環境変数から読み取るように書き換えた。
定期交代制: ビジネスプロジェクトのサブアカウントキーは、半年ごとにコンソールで無効にして、スタッフが退職したり、誤って漏洩したりしないようにすることをお勧めします。
Explorerを活用する: 公式の文字文書を無理にかじってはいけない、OpenAPIポータルに行って自動的に生成されたDemoコードを見ることが多く、回り道を減らすことができる。

