特定許可セットでサインインしたときにREADME的なページを見せたい【AWS IAM Identity Center】
特定の許可セットでAWSアカウントにサインインしたときに、 「README的なページをまず見ていただく」ような仕組みを作りたいです。 READMEにはAWSアカウント利用のガイダンスや、 特定操作の案内を記載しておきたいです。
課題解決には リレーステート が役に立ちそうです。 これは許可セットの1パラメータです。 リレーステートを使うことで、 サインインした際に特定ページへリダイレクトできます。
ただし、このリレーステートで指定する URL は、AWSマネジメントコンソール内にある必要があります。 つまり、組織内で管理しているドキュメントサイト(Backlog wikiなど)には遷移できないです。
注記 リレーステート URL は AWS Management Console内にある必要があります。
そこで今回はCloudWatchダッシュボードを使って READMEページを見せるように仕組んでみようと思います。 完成形(実現したい流れ)は以下のようなイメージです。
セットアップする
CloudWatch ダッシュボードを作成する
特定許可セットと紐づくメンバーアカウント上にCloudWatchダッシュボードを作成します。
今回はCloudFormation(AWS::CloudWatch::Dashboard)から作成しました。
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::LanguageExtensions Parameters: DashboardName: Type: String Default: "README" Resources: CWDashboard: Type: AWS::CloudWatch::Dashboard Properties: DashboardName: !Ref DashboardName DashboardBody: Fn::ToJsonString: widgets: - type: "text" x: 0 y: 0 width: 21 height: 19 properties: markdown: | # README はじめに見てください。 - [クラスメソッド発「やってみた」系技術メディア | DevelopersIO](https://dev.classmethod.jp/)
上記テンプレートを展開して、CloudWatchダッシュボードを作成します。 本ブログではダッシュボード名は README
で進めます。
ダッシュボードのURLをメモしておいて、次に進みます。
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#dashboards/dashboard/README
許可セットを更新する
ダッシュボードを見せようと思っている許可セットを更新します。
更新点は以下2点です。
リレーステートの更新
リレーステートURLを先ほどメモした「ダッシュボードへのリンク」にします。
GetDashboard 許可の付与
ダッシュボードを見るための権限を付与しておく必要があります。 以下のようなインラインポリシーを設定しました。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard" ], "Resource": [ "arn:aws:cloudwatch::*:dashboard/README" ] } ] }
確認する
IAM Identity Center ポータルにログインして、 設定した許可セットでアクセスしてみます。
コンソールアクセス後、自動遷移してダッシュボードを表示できました。
おわりに
以上、許可セットのリレーステート活用例でした。 今回はCloudWatchダッシュボードを使いましたが、他に良い方法があれば教えていただければ嬉しいです。
複数アカウントへ割り当てられている許可セットの場合は、 CloudFormation StackSet を使って一括でCloudWatchダッシュボードを展開すると良いでしょう。
以上、参考になれば幸いです。