COLUMN
【Amazon Connect セキュリティ強化】IAM Identity Centerで簡単にMFAと接続元IP制限を実現する方法
Amazon Connectはクラウドベースのコンタクトセンターソリューションですが、標準でMFA(多要素認証)や接続元IPアドレス制限(以降、IPアドレス制限と呼称)をサポートしていないため、セキュリティ面での課題があります。近年、企業のセキュリティ基準は、MFAやIPアドレス制限を必須要件としていますが、Amazon Connect単体ではこれらを実装できないため、SAML 2.0に対応した外部のIDプロバイダとの連携が必要です。
一般的に、外部IDプロバイダを導入すると、調達に時間がかかり、ライセンス料が発生する上、設定が複雑になるという課題があります。
そこで、注目されるのがAWS IAM Identity Centerです。AWSの環境内でSAML 2.0を介して、MFAとIPアドレス制限を簡単に導入でき、追加コストも無料という大きな利点があります。本記事では、AWS Identity Centerを活用してAmazon ConnectにSAMLを使ったMFAとIPアドレス制限を導入する方法を紹介します。
また、NTT東日本ではAmazon ConnectとCRMツールとの連携や、生成AIを活用した電話業務の効率化を支援しておりますので詳細はこちらをご覧ください。
関連コラム
目次:
- 1. AWS IAM Identity Centerについて
- 2. システム構成
- 3. Amazon Connectインスタンスの作成
- 4. AWS IAM Identity Centerの設定構成
- 4-1. Identity Centerを有効化する
- 4-2. アプリケーションを作成する
- 5. IAMポリシー、ロール、IDプロバイダの作成
- 5-1. フェデレーションIAMポリシーを作成する
- 5-2. IAMロールの一覧表示IAMポリシーを作成する
- 5-3. IDプロバイダを作成する
- 5-4. IAMロールを作成する
- 6. Identity Centerでのユーザー属性の関連付け
- 6-1. Identity Centerユーザーを作成する
- 6-2. Identity Centerでの関連付け設定を行う
- 6-3. Amazon Connect側でユーザーを準備する
- 7. MFAの設定
- 7-1. 参考
- 7-2. ログイン用URLにアクセスする
- 8. IP制限の設定方法
- 9. まとめ
1. AWS IAM Identity Centerについて
AWS IAM Identity Centerは、追加料金が発生せずにMFA認証やIPアドレス制限に標準対応しており、導入も簡単です。また、AWSサービスとの親和性が高いため、Amazon ConnectをはじめとするAWSサービスとの統合がスムーズに行えるほか、CloudTrailやCloudWatchとのログ連携も容易で、監査やモニタリングが効率化されます。コストや調達時間の面でも即時利用可能で、導入スピードを重視する場合に適しています。
一方、外部IDプロバイダは、多数のアプリケーションとの連携や細かなカスタマイズが可能ですが、AWS環境に特化しているわけではないため、AWSサービスとの統合に追加の設定や調整が必要になるケースもあります。
AWS環境でAmazon Connectなどのサービスを利用する場合、AWS IAM Identity Centerの方が親和性高く、メリットが大きいでしょう。
項目 | AWS IAM Identity Center | 他IDプロバイダ |
---|---|---|
MFA認証、IPアドレス制限 | 〇標準対応 | 〇標準対応 |
SAML 2.0対応 | 〇標準対応 | 〇標準対応 |
コスト | 〇追加料金なし | △ライセンス料が発生 |
調達期間 | 〇即時利用可能 | △契約や調達に時間かかる場合あり |
サードパーティ統合 | △対応サービスが比較的に限定的 | 〇幅広いサービスと連携 |
AWSとの親和性 | 〇AWSサービスとの親和性が高く | △統合は可能、設定に追加の手間必要 |
カスタマイズ性 | △AWS環境に限定され柔軟性低め | 〇詳細なカスタマイズが可能 |
2. システム構成
本コラムで紹介するシステム構成は上記の通りです。
ユーザーがAWS Identity Centerを通じてログインする際に、多要素認証(MFA)やアクセス元IPのチェックといったセキュリティ検証を行い、安全性を確保します。ログインが成功すると、SAMLアサーションがユーザーに返され、これを基にAmazon Connectへのアクセスが許可されます。
これから、具体的な設定手順を通じて、Amazon ConnectにAWS Identity Centerを利用してMFAとIPアドレス制限を導入する方法を説明します。
3. Amazon Connectインスタンスの作成
Amazon Connectでは、インスタンス作成時に認証に使用するID管理方法を指定します。この設定は一度選択すると後から変更できないため、IAM Identity Centerと統合する場合は、「SAML 2.0ベースの認証」を選択してAmazon Connectインスタンスを作成する必要があります。
AWS マネジメントコンソールで Amazon Connect コンソールを開き、「インスタンスを追加する」を選択します。
ステップ 1 で、「SAML 2.0 ベースの認証」を選択します。アクセスURLに「インスタンスのエイリアス」を入力して、「次へ」を選択します。
ステップ2~4の設定は自由に選択して問題ありません。必要に応じて適宜設定をしてください。ステップ5で設定内容を確認して「インスタンスの作成」を選択します。
4. AWS IAM Identity Centerの設定構成
4-1. Identity Centerを有効化する
IAM Identity CenterはAWS Organizationsで運用・管理しているアカウントの各ユーザーを集約管理するサービスです。AWS Organizationsを使用していることが条件となっています。
IAM Identity Centerの画面から管理権限を持つユーザーが「有効にする」を選択するだけで有効化できます。
4-2. アプリケーションを作成する
AWS Identity Centerにおける「アプリケーション」とは、ユーザーがシングルサインオンを介してアクセスできるように設定された外部アプリケーションやAWSサービスを指します。ここではAmazon Connectをアプリケーションとして設定します。
ホーム画面から「アプリケーション」を選択し、「アプリケーションを追加」を選択します。
「カタログからアプリケーションを選択する」を選択したうえ、Amazon Connect を検索して選択します。
IAM Identity Center SAML メタデータファイルをからダウンロードし、リレー状態 - (オプション)を設定します。(リレー状態とは、SAMLにおいて、ユーザーを認証後にリダイレクトさせる特定のURLやページを指定するためのパラメータです。ここではAmazon ConnectのインスタンスにリダイレクトするためのURLを設定します。)
リレー状態のURL例:
https://<リージョン名>.console.aws.amazon.com/connect/federate/<AmazonConnectインスタンスID>
備考:<Amazon ConnectインスタンスID> はAmazon Connectの設定画面から確認できます。(instance/の後ろの文字列)
その他の項目は設定不要です。
最後は保存を選択してアプリケーションを作成します。
5. IAMポリシー、ロール、IDプロバイダの作成
Amazon ConnectとAWS IAM Identity Centerを認証連携させるためには、IDプロバイダ及びアクセス管理権限を適切に設定する必要があります。以下では、IAMポリシー、IDプロバイダ、IAMロールの作成について説明します。
5-1. フェデレーションIAMポリシーを作成する
ユーザーがIAM Identity Centerを使用してSAML を介してAmazon Connectにアクセスする際、認証されたユーザーに対してフェデレーショントークンを取得できるためのIAMポリシーを作成します。
IAMから「ポリシー」に移動し、「ポリシーの作成」を選択します。
JSON タブを選択し、ポリシーを貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": "connect:GetFederationToken",
"Resource": [
"<AmazonConnecインスタンスのARN>/user/${aws:userid}"
]
}
]
}
備考:<Amazon ConnectインスタンスのARN> :Amazon Connectから対象インスタンスを選択し、「Distribution settings」の「Instance ARN」から確認できます。
JSONの貼り付けが完了した後に、identitycenter_federation_policy等のポリシー名を付けて、ポリシーを作成します。
5-2. IAMロールの一覧表示IAMポリシーを作成する
IAM Identity CenterがAWSアカウント内のIAMロールやアカウントエイリアスを表示できるようにするための権限を提供するポリシーを作成します。
IAMから「ポリシー」に移動し、「ポリシーの作成」を選択します。JSONタブに以下のポリシー設定を貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:ListAccountAliases"
],
"Resource": "*"
}
]
}
JSONの貼り付けが完了した後に、identitycenter_iam_policy等の任意のポリシー名を付けて、ポリシーを作成します。
5-3. IDプロバイダを作成する
このステップでは、Identity CenterをIDプロバイダとして登録します。
IAMから「IDプロバイダ」に移動し、「プロバイダを追加」を選択します。
プロバイダのタイプを「SAML」に設定し、メタデータドキュメントから手順4-2でダウンロードしたメタデータファイルをアップロードします。
任意なプロバイダ名を入力して、「プロバイダを追加」を選択します。
5-4. IAMロールを作成する
IAMロールは、AWSリソースへのアクセス権限を持つ「一時的な」権限をユーザーに付与するための仕組みです。IAMポリシーをIAMロールに適用することで、そのロールを引き受けたユーザーがリソースにアクセスできます。
IAMから「ロール」に移動し、「ロール作成」を選択します。
SAML 2.0 フェデレーションオプションを選択し、SAML 2.0 ベースのプロバイダに5-3で作成したIDプロバイダを選択します。許可されるアクセスから、「プログラムと AWS マネジメントコンソールへのアクセスを許可する」選択して、「次ヘ」を選択します。
先ほど作成した二つのIAMポリシーを選択して、「次へ」を選択します。
任意なロール名を入力して、ロールを作成します。
6. Identity Centerでのユーザー属性の関連付け
SAML認証を通じて Identity CenterからAmazon Connectにユーザー属性等を適切に伝えるための設定をします。
6-1. Identity Centerユーザーを作成する
認証用ユーザーを先に作成します。
Identity Centerから「ユーザー」に移動し、「ユーザーを追加」を選択します。
ユーザー等にメールアドレスを指定して、ユーザーを作成します。
6-2. Identity Centerでの関連付け設定を行う
Identity Centerから「アプリケーション」に移動し、作成済みのアプリケーションを選択します。
「詳細」の「アクション」メニューを開き、「属性マッピングを編集」を選択します。
「新規属性マッピングの追加」をクリックして、ユーザーのマッピング属性を以下のように新規追加して、「変更の保存」を選択します。
<アプリケーションのユーザー属性>
https://aws.amazon.com/SAML/Attributes/Role
<この文字列値または IAM Identity Center のユーザー属性にマッピング>
arn:aws:iam::<AWSアカウントID>:role/<IAMロール名>,arn:aws:iam::<AWSアカウントID>:saml-provider/<IDプロバイダ名>
備考:<IDプロバイダ名>、<IAMロール名>は手順5-3,5-4で設定されたものをご確認ください。
6-1. で作成したユーザーを選択して、「ユーザーとグループを割り当てる」を選択してアプリケーションにユーザーを割り当てます。
6-3. Amazon Connect側でユーザーを準備する
Emergency accessのURLでAmazon Connectにログインします。
「User management」から「Add new users」を選択して、Amazon Connect内のユーザーを新規作成します。
Identity Centerで設定したユーザー名と一致させるように、Amazon Connectのユーザー名を設定して、ユーザーを作成します。
Amazon ConnectとAWS IAM Identity Centerの連携設定は以上です。
次はMFAとIPアドレス制限の設定方法を見ていきましょう!
7. MFAの設定
IAM Identity Centerでは、次のようなMFAタイプと設定オプションがサポートされています。
IAM Identity Centerの「設定」から「多要素認証を設定」を選択すると、多要素認証に関する設定画面が表示され、MFA頻度、タイプ、サインオプション等をここから設定できます。
(デフォルトではサインイン時のMFAが有効となっています。)
7-1. 参考
サポートされているMFAタイプ
-
FIDO2認証デバイス:
- 組み込み認証デバイス(例: MacBookのTouch ID、Windows Helloなど)
- 外部セキュリティキー(例: YubiKey、Feitianなど)
-
仮想認証アプリ:
- Google Authenticator、Authy、Microsoft Authenticatorなど、時間ベースのワンタイムパスワード(TOTP)を生成するアプリ
-
RADIUS MFA:
- RADIUSを利用した既存のネットワーク認証システムとの統合
MFA設定オプション
- コンテキストに基づいたプロンプト: 新しいデバイスや不明なIPアドレスからのサインイン時のみMFAを要求
- 毎回サインイン時にプロンプト: すべてのサインインでMFAを要求
- MFA無効化: MFAをオフにして、通常のパスワードのみでサインインを許可
では、実際にログインして、MFAの設定を確認してみましょう!
7-2. ログイン用URLにアクセスする
Identity Centerの「ダッシュボード」から「AWS アクセスポータルの URL」にアクセスします。
ユーザー名、パスワードを入力したあとに、MFAの設定画面が表示しますので、必要な方法を選択します。
ここでは、認証アプリをMFAデバイスとします。
1. アプリのインストール
2. QRコードのスキャン
3. 6桁のコードを入力
説明の通りに上記の1〜3を設定した後に、「MFAを割り当て」を選択すると、これでMFAの設定が完了です。
8. IP制限の設定方法
IAMポリシーはAWSリソースへのアクセスを詳細に制御するための設定で、ユーザーやサービスに対してアクセス許可や制限を行う機能があります。Identity Centerも、このIAMポリシーを通じてアクセス権を管理できます。
特定のIPアドレスにアクセスを制限するには、IAMポリシーを使い、aws:SourceIp条件を設定することで、信頼できるネットワークからのみアクセスを許可することが可能です。
ここでは、手順5-1.で作成したIAMポリシーを使用してIPアドレス制限を行います。
IAMから「ポリシー」に移動して、5-1.で作成したロールを編集します。
以下のようにアクセス元を制御するポリシーを追加します。aws:SourceIpに許可したいIPを設定してください(複数の場合は配列可)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": "connect:GetFederationToken",
"Resource": [
"arn:aws:connect:ap-northeast-1:123123123:instance/45c5d029-7d66-446b-aa8c-307af0656177/user/${aws:userid}"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "0.0.0.0/32"
}
}
}
]
}
編集した内容を保存すると、IPアドレス制限が適用されます。
では実際にブロックされているかを見ていきましょう。
許可されていないIPアドレスからポータルサイトにアクセスします。
「Amazon Connect」を選択してアクセスすると、
「アクセスが拒否された」との表示がでてきました。
9. まとめ
Amazon ConnectとAWS IAM Identity CenterをSAML 2.0で連携し、MFAとIPアドレス制限を設定する方法をご紹介しました。これにより、セキュリティを強化し、安全で円滑な運用環境を実現できます。皆さまのお役に立てれば幸いです!
他にもさまざまなセキュリティ対策や連携方法が可能ですので、NTT東日本にお気軽にご連絡ください。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。