【AWS】实操-保护 Amazon S3 VPC 终端节点通信

news2024/11/19 23:40:59

文章目录

    • 实验概览
    • 目标
    • 实验环境
    • 任务 1:探索并启动实验环境
      • 任务 1.1:探索 Amazon VPC 资源
      • 任务 1.2:探索 Amazon EC2 资源
      • 任务 1.3:创建 Amazon VPC 终端节点
      • 任务 1.4:连接私有 EC2 实例
      • 任务 1.5:探索 Amazon S3 资源
    • 任务 2:通过 Amazon EC2 实例与 Amazon S3 交互
    • 任务 3:为 Amazon S3 创建 VPC 终端节点
    • 任务 4:通过私有实例与 Amazon S3 交互
    • 🔴添加 VPC 终端节点策略
    • 🟢解决方案
      • 控制台步骤
      • AWS CLI 步骤
    • 总结

实验概览

数据安全至关重要。Amazon Web Services (AWS) 提供了多种解决方案和最佳实践来帮助保护数据的安全。了解如何做出最佳决策来保护数据的安全,这项任务可能具有挑战性。在无路由指向互联网的私有子网中运行应用程序,可将攻击面限制为仅限内部流量,从而实现数据安全。该策略是一项很好的安全措施。但是,当应用程序必须从 Amazon Simple Storage Service (Amazon S3) 等服务访问数据时,可能会出现问题。


为了解决此类问题,AWS 提供了 Amazon Virtual Private Cloud (Amazon VPC) 终端节点。使用 VPC 终端节点,您可以通过私密方式将 VPC 连接到受支持的 AWS 服务。**这种私密连接无需互联网网关、NAT 网关、VPN 连接或 AWS Direct Connect 连接即可实现。**通过 VPC 终端节点进行通信时,不需要使用 VPC 中的资源即可获取公有 IP 地址。这样,通过 VPC 终端节点的流量就能保持在 Amazon 网络内。


在本实验中,将创建 VPC 终端节点。然后,将使用这些终端节点从位于私有子网的 Amazon Elastic Compute Cloud (Amazon EC2) 实例访问 Amazon S3。要进一步提高数据安全性,可以创建 VPC 终端节点策略,仅限特定资源使用终端节点。


目标

完成本实验后,将能够:

  • 了解私有子网和公有子网,了解它们为何能够或不能与 Amazon S3 通信。
  • 使用 AWS 管理控制台和 AWS Command Line Interface (AWS CLI) 配置 VPC 终端节点。
  • 通过私有子网中的 VPC 终端节点与 Amazon S3 交互。
  • 创建 VPC 终端节点策略以限制对资源的访问

实验环境

在本实验中,已创建包含公有子网和私有子网的 VPC。私有子网路由表不包括 NAT 网关或互联网网关。因此,在私有子网中启动的资源无法与公共互联网或任何通过公共互联网传输数据的 AWS 服务进行通信。

本实验将演示 VPC 终端节点的工作原理。为此,已在公有子网中启动了 EC2 实例,并在私有子网中启动了相同的 EC2 实例。VPC 终端节点允许来自私有 EC2 实例的流量访问需要公有路由的 AWS 服务。为了验证这一结果,本实验已经创建了一个 Amazon S3 存储桶,其中包含一个演示文件。

下图显示了为本实验预置的所有资源:
image-20230831153822796

任务 1:探索并启动实验环境

在此任务中,将查看预置的实验资源。这些资源包括 VPC、子网、Amazon S3 存储桶和 Amazon EC2 实例。还可以创建 VPC 终端节点,以允许 AWS Systems Manager Session Manager 访问实例。

下图显示了为本实验任务预置的所有资源以及这些资源的连接方式:

image-20230831154925015

任务 1.1:探索 Amazon VPC 资源

  • 查看VPC——labVPC

image-20230831155437370

  • 查看labVPC中所创建的子网

image-20230831155514494

  • 公有子网PublicSubnetA配置了互联网关,可以向外通信。

image-20230831155604022

  • 私有子网PrivateSubnetA没有配置互联网关不能向外通信。

image-20230831155656856

  • 查看路由表PublicRouteTable子网关联情况

image-20230831155806452

  • 查看路由表PrivateRouteTable子网关联情况

image-20230831155843987

任务 1.2:探索 Amazon EC2 资源

