会員登録すると
学習することができます。
会員登録する(無料)
学習することができます。
登録済みの方はこちら
ログイン
学ぶ目的
保存時と転送時の暗号化
データは、置いてあるとき(保存時)と、送っているとき(転送時)の両方で守ります。転送時は TLS(HTTPS)で暗号化します。保存時は、S3・DynamoDB・EBS などの暗号化の機能を使います。
KMS とエンベロープ暗号化
AWS KMS は、暗号化の鍵を作って守るサービスです。KMS の鍵そのものは KMS の外に出ません。KMS の Encrypt で直接暗号化できるのは 4,096 バイトまでなので、大きなデータはエンベロープ暗号化で守ります。
1. GenerateDataKey で、データキーの平文と、KMS の鍵で暗号化したデータキーを受け取る
2. 平文のデータキーでデータを暗号化し、平文のデータキーはすぐ消す
3. 暗号化したデータキーを、データと一緒に保存する
4. 読むときは、暗号化したデータキーを KMS の Decrypt で戻し、データを復号する
S3 の暗号化の方式
- SSE-S3 … S3 が管理する鍵。既定で使われる
- SSE-KMS … KMS の鍵。誰が鍵を使ったかが CloudTrail に残り、鍵のポリシーで使える人を絞れる
- SSE-C … 利用者がリクエストごとに鍵を渡す
- クライアント側の暗号化 … アプリが暗号化してから送る
秘密情報の置き場所
- Secrets Manager … データベースのパスワードなどを置き、Lambda を使った自動のローテーション(定期的な入れ替え)ができる
- Systems Manager Parameter Store … 設定の値を階層の名前で置く。SecureString にすると KMS で暗号化される
パスワードは、コードにも環境変数の平文にも置かず、実行のときに取り出します。証明書は AWS Certificate Manager(ACM)で発行し、更新を任せられます。
このレクチャーで学ぶこと
- 保存時と転送時の暗号化
- KMS のエンベロープ暗号化の手順
- S3 の暗号化の方式の違い
- Secrets Manager と Parameter Store の使い分け
質問
まだ質問は投稿されていません。
質問投稿
ログイン後に質問の投稿ができます。
#1
未完了
認証と認可 ― Cognitoのユーザープールとアイデンティティプール、APIの守り方
#2
未完了
暗号化と秘密情報 ― KMSのエンベロープ暗号化、Secrets ManagerとParameter Store
#3
未完了
AIサービスを安全に組み込む ― アクセスの管理、入力と出力の制御、エージェントとログ
#4
未完了
デプロイの準備とテスト ― SAM・CloudFormation・CDK、エイリアスと環境ごとの設定
#5
未完了
CI/CDとデプロイ方式 ― CodePipeline・CodeBuild・CodeDeployとカナリア・ロールバック
#6
未完了
監視とトラブルシューティング ― CloudWatchのログ・メトリクス・アラームとX-Rayのトレース
#7
未完了
最適化 ― キャッシュ、再試行と指数バックオフ、Lambdaのメモリと同時実行
#8
未完了