本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
静态加密
Amazon IoT SiteWise 加密所有静态场景发现会话数据。默认情况下, Amazon IoT SiteWise 使用 Amazon 自有密钥加密您的数据,不收取额外费用,也没有管理开销。您还可以选择使用客户管理的密钥加密会话数据,以完全控制和审核保护您资源的加密密钥。
加密选项
创建工作空间时,您可以选择以下加密类型之一:
-
SITEWISE_DEFAULT_ENCRYP Amazon IoT SiteWise TION — 使用 Amazon 自有密钥加密您的会话数据,无需额外付费。无需进行任何配置。
-
KMS_BASED_ENCRYP TI Amazon IoT SiteWise ON — 使用您指定的客户管理密钥加密您的会话数据。您可以完全控制密钥。
重要
加密配置是在创建工作空间时设置的,创建工作空间后无法更改。
操作方法 Amazon IoT SiteWise 使用客户管理的密钥
当您使用客户管理的密钥配置工作空间时, Amazon IoT SiteWise 使用该密钥加密以下数据:
-
视频 -为工作空间捕获和存储的所有视频流。
-
注释 -与工作空间中会话相关的所有注释数据。
-
遥测 — 为工作空间收集和存储的所有遥测数据。
Amazon IoT SiteWise 使用信封加密来保护您的会话数据。在数据摄取期间, Amazon IoT SiteWise 调用kms:GenerateDataKey范围限定在源上下文条件(aws:SourceAccount和aws:SourceArn)范围内,以生成数据加密密钥。
Amazon IoT SiteWise 通过 FAS(转发访问会话)使用 KMS 授权,代表您执行 KMS 操作。该授权的范围仅限于工作空间, Amazon IoT SiteWise 允许调用GenerateDataKeyDecrypt、和ReEncrypt操作。 Amazon IoT SiteWise 删除关联工作空间后,取消授权。
此外, Amazon IoT SiteWise 将底层 Amazon 托管数据存储(例如 Amazon S3 和 Amazon S OpenSearch erverless)配置为使用您的客户管理密钥。这意味着存储在这些服务中的会话数据使用您的密钥进行加密,从而在您的控制下提供端到端加密。您可能会使用 KMS 密钥看到来自这些 Amazon 服务 CloudTrail 的事件——这是预期的行为。
配置加密
创建工作空间时,使用带有以下字段的encryptionConfiguration参数指定加密配置:
-
加密类型(必填)-要使用的加密类型。有效值为
SITEWISE_DEFAULT_ENCRYPTION和KMS_BASED_ENCRYPTION。 -
kms KeyId(加密类型为必填项
KMS_BASED_ENCRYPTION)— 客户管理密钥的 ID、ARN、别名或别名 ARN。该密钥必须是使用 ENCRYPT_DECRYPT 的对称密钥。
密钥策略
Amazon IoT SiteWise 要允许使用客户管理的密钥,密钥策略必须授予必要的权限。以下是包含六个语句的最低权限密钥政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSiteWiseIngestionGenerateDataKey", "Effect": "Allow", "Principal": { "Service": "iotsitewise.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotsitewise:us-east-1:111122223333:workspace/*" } } }, { "Sid": "AllowSiteWiseDecryptDescribeReEncrypt", "Effect": "Allow", "Principal": { "Service": "iotsitewise.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": "*" }, { "Sid": "AllowSiteWiseToEncryptDataViaGrant", "Effect": "Allow", "Principal": { "Service": "iotsitewise.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "ReEncrypt" ] } } }, { "Sid": "AllowCustomerRoleDescribeKeyViaSiteWise", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/YourRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "iotsitewise.us-east-1.amazonaws.com" } } }, { "Sid": "AllowCustomerRoleDecryptViaSiteWise", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/YourRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "iotsitewise.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:iotsitewise:subscriberId": "111122223333" } } }, { "Sid": "AllowCustomerRoleCreateGrantViaSiteWise", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/YourRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "iotsitewise.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:iotsitewise:subscriberId": "111122223333" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "ReEncrypt" ] } } } ] }
每份政策声明的解释
以下内容描述了密钥策略中每条语句的用途:
-
AllowSiteWiseIngestionGenerateDataKey— 允许该 Amazon IoT SiteWise 服务在数据摄取期间调用
kms:GenerateDataKey*以创建数据加密密钥。aws:SourceAccount和aws:SourceArn条件限制了对您的帐户和工作空间的访问权限,从而防止出现混乱的代理问题。 -
AllowSiteWiseDecryptDescribeReEncrypt— 允许 Amazon IoT SiteWise 服务呼叫
kms:Decryptkms:DescribeKey、和kms:ReEncrypt*。这些操作不会在请求上下文中携带工作空间源 ARN,因此源条件不适用于此语句。 -
AllowSiteWiseToEncryptDataViaGrant— 允许该 Amazon IoT SiteWise 服务调用
kms:CreateGrant以创建范围为DecryptGenerateDataKey、和ReEncrypt操作的授权。该kms:GrantOperations条件将补助金仅限于这些业务。 -
AllowCustomerRoleDescribeKeyViaSiteWise— 允许您的 IAM 角色
kms:DescribeKey通过 FAS 调用。 Amazon IoT SiteWise 在创建工作空间时调用此函数以验证密钥是否存在、处于启用状态、是否为 SYMMETRIC_DEFAULT KeySpec 以及是否为 ENCRYPT_DECRYPT。 KeyUsage -
AllowCustomerRoleDecryptViaSiteWise— 允许您的 IAM 角色
kms:Decrypt通过 FAS 调用。 Amazon IoT SiteWise 使用它来验证调用主体对密钥是否具有解密权限。该kms:ViaService条件确保此权限只能通过以下方式使用 Amazon IoT SiteWise,并且加密上下文条件限制了对您账户的访问权限。 -
AllowCustomerRoleCreateGrantViaSiteWise— 允许您的 IAM 角色在创建工作空间期间
kms:CreateGrant通过 FAS 调用。 Amazon IoT SiteWise 使用此授权在工作空间的生命周期内调用GenerateDataKeyDecrypt、和ReEncrypt操作。授权操作条件限制了授予权可以授权的内容。
使用客户管理的密钥创建工作空间
要使用客户管理的密钥创建工作区,请在 CreateWorkspace API 请求中指定--encryption-configuration参数:
aws iotsitewise create-workspace \ --workspace-name my-workspace \ --encryption-configuration encryptionType=KMS_BASED_ENCRYPTION,kmsKeyId=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --region us-east-1
缩小客户管理密钥的访问权限
加密上下文
Amazon IoT SiteWise 每个 KMS 请求中都包含以下加密上下文 Amazon 密钥值对:
"aws:iotsitewise:subscriberId": "<CustomerAccountId>"
您可以使用密钥策略中的kms:EncryptionContext条件来进一步限制哪些资源可以使用密钥进行加密和解密。加密上下文也以纯文本形式出现在 Amazon CloudTrail 日志中。 Amazon IoT SiteWise 创建的每项授权都包含加密上下文约束,因此该授权不能用于加密或解密其他工作空间或 Amazon 帐户的数据。
混淆代理保护
aws:SourceArn和aws:SourceAccount条件通过确保只有您的工作空间才能触发密钥的使用,从而防止出现混乱的副手问题。这些条件GenerateDataKey仅适用于。DecryptDescribeKey、和ReEncrypt操作在请求上下文中不携带工作空间源 ARN,因此源条件不能应用于这些操作。
kms:ViaService 状态
kms:ViaService条件密钥将密钥的使用限制为来自 Amazon IoT SiteWise以下来源的转发访问会话请求:
"kms:ViaService": "iotsitewise.us-east-1.amazonaws.com"
这样可以确保密钥策略中的客户角色权限仅在请求源时才可用 Amazon IoT SiteWise,从而防止在服务环境之外直接使用密钥。
使用监控 KMS 的使用情况 CloudTrail
Amazon CloudTrail 在您的客户管理密钥上记录基础 Amazon 服务发出的 Amazon IoT SiteWise 所有 KMS API 调用。使用 CloudTrail 控制台或LookupEvents操作搜索日志条目。以下是您可以期待看到 CloudTrail 的事件示例。
CreateGrant (亚马逊 OpenSearch 无服务器)
Amazon OpenSearch Serverless 创建了一项使用您的客户管理密钥加密索引会话数据的授权:
{ "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "userIdentity": { "type": "AWSService", "invokedBy": "aoss.amazonaws.com" }, "requestParameters": { "granteePrincipal": "aoss.us-east-1.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "constraints": { "encryptionContextSubset": { "aws:aoss:arn": "arn:aws:aoss:us-east-1:111122223333:collection/*" } }, "retiringPrincipal": "aoss.us-east-1.amazonaws.com", "operations": ["Decrypt", "GenerateDataKey"] } }
GenerateDataKey (亚马逊 S3)
Amazon S3 使用您的客户管理密钥对存储的视频数据进行加密:
{ "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "userIdentity": { "type": "AWSService", "invokedBy": "fas.s3.amazonaws.com" }, "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256", "encryptionContext": { "aws:s3:arn": "arn:aws:s3:::iotsitewise-workspace-111122223333-us-east-1" } } }
GenerateDataKey (Amazon IoT SiteWise)
Amazon IoT SiteWise 为内部加密操作生成数据密钥:
{ "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "userIdentity": { "type": "AWSService", "invokedBy": "AWS Internal" }, "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256", "encryptionContext": { "aws:iotsitewise:subscriberId": "111122223333" } } }