本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Lex V2 的資源型政策範例
以資源為基礎的政策會附加至資源,例如機器人或機器人別名。使用以資源為基礎的策略,您可以指定誰可以存取資源,以及他們可以對其執行的動作。例如,您可以新增以資源為基礎的政策,讓使用者能夠修改特定機器人,或允許使用者對特定機器人別名使用執行階段作業。
當您使用以資源為基礎的策略時,您可以允許其他 AWS 存取您帳戶中資源的服務。例如,您可以允許 Amazon Connect 訪問 Amazon Lex 機器人。
若要瞭解如何建立機器人或機器人別名,請參閱使用 Amazon Lex V2 機器人。
主題
使用主控台指定以資源為基礎的策略
您可以使用 Amazon Lex 主控台管理機器人和機器人別名的資源型政策。您可以輸入策略的JSON結構,控制台將其與資源相關聯。如果已經存在與資源相關聯的策略,您可以使用主控台來檢視和修改策略。
當您使用原則編輯器儲存原則時,主控台會檢查原則的語法。如果原則包含錯誤 (例如不存在的使用者或資源不支援的動作),則會傳回錯誤且不儲存原則。
以下顯示主控台中機器人的資源型政策編輯器。機器人別名的原則編輯器類似。
若要開啟機器人的政策編輯器
登入到 AWS Management Console 並打開 Amazon Lex 控制台https://console.aws.amazon.com/lex/
。 -
從「機器人」清單中,選擇您要編輯其政策的機器人。
-
在以資源為基礎的政策區段中,選擇編輯。
若要開啟機器人別名的原則編輯器
登入到 AWS Management Console 並打開 Amazon Lex 控制台https://console.aws.amazon.com/lex/
。 -
從「機器人」清單中,選擇包含您要編輯之別名的機器人。
-
從左側選單中選擇別名,然後選擇要編輯的別名。
-
在以資源為基礎的政策區段中,選擇編輯。
使用指定API以資源為基礎的策略
您可以使用API操作來管理機器人和機器人別名的資源型政策。有建立、更新和刪除策略的作業。
- CreateResourcePolicy
-
將具有指定政策陳述式的新資源策略新增至機器人或機器人別名。
- CreateResourcePolicyStatement
-
將新的資源政策陳述式新增至機器人或機器人別名。
- DeleteResourcePolicy
-
從機器人或機器人別名中移除資源策略。
- DeleteResourcePolicyStatement
-
從機器人或機器人別名移除資源政策陳述式。
- DescribeResourcePolicy
-
取得資源策略和策略修訂版本。
- UpdateResourcePolicy
-
將機器人或機器人別名的現有資源策略取代為新的別名。
允許IAM角色更新機器人並列出機器人別名
下列範例授予特定IAM角色的許可,以呼叫 Amazon Lex V2 模型建置API操作以修改現有機器人。使用者可以列出機器人的別名並更新機器人,但無法刪除機器人或機器人別名。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
botBuilders
", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012
:role/BotBuilder
" }, "Action": [ "lex:ListBotAliases", "lex:UpdateBot" ], "Resource": [ "arn:aws:lex:Region
:123456789012
:bot/MYBOT
" ] } ] }
允許使用者與機器人進行對話
下列範例授予特定使用者在機器人的單一別名上呼叫 Amazon Lex V2 API 執行階段作業的權限。
特別拒絕使用者更新或刪除機器人別名的權限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "botRunners", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/botRunner
" }, "Action": [ "lex:RecognizeText", "lex:RecognizeUtterance", "lex:StartConversation", "lex:DeleteSession", "lex:GetSession", "lex:PutSession" ], "Resource": [ "arn:aws:lex:Region
:123456789012
:bot-alias/MYBOT
/MYBOTALIAS
" ] }, { "Sid": "botRunners", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012
:user/botRunner
" }, "Action": [ "lex:UpdateBotAlias", "lex:DeleteBotAlias" ], "Resource": [ "arn:aws:lex:Region
:123456789012
:bot-alias/MYBOT
/MYBOTALIAS
" ] } ] }
允許 AWS 使用特定 Amazon Lex V2 機器人的服務
下列範例會授與的權限 AWS Lambda 和 Amazon Connect 呼叫 Amazon Lex V2 運行時API操作。
服務主體需要條件區塊,且必須使用全域前後關聯索引鍵AWS:SourceAccount
和AWS:SourceArn
。
這AWS:SourceAccount
是呼叫 Amazon Lex V2 機器人的帳戶識別碼。
這AWS:SourceArn
是對 Amazon Lex V2 機器人別名呼叫的 Amazon Connect 服務執行個體或 Lambda 函數ARN的資源。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
connect-bot-alias
", "Effect": "Allow", "Principal": { "Service": [ "connect.amazonaws.com" ] }, "Action": [ "lex:RecognizeText", "lex:StartConversation" ], "Resource": [ "arn:aws:lex:Region
:123456789012
:bot-alias/MYBOT
/MYBOTALIAS
" ], "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012
" }, "ArnEquals": { "AWS:SourceArn": "arn:aws:connect:Region
:123456789012
:instance/instance-id
" } } }, { "Sid": "lambda-function
", "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Action": [ "lex:RecognizeText", "lex:StartConversation" ], "Resource": [ "arn:aws:lex:Region
:123456789012
:bot-alias/MYBOT
/MYBOTALIAS
" ], "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012
" }, "ArnEquals": { "AWS:SourceArn": "arn:aws:lambda:Region
:123456789012
:function/function-name
" } } } ] }