Skip to content

2025/02

AWS Organizations へ 既存の AWS アカウントを追加する

新規に AWS アカウントを作成すると、通常はスタンドアロンアカウントになります。 スタンドアロンアカウントはアカウント毎に「請求情報を管理する」「ユーザ権限を管理する」必要があります。 組織や企業で AWS を利用し、アカウント数が増えてくるとスタンドアロンアカウントでは集中管理出来ず、管理コストが大きくなります。

AWS Organizations を使うと「ひとつの管理アカウント」と「複数のメンバーアカウント」に分けて集中的に AWS アカウントを管理することが出来ます。 請求は全て「管理アカウント」に対して行われます。

また、スタンドアロンアカウントは新規作成時に「認証」「請求情報の入力」が必須になり、手間と時間がかかります。 対して AWS Organizations にメンバーアカウントを追加する際は請求情報などの入力は不要である為、非常に簡単です。 メンバーアカウントは「新規追加 (作成) する」ことも出来ますが、「既存のスタンドアロンアカウントを追加する」ことも可能です。 今回は「AWS Organizations へ既存のスタンドアロンアカウントを追加する」手順をメモしておきます。

mise + uv + ruff + task + mypy で Python 環境を構築する

以下のツールを組み合わせて Python 環境を構築する為の準備手順をメモしておきます。

ツール 対象 概要
mise なんでも 各種ツールのバージョンマネージャ
Task なんでも タスクランナー
uv Python ライブラリを管理するパッケージマネージャ
Ruff Python 静的コード解析ツール
mypy Python 型チェックツール

AWS で IAM ユーザに請求情報へのアクセス許可を付与する

AWS で root ユーザ以外の IAM ユーザが請求情報にアクセスする為にはアカウント情報の設定変更が必要になります。 今回は「アカウント設定を変更し、IAM ユーザでも請求情報にアクセス出来る設定変更手順」をメモしておきます。 勿論、リスクもありますので自己責任で設定してください。

Python で BOX へ JWT 認証ログインするサンプルスクリプト

Python から BOX へアクセスする方法は以下などが考えられます。

No. 方法 GitHub ページ 補足
1 REST API を直接、呼び出す - 抽象化されていない為、利用がやや大変
2 Pythoh SDK を利用する Box Python SDK サポート終了予定
3 Python SDK (Generated) を利用する Box Python SDK GENERATED 今後の主流?

2 番目の Python SDK は Python SDK (公式サポート終了) のインストール ページで以下のように記載されており、サポート終了予定です。 今後、積極的に利用するのは躊躇われます。

Python SDKは、現在メンテナンスモードであり、まもなく公式サポートが終了する予定です。つまり、実装されるのは重要なセキュリティ更新プログラムとバグ修正のみになります。自動生成されたPython SDKを使用することをお勧めします。

3 番目の Python SDK (Generated) は Python SDK (Generated) のインストール ページで以下のように記載されています。

Pythonプロジェクトでは、自動生成されたBox Python SDKを使用してBox APIを呼び出すことができます。この次世代のSDKには、開発者エクスペリエンスを向上させ、Boxコンテンツクラウドとの統合を効率化することを目的とした新機能が備わっています。

今回は Python SDK (Generated) を利用し、Python から Box へ JWT 認証ログインするサンプルスクリプトをメモしておきます。

Python を mise でインストールし、uv の venv で仮装環境を管理する

asdf と似たバージョンマネージャに mise があります。 about には mise の特徴として 3 点、挙げられています。

Its functionality is grouped into 3 categories described below.

mise installs and manages dev tools/runtimes like node, python, or terraform both simplifying installing these tools and allowing you to specify which version of these tools to use in different projects. mise supports hundreds of dev tools.

mise manages environment variables letting you specify configuration like AWS_ACCESS_KEY_ID that may differ between projects. It can also be used to automatically activate a Python virtualenv when entering projects too.

mise is a task runner that can be used to share common tasks within a project among developers and make things like running tasks on file changes easy.

今回は mise を使って Python をインストールし、更に mise と uv を連携させ、uv で作成した venv 環境を利用する手順をメモしておきます。 尚、公式サイトには mise と Python を組み合わせて利用する際の設定例が記載された Mise + Python Cookbook というページもあります。