对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

更新一个 S3 块存储配置 (v2.0)

更新一个与 S3 兼容的存储块存储配置。 v2.0资源添加 keyVault对象。通过此对象,S3 兼容存储块存储从 HashiCorp Vault 读取其 AWS凭证。要学习;了解更多信息,请参阅适用于快照存储档案的 HashiCorp Vault。

基本 URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v2.0/admin/backup

PUT /snapshot/s3Configs/{S3-BLOCKSTORE-CONFIG-ID}
名称
类型
说明

S3-BLOCKSTORE-CONFIG-ID

字符串

标记此 S3兼容存储块存储配置的唯一名称。

以下查询参数为可选参数:

名称
类型
必要性
说明
默认

pretty

布尔

Optional

指示响应正文是否采用美观打印格式的标志。

false

envelope

布尔

Optional

指示是否将响应包装在信封中的标志。

某些API客户端无法访问权限HTTP响应标头或状态代码。要修复此问题,请在查询中设立Envelope=true。

对于返回一个结果的端点,响应体包括:

  • status: HTTP响应代码

  • content:预期响应正文

false

名称
类型
必要性
说明

AcceptedTos

布尔

必需

指示您是否接受将S3 兼容存储与MongoDB Ops Manager结合使用的服务条款的标志。必须将其设置为 true 才能创建 S3 兼容存储库。

如果将此设置为false ,Ops Manager 将返回错误。该错误表明 Ops Manager 无法创建 S3 兼容存储。

assignEnabled

布尔

Optional

指示是否可以将备份作业分配给此数据存储的标志。

AWS Access Key

字符串

可选的

可以访问权限s3BucketName 中指定的 S3 兼容存储桶的 AWS 访问密钥ID 。

如果"s3AuthMethod" : "IAM_ROLE" ,则无需包含awsAccessKey 。

AWS Secret Key

字符串

可选的

可以访问权限<s3BucketName> 中指定的与 S3 兼容的存储桶的 AWS 秘密访问密钥。

如果"s3AuthMethod" : "IAM_ROLE" ,则无需包含awsSecretKey 。

customCertificates

阵列

Optional

适用于关联的 S3 兼容存储桶的有效证书颁发机构证书的列表。

customCertificates[n].filename

字符串

Optional

标识证书颁发机构PEM文件的名称。

customCertificates[n].certString

字符串

Optional

构成证书颁发机构链的证书颁发机构PEM文件的内容。

disableProxyS3

布尔

必需

当连接到 S3 兼容存储时,指示是否使用HTTP 代理。即使您尚未将Ops Manager配置为使用HTTP 代理,也必须在每个请求中包含此字段,以创建或更新S3 兼容存储块存储。

加密凭证

布尔

Optional

标志,指示此 S3 兼容存储块存储的用户名和密码是否使用凭证工具加密。

labels

字符串数组

Optional

用于管理Ops Manager可以将哪些备份作业分配给哪些 S3 块存储的标签数组。

设置这些标签会限制此 S3 兼容存储块存储可以处理的备份作业。 如果省略,此 S3 兼容存储块存储只能处理不使用标签来筛选作业的项目的备份作业。

负载系数

数字

Optional

非零的正整数,表示此快照存储与其他快照存储相比执行的备份工作量。 仅当使用多个快照存储时才需要此选项。

要学习;了解有关Load Factor的更多信息,请参阅编辑一个现有块存储。

objectLockEnabled

布尔

Optional

标志,指示是否启用对象锁以防止 S3 存储桶中的对象被删除。

OIDC

对象

Optional

可选。 此存储的 OIDC身份验证设置。 oidc对象接受以下字段:

  • enabled:布尔值。为此存储启用 OIDC身份验证。

  • method: string.callback、azure、gcp或k8s之一。

  • tokenUri:字符串。 IdP 令牌端点。当 method 为 callback 时为必填项。

  • clientId:字符串。向 IdP 注册的客户端ID 。当 method 为 callback 时为必填项;当 method 为 azure 时可选。

  • clientSecret:字符串。向 IdP 注册的客户端密钥。当 method 为 callback 时为必填项。如果您编辑现有存储并省略此字段或提交先前 GET请求返回的编辑值, Ops Manager将保留现有密钥。

  • scope:字符串。从 IdP 请求的 OAuth2 范围。仅当 method 为 callback 时使用。

  • tokenResource:字符串。工作负载身份令牌的受众或资源标识符。当 method 为 azure 或 gcp 时为必填项。此值必须与目标MongoDB部署的 oidcIdentityProviders 设置中为此 IdP 配置的 audience 相匹配。

