

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Amazon EBS 快照的封鎖公開存取
<a name="block-public-access-snapshots-enable"></a>

啟用快照的公開存取功能，以禁止公開共用特定區域中的快照。啟用此功能後，會封鎖指定區域中公開共用快照的請求。

**重要**  
在封鎖*所有共用*模式中啟用快照的封鎖公開存取，並不會變更已公開共用之快照的許可。而是會禁止這些快照公開顯示和公開存取。因此，雖然這些快照實際上不開放公開使用，但其屬性仍顯示為公開共用。  
如果您稍後停用封鎖公開存取或變更模式以*封鎖新的共用*，這些快照將再次公開可用。

**注意**  
此設定是在帳戶層級配置，可直接在帳戶中設定，或使用宣告式政策設定。它必須在您想要防止公開共用快照的每個 AWS 區域 中設定。您可使用宣告式政策同時在多個區域及多個帳戶套用設定。使用宣告式政策時，您無法直接在帳戶中修改設定。本主題說明如何直接在帳戶內配置設定。如需使用宣告式政策的相關資訊，請參閱「AWS Organizations 使用者指南」**中的[宣告式政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)。

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

**設定快照的封鎖公開存取功能**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **EC2 儀表板**，然後在**帳戶屬性** (右側) 中選擇**資料保護和安全性**。

1. 在 **EBS 快照的封鎖公開存取**區段中，選擇**管理**。

1. 選取**封鎖公開存取**，然後選擇下列其中一個選項：
   + **封鎖所有公開存取**：封鎖快照的所有公開共用。帳戶使用者無法請求新的公開共用。此外，已公開共用的快照會被視為私有快照，不再開放公開使用。
   + **封鎖新公開共用**：僅封鎖快照的新公開共用。帳戶使用者無法請求新的公開共用。但是已公開共用的快照仍會維持開放公開使用。

1. 選擇**更新**。

------
#### [ AWS CLI ]

**啟用或修改快照的封鎖公開存取設定**  
使用 [enable-snapshot-block-public-access](https://docs.aws.amazon.com/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.aws.amazon.com/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
...
```

------