EBSボリューム画面が「ボリューム情報の取得中にエラーが発生しました」になったときの対処方法

困っていた内容

ec2:DescribeVolumes のアクションをIAMポリシーで付与しましたがEC2マネジメントコンソールのEBSボリューム管理画面がエラーとなり、 「ボリューム情報の取得中にエラーが発生しました」または「An error occurred fetching Volume information」と表示されました。対処方法を教えてください。

どう対応すればいいの?

IAMポリシーで下記のアクションを追加して下さい。

ec2:DescribeAvailabilityZones

EBSボリューム画面を表示するにはボリューム作成時に指定された Availability Zone が必要とされるため、 Availability Zone を説明するアクションが求められます。

# 変更前
"Action": [
    "ec2:DescribeVolumes",
    "ec2:DescribeVolumeStatus",
    "ec2:DescribeVolumeAttribute"
],

# 変更後
"Action": [
    "ec2:DescribeVolumes",
    "ec2:DescribeVolumeStatus",
    "ec2:DescribeVolumeAttribute"
    "ec2:DescribeAvailabilityZones"
],

また、ビジュアルデザインを利用している場合は、DescribeAvailabilityZones の項目をチェック頂くとボリューム画面が表示されます。

やってみた

実際にやってみました。 最初にEC2マネジメントコンソールのEBSボリューム管理画面「ボリューム情報の取得中にエラーが発生しました」は以下になります。

まずはIAMポリシーのアクセス権限を開き、ポリシーの編集を押します。

次に、JSONとビジュアルエディタの2択を選択できます。どちらを利用しても結果は同じですので、ご利用頂きたい方法をご選択下さい。

  • JSONを利用の場合は以下のようにアクションを追加します。

  • ビジュアルエディタを利用の場合は以下のリストにチェックをします。

編集後、IAMポリシーを更新して、EC2マネジメントコンソールのEBSボリューム管理画面をご覧いただきますと下記通り、ボリュームが表示されます。

参考資料

Amazon EC2 コンソールで機能するサンプル ポリシー - 例: ボリュームの使用

最初のステートメントでは、ボリュームを作成するときにユーザーがアベイラビリティーゾーンを選択できるようにするため、ec2:DescribeAvailabilityZones アクションが必要です。