本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
限制可以与 Amazon Connect 关联的 AWS 资源
每个 Amazon Connect 实例在创建时均与一个 IAM 服务相关角色相关联。Amazon Connect 可以与其他 AWS 服务集成,以用于诸如通话录音存储(Amazon S3 存储桶)、自然语言自动程序(Amazon Lex 自动程序)和数据流式处理 (Amazon Kinesis Data Streams) 等应用场景。Amazon Connect 代入服务相关角色以与这些其他服务进行交互。该策略首先作为对应 APIs 的 Amazon Connect 服务(由 AWS 管理员控制台调用)的一部分添加到服务相关角色中。例如,如果您想在您的 Amazon Connect 实例中使用某个 Amazon S3 存储桶,则必须将该存储桶传递给 AssociateInstanceStorageConfigAPI。
有关 Amazon Connect 定义的一组 IAM 操作,请参阅 Amazon Connect 定义的操作。
以下是一些示例,介绍如何限制对可能与 Amazon Connect 实例相关联的其他资源的访问权限。它们应应用于与 Amazon Connect 或 Amazon Connect 控制台交互的用户 APIs 或角色。
在这些示例中,具有显式 Deny
的策略将覆盖 Allow
策略。
有关 APIs 您可以使用哪些资源、条件键和依赖项来限制访问的更多信息,请参阅 Amazon Connect 的操作、资源和条件密钥。
示例 1:限制哪些 Amazon S3 存储桶可以与 Amazon Connect 实例相关联
- JSON
-
-
{
"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:::amzn-s3-demo-bucket
"
]
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
此示例允许 IAM 主体关联用于给定 Amazon Connect 实例 ARN 通话录音的 Amazon S3 存储桶,以及名为 my-connect-recording-bucket
的特定 Amazon S3 存储桶。AttachRolePolicy
和 PutRolePolicy
操作的范围限定为 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:
- JSON
-
-
{
"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 实例关联以提供联系记录。
- JSON
-
-
{
"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": "*"
}
]
}