特定の許可セットで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ダッシュボードを展開すると良いでしょう。
以上、参考になれば幸いです。