通过控制台,导航至EC2控制面板,查看云实例。

image-20230831160057874

  • 查看云实例

image-20230831160239222

  • 查看云主机所使用的HTTPS-SSM-ENDPOINT安全组。

image-20230831160314841

  • 该实例为公有网络中的云主机实例,使用 Session Manager 可以直接连接到实例。

image-20230831161055177

  • 通过会话管理器,可以连接到该云主机实例。
ls

image-20230831161153330

  • 接下来,当使用同样的方式进行云主机实例登录。发现登录不了。

此时将显示一条错误消息:"We weren't able to connect to your instance."。这时,要使用 Session Manager 连接实例,可以创建接口终端节点。

image-20230831162522235
可以将 Systems Manager 配置为使用接口 virtual private cloud (VPC) 终端节点,进一步改善托管节点的安全态势。AWS PrivateLink 将托管节点、Systems ManagerAmazon EC2 之间的所有网络流量限定为 Amazon 网络。这一限制让您无需在私有 EC2 实例上进行任何出站互联网访问。

任务 1.3:创建 Amazon VPC 终端节点

  • 创建一个 Session Manager 终端节点,以便能够在不使用互联网网关或 NAT 网关的情况下连接到私有 EC2 实例

image-20230831162900418

  • 终端节点配置
  1. 在 Name tag - optional(名称标签 – 可选)框内输入SSM Endpoint
  2. Service Name(服务名称)筛选框中,输入ssm 并按 Enter 键。
  3. 选择 com.amazonaws.REGION.ssm,其中 REGION 是您从中启动实验的区域。
  4. 对于 VPC,从下拉菜单中选择 labVPC

image-20230831163716840

  • 待终端节点状态变成可用状态就可以访问使用。

image-20230831163944512

任务 1.4:连接私有 EC2 实例

  • 选择连接 PrivateCommandHost云实例。

image-20230831164146604

  • 选择 *Connect*(连接)按钮。系统会打开一个新的浏览器标签页。现在,已使用一个实例终端节点连接到了私有子网中的实例。

image-20230831164232823

  • 成功连接。

image-20230831164337550

任务 1.5:探索 Amazon S3 资源

  • 查看存储桶。

image-20230831164728448

任务 2:通过 Amazon EC2 实例与 Amazon S3 交互

连接到公有实例和私有实例,并尝试在不使用 Amazon S3 VPC 端点的情况下从每个实例访问 Amazon S3 存储桶中的文件。

如下图所示,能够从公有实例而非私有实例访问 S3 存储桶:
image-20230831164854419

  • 命令:要访问主目录,请运行以下命令:
cd ~

命令:为了帮助区分 AWS CLI 中的命令和输出,请运行以下命令。此命令将在屏幕上显示的任何输出之前添加一个空行:

trap 'printf "\n"' DEBUG

还可以通过导出 PS1 变量来更改命令提示符,使输出更易于阅读。
命令:要执行此操作,请运行以下命令:

export PS1="\n[\u@\h \W] $ "

命令:要配置 AWS CLI,请运行以下命令:

aws configure

命令:出现提示时,配置以下各项:

  • AWS Access Key ID [None](AWS 访问密钥 ID [无]):按 Enter 键
  • AWS Secret Access Key [None](AWS 秘密访问密钥[无]):按 Enter 键
  • Default region name [None](默认区域名称 [无]):复制并粘贴 Region(区域)值
  • Default output format [None](默认输出格式 [无]):json

image-20230831165455787

(可选)注意:如果收到内容为 Partial credentials found in shared-credentials-file, missing: aws_secret_access_key(在 shared-credentials-file 中发现部分凭证,缺少:aws_secret_access_key)的错误消息,请运行以下命令删除凭证文件,并重新执行 aws configure 命令。否则,请继续下一步。

rm ~/.aws/credentials

命令:列出在账户中有权访问的 S3 存储桶,请运行以下命令:

aws s3 ls

image-20230831165714219
命令:要列出 LabBucket 中的所有文件,请运行以下命令。将 替换为LabBucket的相应值:

aws s3 ls s3://<LabBucket>

labstack-2848353a-a5d2-4c70-b586-997e2b-labbucket-c72jm1b2ozlq
labstack-2848353a-a5d2-4c70-b586-labloggingbucket-1ctuk4k4ixe1

