Posted at

ECSのタスク定義に設定したタスクロールが効かないとき


現象

アプリケーションからJavaのSDK経由で利用するサービスのポリシーを設定したロールを、ECSのタスク定義に設定してもアクセス拒否されてしまいます。

設定内容は以下のようになっている。(S3のフルアクセスを許可した場合)

スクリーンショット_2019-03-15_10_40_36.png

スクリーンショット_2019-03-15_10_40_50.png


エラーメッセージ

Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: FF8E926F25943A13)

at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1219) ~[aws-java-sdk-core-1.10.32.jar:?]
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:803) ~[aws-java-sdk-core-1.10.32.jar:?]
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:505) ~[aws-java-sdk-core-1.10.32.jar:?]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:317) ~[aws-java-sdk-core-1.10.32.jar:?]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3595) ~[aws-java-sdk-s3-1.10.32.jar:?]
at com.amazonaws.services.s3.AmazonS3Client.getObject(AmazonS3Client.java:1116) ~[aws-java-sdk-s3-1.10.32.jar:?]


解決方法

ECSタスクロールが追加されたのが比較的最近らしく、SDKもアップデートしないと利用できないみたいです。

ちなみに今回エラーが発生したときのバージョンが「1.10.X」でした。

今回のJava用のSDKだと、「1.11.16」以上にすれば解決します。

ただ、バージョンを新しくすることによる弊害も出ると思うので、慎重に行うようにしてください。