RedshiftのIAM PolicyとWLM
先日、Redshiftの管理面 - まめ畑 でRedshiftの管理周りをざっくり書いたのですが、その中でIAM Policyの事も書いていました。
今日、IAM Policyの「Redshift readonly access」ではManagement ConsoleでQuery情報が取得できなくなっていました。
Query情報は
の様な、PerformanceタブやQueriesタブの中で、リソースの使用状況や実行計画、クエリ毎のリソース使用状況を確認出来るものです。
もともと、redshift:Describe* ではQuery情報を見ることが出来ず、redshift:get*を与えなければいけなかったのですが、急に「User: arn:aws:iam::xxx:user/xxx is not authorized to perform: redshift:ViewQueriesInConsole 〜」
というエラーが出てQuery情報だけが参照できなくなりました。
Forumとdocumentにも掲載が現在は無いのですが、現在は以下の様なポリシーを設定することで、RedshiftのQueryやPerformance・クラスタ状態を参照することが出来ます。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "redshift:Describe*", "redshift:ViewQueriesInConsole", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "sns:Get*", "sns:List*", "cloudwatch:Describe*", "cloudwatch:List*", "cloudwatch:Get*" ], "Effect": "Allow", "Resource": "*" } ] }
こちらは、cloudwatchやsnsにも参照権限を与えた場合です。
変更としては
"redshift:get*"
が
"redshift:ViewQueriesInConsole"
に変わりました。
Performanceは見せたいけど、クエリまでは見せたくないとかそういうために分けた気がします。
DescribeとViewと揃っていないのが気になりますが、用途は一応表してるかな…
他にもアナウンスはありませんでしたが、WLMを現在開くとQueue毎にTimeoutが設定出来るようになっています。リソースを取られたくないクエリを投げるQueueはTimeoutを短めにすることで、前よりはリソース割り当てに幅が出たかなという印象です。