使用教材
今回はAWS APIについて
AWS APIとは
- ES2やRDS、S3などすべてのAWSサービスを動作させるためのAPI
- APIを動かすためのツールとしてはマネジメントコンソール、SDK、CLIがある
マネジメントコンソール
・WebベースのAPI操作を提供している
・GUIで各種サービスの起動や設定をおこなっているが実はAPIを通して操作しているのと一緒
各種SDK
- プログラミング言語を使用してコマンドラインでAWSサービスの操作を可能にするツール
- JavaやPython、PHPなどの幅広い言語で操作可能
CLI
- SDKと同様にコマンドラインで操作できるツール
- ただし、プログラミング言語ではなくAWSコマンドというものを使用して操作をする
- 今回はこれを利用してParameterStoreやS3バケットの作成を実施した
<使用方法>
- ローカル端末にAWS CLIをインストール
- IAMから使用したいユーザの認証情報(Key ID、Acces Key)を作成
- 端末のターミナルから「aws configure」で初期設定
AWS Access Key ID [None]:作成したKey ID
AWS Secret Access Key [Nome]:作成したAcces Key
Default region name [Nome]: 使用したいリージョン
Default output format [None]: 表示フォーマット。json、yaml、YAMLストリーム出力形式、text、tableの5種類
- ちなみにEC2でAmazonLinuxを選択した場合、CLIについてはインストールされているが、configureの設定は必要
- ただし、実際の操作権限はEC2に紐づくポリシーでサービスにアクセスされるため注意が必要になる
- ちなみにポリシーの変更自体はEC2の再起動は必要なし
エラー表示
An error occurred (AccessDeniedException) when calling the GetParametersByPath operation:
User: arn:aws:sts::123456789012:assumed-role/your-app-role-name/i-xxxxxxxxxxxxxxxxx
is not authorized to perform: ssm:GetParametersByPath on resource:
arn:aws:ssm:region-name:123456789012:parameter/your/path/here/
because no identity-based policy allows the ssm:GetParametersByPath action
# 最後の業に「no identity-based policy allows」と出ている
別のIMAアカウントでもCLI操作できるようにしたい場合(2025/08/14追記)
- マネジメントコンソールから追加したいIAMユーザのキーペアを発行
- 引数に--profileとIAMユーザ名を追加してconfigureを実行する
C:\Users\rusername>aws configure --profile <<username>>
AWS Access Key ID [None]: ABCDEFGHIJKL
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json