callback、azure、gcp 和 k8s 方法并不都需要相同的字段。azure、gcp 和 k8s 方法不需要 clientSecret。

当 oidc.enabled 为 true 时,在存储的 uri 字段中仅提供主机和连接选项。MongoDB Ops Manager 会忽略嵌入 URI 中的任何用户名或密码。

要将存储从 OIDC 切换到其他身份验证机制,请在请求中提交oidc: {enabled: false},而不是省略 oidc对象。

如果更新此存储并省略请求中的 oidc对象, Ops Manager将删除现有的 OIDC 配置。要保留现有配置,请在每个更新请求中包含当前的 oidc对象。

clientSecret 是唯一的例外。如果您从 oidc 对象中省略 clientSecret,或提交上一个 GET 请求返回的编辑值,MongoDB Ops Manager 将保留现有秘密。要更改秘密,请提交新的明文值。

pathStyleAccessEnabled

布尔

必需

指示此端点样式的标志。

  • true:路径样式的URL端点。示例,s3.amazonaws.com/<bucket>。

  • false:虚拟主机样式的URL端点。示例,<bucket>.s3.amazonaws.com。

要查看S3 兼容的存储桶URL约定,请参阅 AWS S3 文档。

s3AuthMethod

字符串

Optional

用于授权访问s3BucketName中指定的 S3 兼容存储桶的方法。

Ops Manager 接受以下值:

  • KEYS 或无: Ops Manager使用 awsAccessKey 和 awsSecretKey 授权访问权限s3BucketName 中指定的 S3 兼容存储桶。

  • IAM_ROLE: Ops Manager使用 AWS IAM角色授权访问权限s3BucketName 中指定的 S3 兼容存储桶。 awsAccessKey 和 awsSecretKey 字段将被忽略。要学习;了解更多信息,请参阅 AWS 文档

s3BucketEndpoint

字符串

必需

用于访问权限此 S3 兼容存储桶的URL 。

S3 存储桶名称

字符串

必需

托管与 S3 兼容的存储块存储的与 S3 兼容的存储桶的名称。

S3 最大连接数

数字

必需

正整数,表示与此 S3 兼容存储块存储的最大连接数。

s3RegionOverride

字符串

可选的

S3 兼容存储桶所在的地区。

仅当 S3 兼容存储的 s3BucketEndpoint 不支持地区作用域时,才使用此字段。请勿将此字段与 AWS S3 存储桶一起使用。

sseEnabled

布尔

必需

指示此 S3 兼容存储块存储是否启用服务器端加密。的标志。

uri

字符串

必需

以逗号分隔的主机列表,采用<hostname:port>格式,可以访问此 S3 兼容存储块存储。

ssl

布尔

Optional

指示此 S3 兼容存储块存储是否只接受使用 TLS加密的连接的标志。

writeConcern

字符串

Optional

用于此写关注(write concern)的块存储。

Ops Manager 接受以下值:

  • ACKNOWLEDGED

  • W2

  • JOURNALED

  • MAJORITY

要学习;了解MongoDB中的写入确认级别,请参阅写关注。

注意

当 s3AuthMethod 为 KEYS 时,请提供以下凭证源中的一个:keyVault 对象,或 awsAccessKey 和 awsSecretKey。当 s3AuthMethod 为 IAM_ROLE 时,请勿提供 keyVault 对象。如果您这样做,MongoDB Ops Manager 将返回错误,并忽略任何 awsAccessKey 和 awsSecretKey 值。

v2.0 资源添加以下密钥保管库参数:

名称
类型
必要性
说明

keyVault

对象

可选的

此 S3 兼容快照存储的 Vault 支持凭证源。当 s3AuthMethod 为 KEYS 时,请提供 keyVault 对象或 awsAccessKey 和 awsSecretKey,但不能同时提供这两者。要学习更多信息,请参阅 HashiCorp Vault 快照存储凭证。

keyVault.vaultId

字符串

可选的

存储凭证的密钥保管库配置的唯一标识符。此值与密钥保管库配置的 id 匹配。当提供 keyVault 时必需。

