AWS S3
集成版本:4.0
使用场景
- 管理存储桶
 - 从存储分区下载文件
 - 将文件上传到存储分区
 
在 Google Security Operations 中配置 AWS S3 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 实例名称 | 字符串 | 不适用 | 否 | 您打算为其配置集成的实例的名称。 | 
| 说明 | 字符串 | 不适用 | 否 | 实例的说明。 | 
| AWS 访问密钥 ID | 字符串 | 不适用 | 是 | 要在集成中使用的 AWS 访问密钥 ID。 | 
| AWS 密钥 | 密码 | 不适用 | 是 | 要在集成中使用的 AWS 密钥。 | 
| AWS 默认区域 | 字符串 | 不适用 | 是 | 集成中要使用的 AWS 默认区域,例如 us-west-2。 | 
| 远程运行 | 复选框 | 尚未核查 | 否 | 选中此字段,以便远程运行配置的集成。选中后,系统会显示用于选择远程用户(客服人员)的选项。 | 
操作
Ping
说明
使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数,测试与 AWS S3 的连接。
使用场景
测试连接。
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功: “已使用提供的连接参数成功连接到 AWS S3 服务器!” 操作应失败并停止 playbook 执行: 如果不成功: “无法连接到 AWS S3 服务器!错误为 {0}".format(exception.stacktrace)  | 
常规 | 
列出存储分区
说明
从 AWS S3 检索存储分区列表。
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
{
    "Buckets": [
        {
            "CreationDate": %Y-%m-%dT%H:%M:%S,
            "Name": "testsiemplify"
        }
    ],
    "Owner": {
        "DisplayName": "lab_aws",
        "ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
    },
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码为 200 (is_success = true),则表示“已成功列出 AWS S3 中可用的存储分区”。 如果状态代码为其他值 (is_success=false):“操作无法列出 AWS S3 中的可用存储分区。 操作应失败并停止 playbook 执行: 如果出现致命错误,例如凭据错误、无法连接到服务器等:“Error executing action "List Buckets". 原因:{0}''.format(error.Stacktrace)  | 
常规 | 
获取存储分区政策
说明
从 AWS S3 检索有关存储桶政策的信息。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 存储桶名称 | 字符串 | 不适用 | 是 | 指定要从中检索政策信息的存储桶的名称。 | 
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
{
    "Policy": {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AddPerm",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::testsiemplify/*"
            }
        ]
    }
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码为 200 (is_success = true)“已成功检索到 AWS S3 中存储桶‘{0}’的政策信息”。format(bucket_name) 如果状态代码为其他值 (is_success=false):“操作无法返回有关 AWS S3 中 '{0}' 存储桶的政策的信息”。format(bucket_name) 操作应失败并停止 playbook 执行: 如果出现致命错误,例如凭据错误、无法连接到服务器、其他错误:“Error executing action "Get Bucket Policy". 原因:{0}''.format(error.Stacktrace)  | 
常规 | 
设置存储分区政策
说明
在 AWS S3 的存储桶中设置政策。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 存储桶名称 | 字符串 | 不适用 | 是 | 指定要更新政策的存储桶的名称。 | 
| 政策 JSON 对象 | 字符串 | 不适用 | 是 | 指定要为相应存储桶设置的政策的 JSON 对象。如需查看示例,请访问以下网址:https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html。 | 
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
bucket_policy = {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': '*',
        'Action': ['s3:GetObject'],
        'Resource': f'arn:aws:s3:::{bucket_name}/*'
    }]
}
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码 == 204(is_success = true)“已成功更新 AWS S3 中存储桶 "{0}" 的政策”。format(bucket_name) 如果状态代码为其他值 (is_success=false):“操作无法更新 AWS S3 中‘{0}’存储桶的政策”。format(bucket_name) 操作应失败并停止 playbook 执行: 如果出现严重错误,例如凭据错误、无法连接到服务器、其他错误:“Error executing action "Set Bucket Policy". 原因:{0}''.format(error.Stacktrace)  | 
列出存储分区对象
说明
允许用户停用用户账号。请求正文包含要停用的用户。相应账号的 enabled 属性应设置为 false。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 存储桶名称 | 字符串 | 不适用 | 是 | 指定要从中检索对象的存储桶的名称。 | 
| 要返回的对象数上限 | 整数 | 不适用 | 否 | 指定要返回的对象数量。 | 
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
"Contents": [
        {
            "Key": "text.txt",
            "LastModified": %Y-%m-%dT%H:%M:%S,
            "ETag": "d41d8cd98f00b204e9800998ecf8427e",
            "Size": 0,
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "lab_aws",
                "ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
            }
        },
        {
            "Key": "text_1.txt",
            "LastModified": %Y-%m-%dT%H:%M:%S,
            "ETag": "d41d8cd98f00b204e9800998ecf8427e",
            "Size": 0,
            "StorageClass": "STANDARD",
            "Owner": {
                "DisplayName": "lab_aws",
                "ID": "935dc3fed0e1d2c5b12242cf9927370824f2438681a2d3c0523f254dbde41aba"
            }
        }
    ]
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码 == 200(is_success = true)“已成功返回 AWS S3 中存储桶 "{0}" 的对象”。format(bucket_name) 如果返回其他状态代码 (is_success=false):“操作无法返回 AWS S3 中‘{0}’存储桶的对象”。format(bucket_name) 操作应失败并停止 playbook 执行: 如果出现严重错误,例如凭据错误、无法连接到服务器、其他错误:“Error executing action "List Bucket Objects". 原因:{0}''.format(error.Stacktrace)  | 
常规 | 
| “案例墙”表格 | 表格名称:“{0}”存储分区对象 列: 
  | 
