勉強
AWS SDKとは
- AWSサービスをプログラムから操作できるSDK
- 各サービスで提供されているAPIをwrapしたもの
- 通信はHTTP/HTTPS
- 各種言語向けのSDKが用意されている
種類
プログラミング言語
Java, .NET, Node.js, PHP, Python, Ruby, ブラウザ, Go, C++
※AWS SDK for Pythonについてはboto3と特別に呼ばれている。気になったので調べたところ、アマゾンカワイルカにちなんでつけられたよう。
https://reboooot.net/post/why-boto/
プラットフォーム
Android, iOS, ReactNative, MobileWeb
用途
- AWSリソースのコントロール
- インフラ構築/運用の自動化
- EC2やRDSといったAWSリソースをプログラムから操作する
- SDKによってサポートするサービスが異なるため注意
- アプリケーション的なサービスを利用する場合に使う
- アプリケーションの一部として組み込む
- S3にデータを保存したり、DynamoDBやSQSへのデータ入出力など
セキュリティについて
- プログラム内に認証情報を書き込まない
- GitHubなどに公開してしまうミスが多い
- エンドユーザ/デバイス毎に異なる認証情報を提供すべき
- 不正利用発覚時に不正ユーザのみ権限を停止
- 認証情報は期限が来たら無効化されるべき
- 認証情報の管理方法
- EC2上で動かす場合、IAMロール
- モバイルアプリの場合、Cognito
- それ以外の場合、shared Credential File(/.aws/credentials)で個別設定