image-20230831165924054
命令:要将该文件从 Amazon S3 复制到本地主目录,请运行以下命令。将 替换为LabBucket的相应值:

aws s3 cp s3://<LabBucket>/demo.txt ~/

labstack-2848353a-a5d2-4c70-b586-997e2b-labbucket-c72jm1b2ozlq

命令:要将该文件的内容显示到屏幕上,请运行以下命令:

less demo.txt

已能够将文件从 Amazon S3 下载到公有实例。键入q 以退出编辑器。接下来,从主目录中修改此文件,并将其重新上传到 LabBucket

命令:要向该文件添加文本并将更新后的文件内容显示在屏幕上,请运行以下命令:

echo "
This is some non-unique text that will be appended to your file." >> demo.txt

less demo.txt

image-20230831170947623

命令:要将更新后的文件重新上传回 Amazon S3,请运行以下命令。将 替换为LabBucket的相应值:

aws s3 cp demo.txt s3://<LabBucket>/

labstack-2848353a-a5d2-4c70-b586-997e2b-labbucket-c72jm1b2ozlq

切换到显示 AWS 管理控制台的浏览器标签页。在存储桶列表中,选择与实验页面左侧的 LabBucket 值匹配的存储桶名称。选择 demo.txt 文件的名称。选择 Open(打开)。该文件将在新的浏览器标签页中打开。已从公有实例成功更新了该文件。注意:如果该文件未在浏览器标签页中打开,请确保未阻止弹出窗口。

![image-20230831171133573](https://img-blog.csdnimg.cn/img_convert/bcc93fda9122a095626892183e1ce533.png
image-20230831171212213



接下来,对位于私有子网中的实例运行相同的命令,该子网没有指向互联网的路由。Amazon S3 不在 VPC 中;如果没有指向互联网的路由,将无法访问存储桶。这也意味着,从公有实例向 Amazon S3 发出的所有请求都需要一条指向互联网的路由,才能访问公有 Amazon S3 终端节点。



命令:要访问主目录,请运行以下命令:

cd ~ && trap 'printf "\n"' DEBUG && export PS1="\n[\u@\h \W] $ " && aws configure

image-20230831172259514

大约 5 分钟后,该命令会超时。等待约五分钟,按 ctrl + c 中断该进程,避免超时。私有实例没有指向 Amazon S3 的路由,因为没有互联网网关、NAT 网关或 VPC 终端节点。



任务 3:为 Amazon S3 创建 VPC 终端节点

在此任务中,将创建 VPC 网关端点以从私有实例访问 Amazon S3。您可以使用 AWS CLI 来运行命令并创建端点。要使 AWS CLI 能够与 VPC 外部的资源(即全局 AWS 服务)进行通信,需要从公有实例运行命令。

下图显示了为本实验任务预置的所有资源以及这些资源的连接方式:
image-20230831172015067

切换回到用于连接公有实例的标签页。

要列出已为其创建 VPC 终端节点的服务,请运行以下命令:

aws ec2 describe-vpc-endpoints --query 'VpcEndpoints[*].ServiceName'

image-20230831172358270
命令:要查找 labVPC 的 VPC ID,请运行以下命令:

VPC=$(aws ec2 describe-vpcs --query 'Vpcs[*].VpcId' --filters 'Name=tag:Name, Values=labVPC' | jq -r '.[0]')

echo $VPC

image-20230831173046816

此命令使用 JQ 来处理 JSON 输出,并对其采用正确的格式以备日后使用。

命令:要查找私有路由表的路由表 ID,请运行以下命令:

RTB=$(aws ec2 describe-route-tables --query 'RouteTables[*].RouteTableId' --filters 'Name=tag:Name, Values=PrivateRouteTable' | jq -r '.[0]')

echo $RTB

image-20230831173312333
✨命令✨:要创建 Amazon S3 终端节点,请运行以下命令:

export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')

echo $AWS_REGION

aws ec2 create-vpc-endpoint \
    --vpc-id $VPC \
    --service-name com.amazonaws.$AWS_REGION.s3 \
    --route-table-ids $RTB

注意:上述命令中加入了反斜线,以作为多行命令运行。

image-20230831173647284
image-20230831173624706

Amazon S3 VPC 终端节点现已创建完成。


命令:要验证 Amazon S3 VPC 终端节点是否已创建,请运行以下命令:

aws ec2 describe-vpc-endpoints --query 'VpcEndpoints[*].ServiceName'

image-20230831173746357

此时 Amazon S3 终端节点已显示在列表中。


任务 4:通过私有实例与 Amazon S3 交互

在此任务中,将使用位于私有子网中的实例,该实例之前无法访问 Amazon S3。现在已创建 Amazon S3 终端节点并将其与私有子网所关联的路由表关联,因此无需使用公共资源,即可直接访问 Amazon S3,如下图所示:

image-20230831173821653

切换到用于连接私有实例的标签页。

要列出在账户中有权访问的 S3 存储桶,请运行以下命令:

aws s3 ls

命令:要列出 LabBucket 中的所有文件,请运行以下命令。将 替换为LabBucket的相应值:

aws s3 ls s3://<LabBucket>

labstack-2848353a-a5d2-4c70-b586-997e2b-labbucket-c72jm1b2ozlq

此命令将显示一个列表,其中包含与您之前从控制台看到的 S3 存储桶中的文件相匹配的文件。

命令:要显示实例主目录中的文件列表,请运行以下命令:

cd ~
ls -l

请注意,此目录中没有本地文件,因为之前已将文件从 S3 下载到公有实例,现在已连接到私有实例。

命令:要将该文件从 Amazon S3 复制到本地主目录,请运行以下命令。将 替换为LabBucket的相应值:

aws s3 cp s3://<LabBucket>/demo.txt ~/

labstack-2848353a-a5d2-4c70-b586-997e2b-labbucket-c72jm1b2ozlq

命令:要将该文件的内容显示到屏幕上,请运行以下命令:

less  demo.txt

image-20230831174549146

现在有了 Amazon S3 VPC 终端节点,就可以从私有实例上的 Amazon S3 中下载文件。


🔴添加 VPC 终端节点策略

借助 VPC 网关终端节点,可以指定限制访问权限的策略。使用终端节点策略,您可以准确指定允许私有子网中的实例访问哪些 Amazon S3 存储桶。例如,策略允许提供对数据存储桶的访问权限但限制对日志记录存储桶的访问

使用控制台或 AWS CLI 向 Amazon S3 VPC 网关终端节点添加策略,以允许访问 labbucket,但拒绝访问 labloggingbucket,如下图所示:

image-20230831174638153

从以下策略模板入手:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:List*",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabBucket>",
                "arn:aws:s3:::<LabBucket>/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabLoggingBucket>",
                "arn:aws:s3:::<LabLoggingBucket>/*"
            ]
        }
    ]
}