keyVault.awsAccessKeyPath

字符串

可选的

密钥保管库中 AWS访问权限密钥的路径,格式为 <secret-path>/<key>。 Ops Manager从位于 <secret-path> 的 Vault KV 版本 2 密钥中读取 <key>字段的值。示例,secret/data/s3/aws-access-key 从 secret/data/s3 的密钥中读取 aws-access-key字段。包括 KV 版本 2 所需的 /data/ 段。请勿包含 /v1/ API前缀。 Ops Manager会自动添加前缀。提供 keyVault 时为必填项。

keyVault.awsSecretKeyPath

字符串

可选的

密钥保管库中 AWS 密钥的路径。使用与 keyVault.awsAccessKeyPath 相同的 <secret-path>/<key> 格式。提供 keyVault 时为必填项。

名称
类型
说明

AcceptedTos

布尔

指示您是否接受将 S3 兼容存储与 MongoDB Ops Manager 结合使用的服务条款的标志。必须将其设置为 true 才能创建 S3 兼容存储库。

assignEnabled

布尔

指示是否可以将备份作业分配给此数据存储的标志。

AWS Access Key

字符串

可以访问权限s3BucketName 中指定的 S3 兼容存储桶的 AWS 访问密钥ID 。

AWS Secret Key

字符串

可以访问权限s3BucketName 中指定的 S3 兼容存储桶的 AWS 访问秘密密钥。

customCertificates

阵列

适用于关联的 S3 兼容存储桶的有效证书颁发机构证书的列表。

customCertificates[n].filename

字符串

标识证书颁发机构PEM文件的名称。

customCertificates[n].certString

字符串

构成证书颁发机构链的证书颁发机构PEM文件的内容。

disableProxyS3

布尔

指示连接到 S3 兼容存储时是否使用 HTTP proxy 的标志。

加密凭证

布尔

标志,指示此 S3 兼容存储块存储的用户名和密码是否使用凭证工具加密。

id

字符串

唯一标识此 S3 兼容存储块存储的名称。

labels

字符串数组

用于管理Ops Manager可以将哪些备份作业分配给哪些 S3 块存储的标签数组。

链接

对象数组

指向子资源或相关资源的一个或多个链接。响应中的所有 links 数组至少包含一个名为 self 的链接。URL之间的关系在 Web 链接规范中进行了解释。

负载系数

整型

非零的正整数,表示此快照存储与其他快照存储相比执行的备份工作量。 仅当使用多个快照存储时才需要此选项。

要学习;了解有关Load Factor的更多信息,请参阅编辑一个现有块存储。

objectLockEnabled

布尔

标志,指示是否启用对象锁以防止 S3 存储桶中的对象被删除。

OIDC

对象

此存储的 OIDC身份验证设置。 oidc对象包含以下字段:

  • enabled:布尔值。指示是否为此存储启用了 OIDC身份验证。

  • method: string.callback、azure、gcp或k8s之一。

  • tokenUri:字符串。 IdP 令牌端点。仅当 method 为 callback 时才出现。

  • clientId:字符串。向 IdP 注册的客户端ID 。

  • clientSecret: string.MongoDB Ops Manager 在响应中对此值进行编辑,并不返回原始客户端秘密。

  • scope:字符串。从 IdP 请求的 OAuth2 范围。仅当 method 为 callback 时出现。

  • tokenResource: string.工作负载身份标记的受众或资源标识符。仅在 method 为 azure 或 gcp 时出现。

pathStyleAccessEnabled

布尔

指示此端点样式的标志。

  • true:路径样式的URL端点。示例:s3.amazonaws.com/<bucket>

  • false:虚拟主机样式的URL端点。示例:<bucket>.s3.amazonaws.com

要查看S3 兼容的存储桶URL约定,请参阅 AWS S3 文档。

s3AuthMethod

字符串

用于授权访问s3BucketName中指定的 S3 兼容存储桶的方法。

此选项可接受的值为: KEYS 、 IAM_ROLE 。

  • KEYS 或无: Ops Manager使用 awsAccessKey 和 awsSecretKey 授权对 s3BucketName 中指定的 S3 兼容存储桶的访问权限。

  • IAM_ROLE: Ops Manager使用 AWS IAM角色授权访问权限s3BucketName 中指定的与 S3 兼容的存储桶。 awsAccessKey 和 awsSecretKey 字段将被忽略。要学习;了解更多信息,请参阅 AWS 文档

