当用户从 Vault 中提取内容以在网站或其他数字渠道上使用时,可能会面临发布的内容不再合规的风险。Vault 允许组织将监管内容推送到各种分发渠道,并轻松撤回已替换或作废的内容,从而消除这种风险。使用 Vault 数字发布功能,您可以利用 CDN(内容交付网络)的性能优势,快速向全球受众提供内容,并且您还可以利用 Vault 的监管优势,轻松地从进行审查和批准的同一系统中撤回内容。
注:此功能仅适用于商业 Vault(PromoMats 和 MedComms),在以前的版本中称为 Vault CDN 支持。
支持的 CDN
Vault 数字发布功能让您可以利用组织自己的 Amazon S3 存储桶将 Vault 与 Amazon CloudFront 集成。
为了允许 Vault 访问,需要正确设置 S3 存储桶。
设置 Amazon S3 存储桶和 Cloudfront
您必须先设置 Amazon S3 存储桶和 Amazon CloudFront,才能使用 Vault 数字发布功能:
- 创建所需的存储桶。如果将 Vault 数字发布功能用于生产和暂存环境,您需要创建两个存储桶。请注意,存储桶名称对 Vault 数字发布功能无关紧要,但需要采用不同的名称。
- 向以下规范 ID 授予对存储桶的读取对象、写入对象和读取存储桶权限:
6aa09b8b08a72fa7c87711134cbbdca1a855f619b5679ad7a90b9d947420928f
。这样,Vault 便可以对 S3 存储桶执行读取和写入操作。 - 在 CloudFront 中,创建源访问身份。记下 Amazon S3 规范用户 ID。稍后填充数字发布设置时,Vault 将用到此 ID。
- 在 CloudFront 中,创建所需的 Web 分发。如果将 Vault 数字发布功能用于生产和暂存环境,您需要创建两个分发。您可以将默认设置用于所有分发。记下域名。稍后填充数字发布设置时,Vault 将用到此域名。
- 使用验证文件验证您要与 Vault 数字发布一起使用的每个 S3 存储桶。
分发设置
我们推荐使用以下分发设置:
- 源域名:用于生产或暂存的 S3 存储桶
- 限制存储桶访问:是
- 源访问身份:使用现有身份并选择在上一步中创建的源访问身份。
- 授予读取权限:否,我将更新权限
如何启用 Vault 数字发布
开始启用前,您必须设置 Amazon S3 存储桶以允许使用 Vault 数字发布。
要启用并设置 Vault 数字发布,请执行以下操作:
- 从管理 > 设置中,单击编辑。
- 选中启用数字发布复选框。
- 可选:选中启用推送到暂存复选框,以启用推送到暂存环境。
- 可选:选中启用 CDN 使用情况提取复选框,以允许使用情况提取。
- 导航到管理 > 配置 > 文档字段。将数字发布 (
cdn_content__v
)、生产 CDN URL (production_cdn_url__v
) 和(可选)暂存 CDN URL (staging_cdn_url__v
) 共享字段添加到您要使用 Vault 数字发布的任何文档类型。 - 导航到管理 > 设置 > 数字发布设置,并为生产存储桶、(可选)暂存存储桶和(可选)日志记录存储桶提供 Amazon S3 详细信息。请了解有关数字发布设置的更多信息。
- 保存后,刷新浏览器窗口,数字发布设置将作为菜单项显示在用户界面的左侧。
数字发布设置
启用 Vault 数字发布后,必须配置设置以连接到 CDN。
- 导航到管理 > 设置 > 数字发布设置,然后单击编辑。
- 在生产存储桶、(可选)暂存存储桶和(可选)日志记录存储桶下方输入详细信息。您必须为生产存储桶提供这些详细信息,才能使用 Vault 数字发布。只有当组织使用暂存环境时,才需要暂存存储桶。
- 确定 S3 存储桶的地区。可在控制台的 URL 中找到此信息。例如,以下 URL 的地区将为 us-east-1:
https://console.aws.amazon.com/console/home?region=us-east-1
。 - 转到以下 URL
https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
并找到与您的地区匹配的相应条目。复制使用以下格式的终结点:s3.
。在 Vault 中,在 S3 终结点字段中输入此值。.amazonaws.com - 输入 S3 存储桶名称。这是您要连接的存储桶的名称,例如 vault-production,可在 Amazon S3 控制台中找到。
- 输入 CDN 域。在指向 S3 存储桶的 Amazon Cloudfront 配置中指定该域。
- 为您在 CloudFront 中创建的源访问身份输入 CloudFront 源访问身份规范 ID ARN(Amazon 资源名称)。
- 按照下面的步骤将验证文件添加到您的存储桶。
验证
从 20R1.3 版本开始,在添加新的存储桶或编辑现有配置时,您必须完成额外的验证步骤。我们建议您连接至 Vault 和 AWS Cloudfront/S3,以完成验证步骤。如果您为 Vault 配置了多个存储桶,则必须验证每个存储桶才能保存配置更改,即便更改仅应用于一个存储桶也是如此。要验证 S3 存储桶,请执行以下操作:
- 在 Vault 中,导航到管理 > 设置 > 数字发布设置,然后单击编辑。
- 单击下载验证文件链接。验证文件在 30 分钟内有效,并且必须命名为 verification.jwt。
- 导航到 S3 存储桶的根目录,上传您在上一步中下载的 verifcation.jwt 文件,然后单击以打开该文件。
- 在权限标签页中,单击添加帐户,然后添加以下规范 ID:
6aa09b8b08a72fa7c87711134cbbdca1a855f619b5679ad7a90b9d947420928f
。 - 选中读取对象和读取对象权限复选框,然后单击保存。
- 对与 Vault 数字发布一起使用的每个 S3 存储桶重复步骤 3-5。例如,如果您有一个生产存储桶、一个暂存存储桶和一个日志记录存储桶,您必须将验证文件添加到所有三个存储桶。
- 在 Vault 中返回到数字发布设置,然后单击每个存储桶的验证按钮。
如果 Vault 无法验证特定存储桶,您将看到下列消息之一:
- 无法连接
- 无法写入存储桶
- 无法从存储桶中删除
- 无法从存储桶中读取
- 在存储桶中找不到验证文件
Vault 还会验证您是否没有为生产存储桶、暂存存储桶和日志记录存储桶使用相同的 S3 存储桶名称和 CDN 域。
注意:Vault 不会验证您提供的 CDN 域是否有效,也不会验证“日志记录存储桶”节段中指定的目录是否存在。
关于 CDN 使用情况提取
利用 Vault CDN 使用情况提取功能,您可以进行配置,以将 CloudFront 使用情况数据提取到您的 Vault 中并进行汇总。您必须启用 CloudFront 日志记录,才能允许使用情况提取。使用情况提取可让您利用 Vault 的报告功能,以查看和分析通过 Vault CDN 发布的内容的使用情况。Vault 使用 Vault CDN 使用情况提取作业每天检索一次使用日志,并将它们加载到渠道使用情况对象中。如果您没有启用使用情况提取功能,则 Vault CDN 使用情况提取作业将会处于非活动状态,并且不会检索日志记录详细信息。
打开 CloudFront 使用情况日志记录
如果配置了此功能,CloudFront 只会生成使用情况日志。要启用日志记录,请导航到 AWS CloudFront:
- 导航到 AWS CloudFront。
- 单击要为其配置以打开使用情况日志记录的 CloudFront 分发。
- 单击编辑。
- 在日志记录下方,选择开启。
- 指定要写入使用日志的存储桶。最佳做法是创建一个专门用于日志记录数据的存储桶。
- 以
/ 格式指定日志前缀。例如 logging/。必须指定日志前缀,才能成功执行 Vault 使用情况提取作业。 - 依次单击是、编辑。
提供对 CloudFront 写入的使用情况日志的访问权限
当 CloudFront 写入日志文件时,仅会向 S3 存储桶的所有者提供读取日志的权限。为了成功执行 Vault CDN 使用情况提取作业,需要为 CloudFront 使用情况日志记录过程中写入的所有使用情况日志设置正确的读取权限。Veeva 创建了一个 Lambda 函数,对于使用 CloudFront 写入的 .gz 扩展名的所有使用情况日志,该函数将自动授予 Veeva 规范 ID 读取权限。可以使用下列步骤设置 Lambda 函数:
IAM 策略所需的权限
Lambda 函数需要特定权限才能执行。您可以为 Lambda 函数创建新策略,也可以修改现有策略。至少,执行 Lambda 函数的角色需要具有支持对以下资源执行以下操作的策略:
作用 | 操作 | 资源 |
---|---|---|
允许 | logs:CreateLogGroup 、logs:CreateLogStream 、logs:PutLogEvents | arn:aws:logs:*:*:* |
允许 | s3:GetObjectAcl 、s3:GetBucketAcl 、s3:PutObjectAcl | arn:aws:s3:::[bucket name]/* 、arn:aws:s3:::[bucket name] 将存储桶名称替换为要写入 CloudFront 使用情况日志的存储桶名称。 |
以下是具有适当权限的策略的 JSON 示例。在此示例中,CloudFront 将使用情况日志写入名为 cdn-logging 的存储桶。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObjectAcl",
"s3:GetBucketAcl",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::cdn-logging/*",
"arn:aws:s3:::cdn-logging"
]
}
]
}
创建 Lambda 函数
以下步骤参考了从 AWS 控制台创建 Lambda 函数的说明。如需有关设置 Lambda 函数的帮助,请联系 Veeva 支持人员。
要创建 Lambda 函数,请执行以下操作:
- 从 AWS 控制台中选择 Lambda。
- 单击创建函数。确认已选择从头开始创作(默认值)。
- 输入 Lambda 函数的名称。
- 从运行时下拉列表中选择 Python 3.8。
- 从角色下拉列表中选择创建自定义角色。然后,您将转到新的页面。
- 确认已选择创建新的 IAM 角色。
- 输入角色名称或接受默认名称。
- 单击允许。
- 确认您在上一步中创建的角色显示在现有角色下方。
- 单击创建函数。
配置 Lambda 函数
要配置 Lambda 函数,请执行以下操作:
- 滚动到函数代码。
- 为代码条目类型选择上传 .ZIP 文件
- 上传 .ZIP 文件。
- 确认运行时列出了 Python 3.8。
- 单击保存。请注意,您不应修改此函数;Vault 不支持修改代码。
配置 Lambda 函数的触发条件
要配置 Lambda 函数的触发条件,请执行以下操作:
- 在设计器节段下方,单击 S3 以向 Lambda 函数添加触发条件。此操作会将 S3 添加为触发条件,并显示配置触发条件节段。
- 选择 CloudFront 将写入使用情况日志的存储桶
- 确认事件类型显示默认的创建的对象(全部)。
- 将前缀留空。
- 在后缀字段中输入 .gz。
- 选择启用触发条件。
- 单击添加。
- 单击保存以保存您的 Lambda 函数。
用于使用情况提取的 Vault 数字发布设置
- 导航到管理 > 设置 > 数字发布设置,然后单击编辑。
- 转到 https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region 并找到与您的地区匹配的相应条目。复制使用以下格式的终结点:
s3.\
.在 Vault 中,在 S3 终结点字段中输入此值。.amazonaws.com - 输入 S3 存储桶名称。这是您要连接的存储桶的名称,例如 vault-logging,可在 Amazon S3 控制台中找到。
- 输入日志目录。这是写入 CloudFront 日志的目录的名称。为分发打开 CloudFront 使用情况日志记录时指定此目录。例如,如果您在 CloudFront 分发中指定了名称“logging/”,则您需要输入“logging”作为日志目录。
- 输入分发 ID。这是 CloudFront 分发的分发 ID。Vault 利用此 ID 提取正确的日志。文件提取过程会查找文件名中包含指定分发 ID 的所有文件,然后提取文件所在的日期。
- 单击验证。Vault 会验证 S3 终结点和存储桶的名称是否准确,以及用户是否拥有适当的权限读取该目录中的文件。
查看渠道使用情况
一旦 Vault CDN 使用情况提取作业成功运行,系统即会将提取结果写入渠道使用情况对象。
将内容写入渠道使用情况对象时,将按活动日期、活动类型、文档、格式副本类型和边缘位置,对数据进行分组和汇总。
- “活动计数”字段将反映基于此分组的总出现次数。
- “边缘位置”字段对应于为请求提供服务的 CloudFront 边缘位置。每个边缘位置由 3 个字母的代码和任意分配的编号标识,例如 DFW3。三个字母的代码通常与边缘位置附近机场的国际航空运输协会机场代码对应,但根据 AWS,将来或会有所变更。
您需要向 Vault 用户提供对渠道使用情况对象的正确读取权限。提供适当的权限后,您可以设置其他配置,以包含渠道使用情况对象作为标签页,或使用渠道使用情况对象作为主要对象配置新的报告类型。