下图显示了为本实验任务预置的所有资源以及这些资源的连接方式:

image-20230831174749933
已成功地添加一个 VPC 终端节点策略,以限制对 labloggingbucket 的访问。

🟢解决方案

以下步骤概述了如何向 Amazon S3 网关端点添加 VPC 网关端点策略。提供了通过控制台和 AWS CLI 执行此操作的说明。

控制台步骤

AWS 管理控制台中,使用 AWS 搜索栏搜索VPC ,然后从结果列表中选择该服务。

在左侧导航窗格中,选择 Endpoints(终端节点)。

选择 com.amazonaws.REGION.s3 端点。

选择 Policy(策略)选项卡。

选择 Edit Policy(编辑策略)。

选择 Custom(自定义)。

复制以下策略并将其粘贴到文本框中:

注意:将 替换为相应值。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:List*",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabBucket>",
                "arn:aws:s3:::<LabBucket>/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabLoggingBucket>",
                "arn:aws:s3:::<LabLoggingBucket>/*"
            ]
        }
    ]
}

选择 *Save*(保存)。

现在,已向 Amazon S3 网关终端节点添加了策略。可以通过运行以下命令从私有实例测试该策略:

命令:将 替换为相应值。

aws s3 ls s3://<LabBucket>
aws s3 ls s3://<LabLoggingBucket>

AWS CLI 步骤

转到用于连接公有实例的浏览器标签页。

命令:要创建策略文档的 JSON 文件,请运行以下命令。将 替换为相应值:

cd ~
cat <<EOT >> policy.json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:List*",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabBucket>",
                "arn:aws:s3:::<LabBucket>/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<LabLoggingBucket>",
                "arn:aws:s3:::<LabLoggingBucket>/*"
            ]
        }
    ]
}
EOT

命令:要查找 VPC 终端节点 ID,请运行以下命令:

export vpcEndpointId=$(aws ec2 describe-vpc-endpoints --query 'VpcEndpoints[?contains(ServiceName, `s3`) == `true`].VpcEndpointId' --output text)

echo ${vpcEndpointId}

命令:要将策略附加到 VPC 终端节点,请运行以下命令:

aws ec2 modify-vpc-endpoint --vpc-endpoint-id ${vpcEndpointId} --policy-document file://policy.json

现在,已向 Amazon S3 网关终端节点添加了策略。可以通过运行以下命令从私有实例测试该策略:

命令:将 替换为相应值。

aws s3 ls s3://<LabBucket>
aws s3 ls s3://<LabLoggingBucket>

总结

  • 了解私有子网和公有子网以及它们为何能够或不能与 Amazon S3 通信
  • 使用 AWS 管理控制台和 AWS CLI 配置 VPC 端点
  • 通过私有子网中的 VPC 端点与 Amazon S3 交互
  • 创建限制资源访问的 VPC 端点策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在win上,使用命令关闭占用端口号的进程

假设在 Windows 10 上&#xff0c;你可以使用以下命令关闭占用端口号为6200的进程&#xff1a; 打开命令提示符或 PowerShell 终端。 运行以下命令以查找占用端口号为6200的进程的 PID&#xff1a; netstat -ano | findstr :6200在输出中&#xff0c;找到占用端口号为6200的…

金蝶云星空二开,插件查看工具

可查询单据上挂载的系统原有插件、二开插件及插件类型 1.支持模糊查询单据列表 2.支持项目与账套二开插件对比 3.支持金蝶不同账套之间对比差异 操作步骤&#xff1a; 1.登陆界面&#xff0c;选择金蝶云管理中心账套登录获取账套列表&#xff1b; 2.单一标识查询&#xff1a;…

【Vue3】组件递归

【Vue3】组件递归 实现效果 通过传入一个数字&#xff0c;实现数字次循环 父组件 <script setup> import { ref } from "vue"; import RecursionMe from "./components/RecursionMe/index.vue";const level ref(0);const add () > level.val…

Unity 切换场景后场景变暗

问题 Unity版本&#xff1a;2019.4.34f1c1 主场景只有UI&#xff0c;没有灯光&#xff0c;天空盒&#xff1b;其他场景有灯光和天空盒所有场景不烘焙主场景作为启动场景运行&#xff0c;切换到其他场景&#xff0c;场景变暗某一个场景作为启动场景运行&#xff0c;光影效果正…

建筑工程数据处理的重要性有哪些?

建筑工程的数据非常复杂&#xff0c;数据处理也是非常重要的。它可以提高工程效率和质量&#xff0c;能够为决策者提供依据。那对于建筑工程来讲&#xff0c;数据处理重要性有哪些&#xff1f; 1.提高数据准确性 建筑工程数据处理需要准确无误&#xff0c;避免出现措施以及出现…

内网隧道代理技术(十八)之 上线不出网机器

上线不出网机器 不出网机器介绍 上线不出网机器是我们常见的问题&#xff0c;如何在内网中实现不出网机器的上线呢&#xff0c;我们分为了如下的形式&#xff0c;根据之前所学的内容我们开始进行实验&#xff0c;常见的网络拓扑如下&#xff1a; 一般渗透的场景是这样的&…

瑞芯微:基于RK3568得人脸朝向检测

驾驶员监控系统是基于驾驶员面部图像处理来研究驾驶员状态的实时系统。首先挖掘出人在疲劳状态下的表情特征&#xff0c;然后将这些定性的表情特征进行量化&#xff0c;提取出面部特征点及特征指标作为判断依据&#xff0c;再结合实验数据总结出基于这些参数的识别方法&#xf…

AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘

原因 pytorch版本问题 解决办法 顺着路径找到文件upsampling.py并打开&#xff0c;修改里面的代码即可解决&#xff0c; 这个方式不需要重新安装pytorch YOLOV5 训练好模型测试时出现问题&#xff1a;AttributeError: ‘Upsample‘ object has no attribute ‘recompute_sc…

多路波形发生器的控制

本次波形发生器&#xff0c;主要使用运算放大器、NE555以及一些其他的电阻电容器件来实现。整体电路图如下所示&#xff1a; 产生的三角波如下&#xff1a; 正弦波如下 方波如下&#xff1a; 运算放大器&#xff08;Operational Amplifier&#xff0c;简称OP-AMP&#xff09;是…