s3BucketEndpoint

字符串

Ops Manager用于访问权限此与 S3 兼容的存储桶的URL 。

S3 存储桶名称

字符串

托管与 S3 兼容的存储块存储的与 S3 兼容的存储桶的名称。

S3 最大连接数

整型

正整数,表示与此 S3 兼容存储块存储的最大连接数。

s3RegionOverride

字符串

S3 兼容存储桶所在的地区。仅当 S3 兼容存储存储的s3BucketEndpoint不支持地区作用域时,此字段才适用。

仅当您在创建或更新此 S3 兼容存储块存储时包含此字段时,Ops Manager 才会返回此字段。

sseEnabled

布尔

指示此 S3 兼容存储块存储是否启用服务器端加密。的标志。

ssl

布尔

指示此 S3 兼容存储块存储是否只接受使用 TLS加密的连接的标志。

uri

字符串

连接到此 S3 兼容存储块存储存储的元数据数据库的连接字符串。该数据库将区块的位置存储在与 AWS S3 兼容的存储桶中。

writeConcern

字符串

用于此写关注(write concern)的块存储。

Ops Manager 返回以下值之一:

  • ACKNOWLEDGED

  • W2

  • JOURNALED

  • MAJORITY

要学习;了解MongoDB中的写入确认级别,请参阅写关注。

v2.0 资源添加了以下密钥保管库字段:

名称
类型
说明

keyVault

对象

此 S3 兼容快照存储的 Vault 支持凭证源。MongoDB Ops Manager 仅在快照存储从密钥保管库读取其凭证时返回此对象。

keyVault.vaultId

字符串

存储凭证的密钥仓库配置的唯一标识符。

keyVault.awsAccessKeyPath

字符串

AWS访问权限密钥在密钥保管库中的路径。

keyVault.awsSecretKeyPath

字符串

AWS 密钥在密钥保管库中的路径。

curl --user '{PUBLIC-KEY}:{PRIVATE-KEY}' --digest \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--include \
--request PUT 'https://<OpsManagerHost>:<Port>/api/public/v2.0/admin/backup/snapshot/s3Configs/{S3-BLOCKSTORE-CONFIG-ID}?pretty=true' \
--data '{
"assignmentEnabled": true,
"pathStyleAccessEnabled": false,
"acceptedTos": true,
"encryptedCredentials": false,
"loadFactor": 1,
"s3AuthMethod": "KEYS",
"s3BucketEndpoint": "s3.amazonaws.com",
"s3BucketName": "bucketname",
"s3MaxConnections": 50,
"sseEnabled": true,
"uri": "mongodb://127.0.0.1:27017",
"ssl": false,
"writeConcern": "ACKNOWLEDGED",
"keyVault": {
"vaultId": "{KEY-VAULT-ID}",
"awsAccessKeyPath": "path/to/awsAccessKey",
"awsSecretKeyPath": "path/to/awsSecretKey"
}
}'
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Date: {dateInUnixFormat}
WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false
Content-Length: {requestLengthInBytes}
Connection: keep-alive
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: application/json
Strict-Transport-Security: max-age=300
Date: {dateInUnixFormat}
Connection: keep-alive
Content-Length: {requestLengthInBytes}
X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
{
"acceptedTos": true,
"assignmentEnabled": true,
"encryptedCredentials": false,
"id": "{S3-BLOCKSTORE-CONFIG-ID}",
"keyVault": {
"vaultId": "{KEY-VAULT-ID}",
"awsAccessKeyPath": "path/to/awsAccessKey",
"awsSecretKeyPath": "path/to/awsSecretKey"
},
"links": [
{
"href": "https://<OpsManagerHost>:<Port>/api/public/v2.0/admin/backup/snapshot/s3Configs/{S3-BLOCKSTORE-CONFIG-ID}",
"rel": "self"
}
],
"loadFactor": 1,
"pathStyleAccessEnabled": false,
"s3AuthMethod": "KEYS",
"s3BucketEndpoint": "s3.amazonaws.com",
"s3BucketName": "bucketname",
"s3MaxConnections": 50,
"sseEnabled": true,
"ssl": false,
"uri": "mongodb://127.0.0.1:27017",
"writeConcern": "ACKNOWLEDGED"
}