![[アップデート] Amazon Quick 管理設定のサービスロールが API で切り替えれるようになりました](https://images.ctfassets.net/ct0aopd36mqt/2x7muHjvW69fxuVNSKWZHp/b37e05a972fc8125e9214abd764928fa/amazon-quick.png?w=3840&fm=webp)
[アップデート] Amazon Quick 管理設定のサービスロールが API で切り替えれるようになりました
いわさです。
AWS CLI の更新履歴に、Amazon QuickSight(現在の Amazon Quick)の API 追加がありました。
なんだこれは。
Amazon QuickSight adds APIs to view account service role settings and switch to or replace a customer-managed IAM role.
気になったので使ってみました。
やってみた
今回のアップデートですが、describe-resource-permissionsとupdate-resource-permissionsの 2 つが新規 API として追加されています。何が取得できるのでしょうね。
リージョンは us-east-1 で指定しました。
$ aws quicksight describe-resource-permissions --aws-account-id <AWS アカウント ID> --region us-east-1 --output json
{
"Status": 200,
"RoleType": "CUSTOMER_MANAGED",
"CustomerManagedRoleArn": "arn:aws:iam::<AWS アカウント ID>:role/hoge-quicksight-service-role"
}
hoge-quicksight-service-roleか、あーなるほど!
これはですね... Amazon Quick から S3 や Athena、Secrets Manager などサービスとして様々な AWS サービスにアクセスするのですが、その時に使われるサービスロールみたいなやつです。
管理画面の以下から設定が出来ます。

これです!!

私は普段から Amazon Quick ではカスタムロールを使うので、このカスタマーマネージドロールが既に設定されている状態で、先ほどの API でこのロールが取得できました。
なお、私の Amazon Quick 環境はホームリージョンが東京ですが、どうやらこの API はバージニア北部のエンドポイントじゃないと呼べないみたいです。グローバル系なのかな。
同じコマンドを東京(ap-northeast-1)で実行すると、次のように拒否されました。
$ aws quicksight describe-resource-permissions --aws-account-id <AWS アカウント ID> --region ap-northeast-1 --output json
aws: [ERROR]: An error occurred (AccessDeniedException) when calling the DescribeResourcePermissions operation: This operation is not accessible to AwsAccount <AWS アカウント ID>
AWS API のドキュメントにはホームリージョンで使うように書いてあるのですが...なんか挙動と違いますね。
Call this operation in the Amazon Web Services Region where your Amazon Quick Sight account is registered (the home Region).
さて、ということはもうひとつの API でこの設定値を変更できるってことみたいですね。やってみますか。
カスタムロールを設定済みだったので、これをデフォルトである Amazon Quick マネージドロールに戻してみます。
$ aws quicksight update-resource-permissions --aws-account-id <AWS アカウント ID> --region us-east-1 --role-type QUICKSIGHT_MANAGED --customer-managed-role-arn arn:aws:iam::<AWS アカウント ID>:role/hoge-quicksight-service-role --output json
aws: [ERROR]: An error occurred (InvalidParameterValueException) when calling the UpdateResourcePermissions operation: UpdateResourcePermissions does not support switching to a QuickSight-managed role.
does not support switching to a QuickSight-managed roleと出てますね。Quick マネージドロールへの切り替えはサポートされていない。
AWS CLI 2.39.5 の help にも、同じ内容の記述がありました。
You can't use this operation to switch back to a role managed by Amazon Quick Sight.
ただ、Quick 管理コンソールから手動で Quick マネージドロールに戻すことは出来ます。謎です。

では、今度は Quick マネージドロールからカスタムロールに切り替えてみましょうか。
$ aws quicksight update-resource-permissions --aws-account-id <AWS アカウント ID> --region us-east-1 --role-type CUSTOMER_MANAGED --customer-managed-role-arn arn:aws:iam::<AWS アカウント ID>:role/hoge-quicksight-service-role --output json
{
"Status": 200,
"RoleType": "CUSTOMER_MANAGED",
"CustomerManagedRoleArn": "arn:aws:iam::<AWS アカウント ID>:role/hoge-quicksight-service-role"
}
お、今度は成功しました。
コンソールを見ていると切り替わってます。

これは...何が嬉しいのかわからないですね。
Amazon Quick 環境のカスタム初期設定スクリプトみたいなのを作って運用したい場合は使えるとかだろうか。あまり多くは無さそうです。
describe-resource-permissionsは使えるかもしれないですね。権限周りのトラブルシューティングを行う際に、AI とかが今どんなサービスロールを使っているのか把握しやすくなりそうです。
さいごに
本日は Amazon Quick 管理設定のサービスロールが API で切り替えれるようになったので使ってみました。
使い所があまりイメージできなかったですが、ここも API 操作できるようになったんだなぁという感じですかね。









