birdpixyさんの投稿一覧
SNSの暗号化はSNSが実行しますが、KMSの認可は「リクエストの主体(Lambda実行ロール)」も含めて評価されるため、Lambda側にもKMS権限が必要です。
SNSのサーバーサイド暗号化(SSE)では、メッセージがトピックに到達した時点で暗号化されます。
この暗号化処理の流れは以下のようになっています。
1.Lambda関数がSNSにパブリッシュする
2.SNSがメッセージを受け取る
3.SNSがKMSに対してデータキー生成を要求
4.データキーでメッセージを暗号化して保存する
3でKMSを呼び出すのはSNSですが、その呼び出しが許可されるかどうかは、SNSプリンシパルおよびパブリッシュを行ったプリンシパル(=Lambda実行ロール)の両方の権限に基づいて判定されます。そのため、Lambda実行ロールにKMSカスタマーマネージドキーの利用を許可する権限が必要です。
https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-file-systems.html
AWS公式にもS3AとHDFSを使用すると書いてありました。
Amazon EMR および Hadoop は通常、クラスターを処理するときに以下のうち少なくとも 2 つのファイルシステムを使用します。HDFS と S3A は、Amazon EMR で使用される 2 つの主なファイルシステムです。
EMR-7.10.0以降、EMRからS3への接続はEMRFSからS3Aがデフォルトになったようですので、教科書の情報が古いのだと思います。
https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-s3a-migrate.html