将数字转化为时间格式

输入字符串类型数据&#xff1a;年-月&#xff0c;输出该月的第一天&#xff0c;最后一天&#xff0c;该月天数&#xff0c;时间序列索引。示例&#xff1a;输入2019-09&#xff0c;输出如下 calendar模块monthrange方法返回两个参数&#xff1a;该月第一天是星期几、该月有多少…

ChatGPT插件的优缺点

虽然西弗吉尼亚大学的研究人员看到了最新的官方ChatGPT插件——名为“代码解释器”&#xff08; Code Interpreter&#xff09;的教育应用潜力&#xff0c;但他们也发现&#xff0c;对于使用计算方法处理针对癌症和遗传疾病的定向治疗的生物数据的科学家来说&#xff0c;这款插…

【C++模拟实现】vector的模拟实现

【C模拟实现】vector的模拟实现 目录 【C模拟实现】vector的模拟实现vector模拟实现的标准代码vector模拟实现中的要点insert和erase会涉及到迭代器失效的问题vector深度剖析关于模版template< class InputIterator >使用memcpy拷贝问题 作者&#xff1a;爱写代码的刚子 …

ShardingSphere——弹性伸缩原理

摘要 支持自定义分片算法&#xff0c;减少数据伸缩及迁移时的业务影响&#xff0c;提供一站式的通用弹性伸缩解决方案&#xff0c;是 Apache ShardingSphere 弹性伸缩的主要设计目标。对于使用单数据库运行的系统来说&#xff0c;如何安全简单地将数据迁移至水平分片的数据库上…

windows安装MongoDB后进入命令交互界面失败解决方案

MongoDB下载链接&#xff1a;https://www.mongodb.com/download-center MongoDB安装教程&#xff1a;https://juejin.cn/post/6844903912000978952 不要安装最新的高版本MongoDB&#xff0c;因为配置方法可能会有差别&#xff0c;比如7.0一直失败的话就换5.0及以下版本试试&am…

RDMA性能优化经验浅谈

一、RDMA概述 首先我们介绍一下RDMA的一些核心概念&#xff0c;当然了&#xff0c;我并不打算写他的API以及调用方式&#xff0c;我们更多关注这些基础概念背后的硬件执行方式和原理&#xff0c;对于这些原理的理解是能够写出高性能RDMA程序的关键。 Memory Region RDMA的网…

Vue:关于声明式导航中的 跳转、高亮、以及两个类名的定制

声明式导航-导航链接 文章目录 声明式导航-导航链接router-link的两大特点&#xff08;能跳转、能高亮&#xff09;声明式导航-两个类名定制两个高亮类名 实现导航高亮&#xff0c;实现方式其实&#xff0c;css&#xff0c;JavaScript , Vue ,都可以实现。其实关于路由导航&…

CF Edu152 C

Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先&#xff0c;观察样例可知 这种是等效的 推广一下 0000.....111111 ..l..............r...... 这种是等效的 容易想到维护后面第一个1的位置和前面第一个0的位置&#xff0c;然后把所有区间都等效一下&…

Spring Aop--通知注解

一、环绕注解 环绕注解 环绕注解Aroud 注解描述AroundAround是Spring AOP中的一种通知类型&#xff0c;用于在目标方法执行前后进行环绕操作。它可以在方法调用前后增加额外的逻辑&#xff0c;例如日志记录、性能监控等。Around注解需要配合AspectJ表达式来指定切入点&#…

el-date-picker自定义只能选中当前月份和半年内月份等

需求&#xff1a;el-date-picker只能选中当前月期和当前月期往前半年&#xff0c;其他时间就禁用了不让选择了&#xff0c;因为没数据哈哈。当然也可以选择往前一年等。 一、效果 二、写个日期选择器 :picker-options&#xff1a;日期选项 value-format&#xff1a;选择后的格…

Revit SDK 介绍:AvoidObstruction 避免碰撞

前言 这个例子介绍如何让碰撞在一起的管道避免碰撞&#xff0c;即对管道进行调整。 内容 调整前&#xff1a; 调整后&#xff1a; 从结果来看&#xff0c;所有的碰撞都被调整了。作为一个例子&#xff0c;不会去考虑是否合理&#xff0c;仅仅是展示了一下 Revit API 的能…