0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Amazon Connect】Emergency Accessのあれこれ

Last updated at Posted at 2025-03-11

はじめに

Amazon Connectを利用する際に、運用上Emergency Accessを利用せざるを得ないケースもありますが、その際に仕様を理解すべく調査を行ったのでその備忘です。

Emergency Accessとは

Amazon Connectに対する緊急用のログイン手段としてEmergency Accessが提供されています。
Emergency Accessを実施するにはAWSアカウントの認証情報が必要で、マネジメントコンソール等からアクセスすることになります。この方法でログインしたユーザーは、Amazon Connect上で全権限を持つことになるためあくまでも緊急用のアクセス手段という位置付けになります。

image.png

仕組み

Emergency Access用のリンクは以下のようなものになっています。(一部塗りつぶし)

https://ap-northeast-1.signin.aws.amazon.com/oauth?client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Flily-onboarding&code_challenge={================}&code_challenge_method=SHA-256&response_type=code&redirect_uri=https%3A%2F%2Fap-northeast-1.console.aws.amazon.com%2Fconnect%2Fv2%2Ffederate%3Fadmin%3Dtrue%26arn%3Darn%253Aaws%253Aconnect%253Aap-northeast-1%{この辺りにインスタンス情報}%26isauthcode%3Dtrue%26oauthStart%{==============}%26state%3DhashArgsFromTB_ap-northeast-1_{===============}

このリンクからEmergency Accessの流れとしては

  1. AWSのサインインエンドポイントへアクセス
  2. IAMユーザーの認証を実施
  3. フェデレーションユーザーとして対象のAmazon Connectへログイン

となっていることがわかります。

IAMロールでのアクセス制限

Emergency AccessはIAMロールに拒否ポリシーを付与することで制限することが可能です。(参考

制限するポリシーはconnect:AdminGetEmergencyAccessTokenです。(Amazon Connectの管理者ガイド では"connect:GetFederationTokens"と記載がありますが現在必要な権限は変更されています)

これは前章で記載の通り、IAMユーザーからフェデレーションを実施してAmazon Connectにログインが行われることに対してフェデレーションを制御するものになります。

例えば特定のユーザーのEmergency Accessを制限するIAMポリシーは以下のようになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyEmergencyAccess",
            "Effect": "Deny",
            "Action": "connect:AdminGetEmergencyAccessToken",
            "Resource": "*",
            "Condition": {
                "StringEqual": {
                    "aws:userid": "{ユーザーID}"
                }
            }
        }
    ]
}

ユーザーの判別

Emergency Accessを実施した際に「どのIAMユーザーがEmergency Accessを実施して操作を行ったのか」が分かるのかを検証しました。

Amazon Connectの画面上における表示

①IAMユーザー=Connect1
image.png

②IAMユーザー=Connect2
image.png

別のIAMユーザーとしてEmergency Accessを実施した場合でもAmazon Connectの画面上からは同じユーザー名が表示されていました。
ただ、ログイン状態が競合することはなく双方で同時に操作を実施することができました。

CloudTrailにおける判別

①IAMユーザー=Connect1
image.png

②IAMユーザー=Connect2
image.png

Emergency Access実施後はIAMユーザー毎に一定のユーザー名で証跡が記録されていることが分かります。
ただし AdminGetEmergencyAccessTokenのイベントレコードとその後のAmazon Connect上での操作のイベントレコードを紐づけるような情報は確認できませんでした。

そこで、同一IAMユーザーが一度マネコンからログアウトした後に再度ログインしてEmergency Accessを試みた場合の証跡についても確認しました。

①-2 IAMユーザー=Connect1 <再ログイン>
image.png

結果として、1度目と同様のユーザー名(c8b487...)が記録されていることが分かりました。
つまり、Emergency Access実施時にCloudTrail上に記録されるユーザー名とIAMユーザーのマッピングさえ把握できていれば、「誰がEmergency AccessユーザーとしてAmazon Connect上の操作を行ったか」は検証可能であることが分かりました。

まとめ

Emergency Accessは

  • AWSアカウントへのログイン認証をもとに全権限をもつフェデレーションユーザーとしてログインを許可するものである
  • IAMポリシーにより実施の可否は制限可能
  • CloudTrail上で誰がEmergency Accessを実施して操作したのかを判別することが可能
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?