

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置阻止 Amazon EBS 快照的公开访问
<a name="block-public-access-snapshots-enable"></a>

启用阻止公开访问快照，以防止在此区域中公开共享快照。启用此功能之后，将阻止在此区域中公开共享快照的请求。

**重要**  
如果在*阻止所有共享*模式下启用阻止快照公开访问，则不会更改对已公开共享的快照的权限。实际上，它会阻止这些快照公开可见和可公开访问。因此，这些快照的属性仍然表明它们是公开共享的，尽管它们不可公开访问。  
如果您稍后禁用阻止公开访问或更改模式以*阻止新共享*，则这些快照将再次公开可用。

**注意**  
此设置是在账户级别配置，可以直接在账户中配置，也可以使用声明式策略进行配置。必须在每个要防止公开共享快照 Amazon Web Services 区域 的地方进行配置。使用声明式策略可同时将设置应用于多个区域，也可以同时应用于多个账户。当使用声明式策略时，您无法直接在账户中修改设置。本主题介绍如何直接在账户中配置设置。有关使用声明式策略的信息，请参阅《Amazon Organizations User Guide》**中的 [Declarative policies](https://docs.amazonaws.cn/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

------
#### [ Console ]

**要配置阻止公开访问快照**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **EC2 控制面板**，然后在（右侧的）**账户属性**中，选择**数据保护和安全**。

1. 在**阻止公开访问 EBS 快照**部分中，选择**管理**。

1. 选择**阻止公开访问**，然后选择以下选项之一：
   + **阻止所有公开访问** – 阻止所有公开共享快照的行为。此账户中的用户无法请求新的公开共享。此外，已公开共享的快照将被视为私有快照，且不可公开访问。
   + **阻止新的公开共享** – 仅阻止公开共享快照的新行为。此账户中的用户无法请求新的公开共享。不过，已经公开共享的快照仍可公开访问。

1. 选择**更新**。

------
#### [ Amazon CLI ]

**要启用或修改阻止公开访问快照**  
使用 [enable-snapshot-block-public-access](https://docs.amazonaws.cn/cli/latest/reference/ec2/enable-snapshot-block-public-access.html) 命令。对于 `--state`，请指定下列值之一：
+ `block-all-sharing` – 阻止所有公开共享快照的行为。此账户中的用户无法请求新的公开共享。此外，已公开共享的快照将被视为私有快照，且不可公开访问。
+ `block-new-sharing` – 仅阻止公开共享快照的新行为。此账户中的用户无法请求新的公开共享。不过，已经公开共享的快照仍可公开访问。

**为特定区域启用或修改阻止快照公开访问**

```
aws ec2 enable-snapshot-block-public-access \
    --state {{block-new-sharing}} \
    --region {{us-east-1}}
```

下面是示例输出。

```
{
    "State": "block-new-sharing"
}
```

**为所有区域启用或修改阻止快照公开访问**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region {{us-east-1}} \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 enable-snapshot-block-public-access \
            --region $region \
            --state {{block-new-sharing}} \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

下面是示例输出。

```
Region           Public Access State
--------------   ----------------------
ap-south-1       block-new-sharing
eu-north-1       block-new-sharing
eu-west-3        block-new-sharing
...
```

------
#### [ PowerShell ]

**要启用或修改阻止公开访问快照**  
使用 [ Enable-EC2SnapshotBlockPublicAccess](https://docs.amazonaws.cn/powershell/latest/reference/items/Enable-EC2SnapshotBlockPublicAccess.html) 命令。对于 `-State`，请指定下列值之一：
+ `block-all-sharing` – 阻止所有公开共享快照的行为。此账户中的用户无法请求新的公开共享。此外，已公开共享的快照将被视为私有快照，且不可公开访问。
+ `block-new-sharing` – 仅阻止公开共享快照的新行为。此账户中的用户无法请求新的公开共享。不过，已经公开共享的快照仍可公开访问。

**为特定区域启用或修改阻止快照公开访问**

```
Enable-EC2SnapshotBlockPublicAccess `
    -Region {{us-east-1}} `
    -State {{block-new-sharing}}
```

下面是示例输出。

```
Value
-----
block-new-sharing
```

**为所有区域启用或修改阻止快照公开访问**

```
(Get-EC2Region -Region {{us-east-1}}).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (
            Enable-EC2SnapshotBlockPublicAccess `
                -Region $_ `
                -State {{block-new-sharing}})
    }
} | Format-Table -AutoSize
```

下面是示例输出。

```
Region         PublicAccessState
------         -----------------
ap-south-1     block-new-sharing
eu-north-1     block-new-sharing
eu-west-3      block-new-sharing
...
```

------