Edited at

【AWS勉強】AWS SDK 概要


勉強


AWS SDKとは



  • AWSサービスをプログラムから操作できるSDK

  • 各サービスで提供されているAPIをwrapしたもの

  • 通信はHTTP/HTTPS

  • 各種言語向けのSDKが用意されている


BlackBelt


種類


プログラミング言語

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)で個別設定