限制可以与 Amazon Connect 关联的 AWS 资源 - Amazon Connect

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

限制可以与 Amazon Connect 关联的 AWS 资源

每个 Amazon Connect 实例在创建时均与一个 IAM 服务相关角色相关联。Amazon Connect 可以与其他 AWS 服务集成,以用于诸如通话录音存储(Amazon S3 存储桶)、自然语言自动程序(Amazon Lex 自动程序)和数据流式处理 (Amazon Kinesis Data Streams) 等应用场景。Amazon Connect 代入服务相关角色以与这些其他服务进行交互。该策略首先作为 Amazon Connect 服务上相应 API(由 AWS 管理网站调用)的一部分添加到服务相关角色中。例如,如果您想在您的 Amazon Connect 实例中使用某个 Amazon S3 存储桶,则必须将该存储桶传递给 AssociateInstanceStorageConfigAPI。

有关 Amazon Connect 定义的一组 IAM 操作,请参阅 Amazon Connect 定义的操作

以下是一些示例,介绍如何限制对可能与 Amazon Connect 实例相关联的其他资源的访问权限。它们应应用于与 Amazon Connect API 或 Amazon Connect 管理网站进行交互的用户或角色。

注意

在这些示例中,具有显式 Deny 的策略将覆盖 Allow 策略。

有关哪些资源、条件键和相关 API 可用于限制访问的更多信息,请参阅 Amazon Connect 的操作、资源和条件键

示例 1:限制哪些 Amazon S3 存储桶可以与 Amazon Connect 实例相关联

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "connect:UpdateInstanceStorageConfig", "connect:AssociateInstanceStorageConfig" ], "Resource": "arn:aws:connect:region:account-id:instance/instance-id", "Condition": { "StringEquals": { "connect:StorageResourceType": "CALL_RECORDINGS" } } }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "iam:PutRolePolicy", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:iam::account-id:role/aws-service-role/connect.amazonaws.com/*", "arn:aws:s3:::s3-bucket-name" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" } ] }

此示例允许 IAM 主体关联用于给定 Amazon Connect 实例 ARN 通话录音的 Amazon S3 存储桶,以及名为 my-connect-recording-bucket 的特定 Amazon S3 存储桶。AttachRolePolicyPutRolePolicy 操作的范围限定为 Amazon Connect 服务相关角色(在本示例中使用通配符,但如果需要,您可以为实例提供角色 ARN)。

注意

要使用密 AWS KMS 钥加密此存储桶中的录音,需要额外的策略。

示例 2:限制哪些 AWS Lambda 函数可以与 Amazon Connect 实例相关联

AWS Lambda 函数与 Amazon Connect 实例关联,但是 Amazon Connect 服务相关角色不用于调用它们,因此不会被修改。相反,会通过 lambda:AddPermission API 向该函数添加策略,以允许给定的 Amazon Connect 实例调用该函数。

要限制哪些函数可以与 Amazon Connect 实例相关联,您可以指定用户可以用来调用 lambda:AddPermission 的 Lambda 函数 ARN:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "connect:AssociateLambdaFunction", "lambda:AddPermission" ], "Resource": [ "arn:aws:connect:region:account-id:instance/instance-id", "arn:aws:lambda:*:*:function:my-function" ] } ] }

示例 3:限制哪些 Amazon Kinesis Data Streams 可以与 Amazon Connect 实例相关联

此示例遵循与 Amazon S3 示例类似的模型。它限制了哪些特定的 Kinesis Data Streams 可以与给定的 Amazon Connect 实例关联以提供联系记录。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "connect:UpdateInstanceStorageConfig", "connect:AssociateInstanceStorageConfig" ], "Resource": "arn:aws:connect:region:account-id:instance/instance-id", "Condition": { "StringEquals": { "connect:StorageResourceType": "CONTACT_TRACE_RECORDS" } } }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "iam:PutRolePolicy" ], "Resource": [ "arn:aws:iam::account-id:role/aws-service-role/connect.amazonaws.com/*", "arn:aws:kinesis:*:account-id:stream/stream-name" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }