この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
SORACOMには、開発者向けにAPIが提供されています。
本記事では、このAPIを使って、SORACOM認証情報を削除してみました。 AWSアクセスキーをローテーションしたあと、不要になったSORACOM認証情報を削除する場面を想定しています。
おすすめの方
- SORACOM APIを使いたい方
SORACOM APIを使う準備
- SAMユーザの作成
- SAMユーザのアクセス権限を付与
- SAMユーザの「認証キーID&認証キーシークレット」を取得
上記については、次のブログを参考に行います。
なお、今回のアクセス権限は下記となります。
{
"statements": [
{
"api": [
"Credential:deleteCredential"
],
"effect": "allow"
}
]
}
SORACOM APIで認証情報を削除する
いまの認証情報を確認する
今回は「foobar-20220722」を削除します。
利用するAPI
次のAPIを利用します。
- DELETE /credentials/{credentials_id}
Pythonスクリプト
次のスクリプトを使います。内容的には、SORACOM APIを使うためのAPIキーを取得して、認証情報の削除APIにアクセスしています。
お試し実装のため、下記となっています。本番運用時には適宜検討し、実装してください。
- APIトークンの有効期限はデフォルト設定です。
- レートリミットの考慮をしていません。
app.py
import json
import requests
from typing import Tuple
SORACOM_ENDPOINT = 'https://api.soracom.io/v1'
SORACOM_KEY_ID = 'keyId-aaa'
SORACOM_SECRET = 'secret-bbb'
SORACOM_CREDENTIAL_ID = 'foobar-20220722'
def main():
api_key, token = get_token()
delete_credentials(api_key, token)
def get_token() -> Tuple[str, str]:
headers = {'Content-Type': 'application/json'}
data = {
'authKeyId': SORACOM_KEY_ID,
'authKey': SORACOM_SECRET,
}
resp = requests.post(f'{SORACOM_ENDPOINT}/auth', headers=headers, data=json.dumps(data))
d = resp.json()
return d['apiKey'], d['token']
def delete_credentials(api_key: str, token: str) -> None:
headers = {
'Content-Type': 'application/json',
'X-Soracom-API-Key': api_key,
'X-Soracom-Token': token,
}
resp = requests.delete(
f'{SORACOM_ENDPOINT}/credentials/{SORACOM_CREDENTIAL_ID}',
headers=headers,
)
print(resp)
if __name__ == '__main__':
main()
スクリプトを実行する
python app.py
SORACOM認証情報を削除できました。
さいごに
SORACOM APIで認証情報の削除ができました お掃除の自動化ができそうです。