常规 | 
从存储分区下载文件
说明
从 AWS S3 中的存储桶下载文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 存储分区文件路径 | 字符串 | s3://{bucket_name}/{file_name} | 是 | 指定存储桶中文件的路径。示例:s3://siemplify/syslog/log.txt | 
| 下载路径 | 字符串 | 不适用 | 是 | 指定下载文件的路径。 | 
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
{
"bucket_file_path": "s3://testsiemplify/test/123.txt"
"download_path": "/usr/bin/share/download.txt"
}
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码 == 200(is_success = true)“已成功从 AWS S3 下载‘{0}’”。format(bucket_file_path) 如果状态代码为其他值 (is_success=false):“操作无法从 AWS S3 下载 '{0}'。原因:具有该下载路径的文件已存在。” 操作应失败并停止 playbook 执行: 如果出现致命错误,例如凭据错误、无法连接到服务器、SDK 错误等:“Error executing action "Download File From Bucket". 原因:{0}''.format(error.Stacktrace)  | 
常规 | 
将文件上传到存储分区
说明
将文件上传到 AWS S3 中的存储桶。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 | 
|---|---|---|---|---|
| 文件路径 | 字符串 | 不适用 | 是 | 指定需要上传的文件的路径。 | 
| 存储分区上传路径 | 字符串 | s3://{bucket_name}/{file_name} | 是 | 指定存储桶中应上传路径的路径。示例:s3://siemplify/syslog/log.txt | 
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 | 
|---|---|---|
| is_success | True/False | is_success:False | 
JSON 结果
{
"bucket_upload_path": "s3://testsiemplify/test/123.txt"
"file_path": "/usr/bin/share/download.txt"
}
案例墙
| 结果类型 | 值 / 说明 | 类型 | 
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果状态代码为 200 (is_success = true)“已成功将‘{0}’上传到 AWS S3 {1} 存储桶”。format(file_path, bucket name aka first string after s3://) 如果文件不存在 (is_success = false)“操作无法将 '{0}' 上传到 AWS S3。原因:具有相应上传路径的文件不存在。” 操作应失败并停止 playbook 执行: 如果出现严重错误,例如凭据错误、无法连接到服务器、SDK 错误等:“Error executing action "Upload File To Bucket"”(执行操作“将文件上传到存储分区”时出错)。原因:{0}''.format(error.Stacktrace)  | 
常规 | 
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。