Amazon Lex V2 のアイデンティティベースのポリシー例 - Amazon Lex

Amazon Lex V2 のアイデンティティベースのポリシー例

デフォルトで、ユーザーとロールには Amazon Lex V2 リソースを作成または変更する権限がありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「IAM ポリシーを作成する (コンソール)」を参照してください。

Amazon Lex V2 が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.htmlサービス認可リファレンス」の「Amazon Lex V2 のアクション、リソース、および条件キー」を参照してください。

ポリシーに関するベストプラクティス

アイデンティティベースのポリシーは、ユーザーのアカウント内で誰かが Amazon Lex V2 リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する – ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可を絞り込むことをお勧めします。詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」または「ジョブ機能の AWS マネージドポリシー」を参照してください。

  • 最小特権を適用する – IAM ポリシーで許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、「IAM ユーザーガイド」の「IAM でのポリシーとアクセス許可」を参照してください。

  • IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素:条件」を参照してください。

  • IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer でポリシーを検証する」を参照してください。

  • 多要素認証 (MFA) を要求する – AWS アカウントで IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「MFA を使用した安全な API アクセス」を参照してください。

IAM でのベストプラクティスの詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

Amazon Lex V2 コンソールを使用する

Amazon Lex V2 コンソールにアクセスするには、アクセス許可の最小限のセットが必要です。これらのアクセス許可は、AWS アカウント の Amazon Lex V2 リソースに関する詳細をリストおよび表示することを許可する必要があります。最小限必要なアクセス許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) ではコンソールが意図したとおりに機能しません。

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール権限を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスを許可します。

ユーザーとロールが引き続き Amazon Lex V2 コンソールを使用できるようにするには、ユーザーにコンソールアクセス権が必要です。コンソールアクセスを使用してユーザーを作成する方法の詳細については、「IAM ユーザーガイド」の「AWS アカウントに IAM ユーザーを作成する」を参照してください。

ユーザーがボットに関数を追加できるようにする

この例では、IAM ユーザーが Amazon Comprehend、センチメント分析、および Amazon Kendra クエリのアクセス許可を Amazon Lex V2 ボットに追加できるようにするポリシーを示しています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Id1", "Effect": "Allow", "Action": "iam:PutRolePolicy", "Resource": "arn:aws:iam::*:role/aws-service-role/lexv2.amazonaws.com/AWSServiceRoleForLexV2Bots*" }, { "Sid": "Id2", "Effect": "Allow", "Action": "iam:GetRolePolicy", "Resource": "arn:aws:iam::*:role/aws-service-role/lexv2.amazonaws.com/AWSServiceRoleForLexV2Bots*" } ] }

ユーザーがボットにチャネルを追加できるようにする

この例は、IAM ユーザーがボットにメッセージングチャネルを追加できるようにするポリシーです。ユーザーは、メッセージングプラットフォームにボットをデプロイする前に、このポリシーを設定しておく必要があります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Id1", "Effect": "Allow", "Action": "iam:PutRolePolicy", "Resource": "arn:aws:iam::*:role/aws-service-role/channels.lexv2.amazonaws.com/AWSServiceRoleForLexV2Channels*" }, { "Sid": "Id2", "Effect": "Allow", "Action": "iam:GetRolePolicy", "Resource": "arn:aws:iam::*:role/aws-service-role/channels.lexv2.amazonaws.com/AWSServiceRoleForLexV2Channels*" } ] }

ボットの作成と更新をユーザーに許可する

この例では、IAM ユーザーがボットの作成と更新を許可するポリシーの例を示しています。このポリシーには、AWS CLI か AWS API を使用して、コンソールでこのアクションを完了するアクセス許可が含まれています。

自動 Chatbot デザイナーの使用をユーザーに許可する

この例では、IAM ユーザーが自動 Chatbot デザイナーを実行できるようにするポリシーの例を示しています。

ユーザーが AWS KMS キーを使用して、ファイルを暗号化および復号できるように許可する

この例では、IAM ユーザーが AWS KMS カスタマーマネージドキーを使用して、データを暗号化および復号化することを許可するポリシーの例を示しています。

ユーザーにボットの削除を許可する

この例では、IAM ユーザーにボットの削除を許可するポリシーの例を示しています。このポリシーには、AWS CLI か AWS API を使用して、コンソールでこのアクションを完了するアクセス許可が含まれています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:DeleteBot", "lex:DeleteBotLocale", "lex:DeleteBotAlias", "lex:DeleteIntent", "lex:DeleteSlot", "lex:DeleteSlottype" ], "Effect": "Allow", "Resource": [ "arn:aws:lex:us-east-1:123412341234:bot/*", "arn:aws:lex:us-east-1:123412341234:bot-alias/*" ] } ] }

ユーザーにボットとの会話を許可する

この例では、IAM ユーザーにボットとの会話を許可するポリシーの例を示しています。このポリシーには、AWS CLI か AWS API を使用して、コンソールでこのアクションを完了するアクセス許可が含まれています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:StartConversation", "lex:RecognizeText", "lex:RecognizeUtterance", "lex:GetSession", "lex:PutSession", "lex:DeleteSession" ], "Effect": "Allow", "Resource": "arn:aws:lex:us-east-1:123412341234:bot-alias/*" } ] }

特定のユーザーにリソースベースのポリシーの管理を許可する

次の例では、リソースベースのポリシーを管理する権限を特定のユーザーに付与します。これにより、ボットとボットのエイリアスに関連付けられたポリシーへのコンソールと API アクセスを許可します。

ユーザーにボットとボットロケールのエクスポートを許可する

次の IAM アクセス許可ポリシーにより、ユーザーはボットまたはボットのロケールの作成、更新、およびエクスポートの取得が可能になります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:CreateExport", "lex:UpdateExport", "lex:DescribeExport", "lex:DescribeBot", "lex:DescribeBotLocale", "lex:ListBotLocales", "lex:DescribeIntent", "lex:ListIntents", "lex:DescribeSlotType", "lex:ListSlotTypes", "lex:DescribeSlot", "lex:ListSlots", "lex:DescribeCustomVocabulary" ], "Effect": "Allow", "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/*" ] } ] }

ユーザーにカスタム語彙のエクスポートを許可する

次の IAM アクセス許可ポリシーでは、ユーザーがボットのロケールからカスタム語彙をエクスポートできます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:CreateExport", "lex:UpdateExport", "lex:DescribeExport", "lex:DescribeCustomVocabulary" ], "Effect": "Allow", "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/*" ] } ] }

ユーザーにボットとボットロケールのインポートを許可する

次の IAM アクセス許可ポリシーは、ユーザーがボットまたはボットのロケールをインポートし、インポートのステータスをチェックできるようにします。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:CreateUploadUrl", "lex:StartImport", "lex:DescribeImport", "lex:CreateBot", "lex:UpdateBot", "lex:DeleteBot", "lex:CreateBotLocale", "lex:UpdateBotLocale", "lex:DeleteBotLocale", "lex:CreateIntent", "lex:UpdateIntent", "lex:DeleteIntent", "lex:CreateSlotType", "lex:UpdateSlotType", "lex:DeleteSlotType", "lex:CreateSlot", "lex:UpdateSlot", "lex:DeleteSlot", "lex:CreateCustomVocabulary", "lex:UpdateCustomVocabulary", "lex:DeleteCustomVocabulary", "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/*", "arn:aws:lex:us-east-1:123456789012:bot-alias/*" ] } ] }

ユーザーにカスタム語彙のエクスポートを許可する

次の IAM アクセス許可ポリシーでは、ユーザーがボットのロケールにカスタム語彙をインポートできます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "lex:CreateUploadUrl", "lex:StartImport", "lex:DescribeImport", "lex:CreateCustomVocabulary", "lex:UpdateCustomVocabulary", "lex:DeleteCustomVocabulary" ], "Effect": "Allow", "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/*" ] } ] }

ユーザーが Amazon Lex から Amazon Lex V2 にボットを移行できるようにする

次の IAM アクセス許可ポリシーでは、ユーザーが Amazon Lex から Amazon Lex V2 へのボットの移行をスタートできます。

自分の権限の表示をユーザーに許可する

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了する権限が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Amazon Lex V2 でのビジュアル会話ビルダーを使用して、ユーザーが会話フローを描画できるようにする

次の IAM アクセス許可ポリシーを使用すると、ユーザーが Amazon Lex V2 でのビジュアル会話ビルダーを使用して会話フローを描画できます。

ユーザーにボットレプリカの作成と表示を許可しますが、削除は許可しない

次のアクセス許可を IAM ロールにアタッチして、ボットレプリカの作成と表示のみを許可できます。lex:DeleteBotReplica を省略することで、ロールがボットレプリカを削除できないようにします。詳細については、「Lex V2 でボットをレプリケートし、ボットレプリカを管理する権限」を参照してください。