

# AMI のパブリックアクセスのブロック設定を管理する
<a name="manage-block-public-access-for-amis"></a>

AMI を公開して共有できるかどうかを制御する AMI 用のパブリックアクセスのブロック設定を管理できます。Amazon EC2 コンソールまたは AWS CLI を使用して、AMI の現在のパブリックアクセスのブロック状態を有効化、無効化、または表示できます。

## AMI のパブリックアクセスのブロック状態を表示する
<a name="get-block-public-access-state-for-amis"></a>

AMI のパブリックアクセスのブロック状態を表示すると、AMI のパブリック共有がアカウントでブロックされているかどうかを確認できます。AMI のパブリック共有がブロックされているかどうかを確認するには、それぞれの AWS リージョン で状態を確認する必要があります。

**必要なアクセス許可**  
AMI の現在のパブリックアクセスのブロック設定を取得するには、`GetImageBlockPublicAccessState` IAM アクセス許可が必要です。

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

**指定したリージョンで AMI のパブリックアクセスのブロック状態を表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)を開いてください。

1. 画面上部のナビゲーションバーで、AMI のパブリックアクセスのブロック状態を表示するリージョンを選択してください。

1. ナビゲーションペインで、**ダッシュボード**を選択してください。

1. **[アカウント属性]** カードの **[設定]** で、**[データ保護とセキュリティ]** を選択します。

1. **[AMI のパブリックアクセスをブロック]** で **[パブリックアクセス]** フィールドを確認します。値は **[新しいパブリック共有をブロック中]** または **[新しいパブリック共有が可能]** です。

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

**AMI のパブリックアクセスのブロック状態を取得するには**  
[get-image-block-public-access-state](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-block-public-access-state.html) コマンドを使用します。この値は `block-new-sharing` または `unblocked` のどちらかです。

**例: 特定のリージョンの場合**

```
aws ec2 get-image-block-public-access-state --region us-east-1
```

`ManagedBy` フィールドは、設定を構成したエンティティを示します。この例では、`account` は設定がアカウントで直接設定されたことを示します。`declarative-policy` という値は、その設定が宣言的ポリシーによって構成されたことを意味します。詳細については「*AWS OrganizationsIAM ユーザーガイド*」の「[ マネージドポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html)」を参照してください。

```
{
    "ImageBlockPublicAccessState": "block-new-sharing",
    "ManagedBy": "account"
}
```

**例: アカウントの全リージョンの場合**

```
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 get-image-block-public-access-state \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

出力例を次に示します。

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

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

**AMI のパブリックアクセスのブロック状態を取得するには**  
[Get-EC2ImageBlockPublicAccessState](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageBlockPublicAccessState.html) コマンドレットを使用します。この値は `block-new-sharing` または `unblocked` のどちらかです。

**例: 特定のリージョンの場合**

```
Get-EC2ImageBlockPublicAccessState -Region us-east-1
```

出力例を次に示します。

```
block-new-sharing
```

**例: アカウントの全リージョンの場合**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
        [PSCustomObject]@{
            Region   = $_
            PublicAccessState = (Get-EC2ImageBlockPublicAccessState -Region $_)
        }
} | `
Format-Table -AutoSize
```

出力例を次に示します。

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

------

## AMI のパブリックアクセスのブロックを有効にする
<a name="enable-block-public-access-for-amis"></a>

AMI がパブリックに共有されないようにするには、AMI のパブリックアクセスのブロックを有効にします。AMI がパブリックに共有されないようにする AWS リージョン ごとに、AMI のパブリックアクセスのブロックを有効にする必要があります。既にパブリック AMI がある場合は、引き続き公開されます。

**必要なアクセス許可**  
AMI のパブリックアクセスのブロック設定を有効にするには、`EnableImageBlockPublicAccess` IAM アクセス許可が必要です。

**考慮事項**
+ この設定を行うには、最大 10 分かかる場合があります。この間、パブリックアクセス状態を記述すると、レスポンスは `unblocked` になります。設定が完了すると、レスポンスは `block-new-sharing` になります。

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

**指定したリージョンで AMI のパブリックアクセスのブロックを有効にするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)を開いてください。

1. 画面上部のナビゲーションバーで、AMI のパブリックアクセスをブロックするリージョンを選択してください。

1. ナビゲーションペインで、**ダッシュボード**を選択してください。

1. **[アカウント属性]** カードの **[設定]** で、**[データ保護とセキュリティ]** を選択します。

1. **[AMI のパブリックアクセスをブロック]** で **[管理]** を選択してください。

1. **[新しいパブリック共有をブロック]** のチェックボックスをオンにしたら、**[更新]** を選択してください。

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

**AMI のパブリックアクセスのブロックを有効にするには**  
[enable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-block-public-access.html) コマンドを使用します。

**例: 特定のリージョンの場合**

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

出力例を次に示します。

```
{ 
    "ImageBlockPublicAccessState": "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-image-block-public-access \
            --region $region \
            --image-block-public-access-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 ]

**AMI のパブリックアクセスのブロックを有効にするには**  
[Enable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageBlockPublicAccess.html) コマンドを使用します。

**例: 特定のリージョンの場合**

```
Enable-EC2ImageBlockPublicAccess `
    -Region us-east-1 `
    -ImageBlockPublicAccessState block-new-sharing
```

出力例を次に示します。

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

**例: アカウントの全リージョンの場合**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (
        Enable-EC2ImageBlockPublicAccess `
         -Region $_ `
         -ImageBlockPublicAccessState 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
...
```

------

## AMI のパブリックアクセスのブロックを無効にする
<a name="disable-block-public-access-for-amis"></a>

アカウント内のユーザーが AMI をパブリックに共有できるようにするには、アカウントレベルでパブリックアクセスのブロックを無効にします。AMI がパブリックに共有できるようにする AWS リージョン ごとに、AMI のパブリックアクセスのブロックを無効にする必要があります。

**必要なアクセス許可**  
AMI のパブリックアクセスのブロック設定を無効にするには、`DisableImageBlockPublicAccess` IAM アクセス許可が必要です。

**考慮事項**
+ この設定を行うには、最大 10 分かかる場合があります。この間、パブリックアクセス状態を記述すると、レスポンスは `block-new-sharing` になります。設定が完了すると、レスポンスは `unblocked` になります。

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

**指定したリージョンで AMI のパブリックアクセスのブロックを無効にするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)を開いてください。

1. 画面上部のナビゲーションバーで、AMI のパブリックアクセスのブロックを無効にするリージョンを選択してください。

1. ナビゲーションペインで、**ダッシュボード**を選択してください。

1. **[アカウント属性]** カードの **[設定]** で、**[データ保護とセキュリティ]** を選択します。

1. **[AMI のパブリックアクセスをブロック]** で **[管理]** を選択してください。

1. **[新しいパブリック共有のブロック]** のチェックボックスをオフにしたら、**[更新]** を選択してください。

1. 確認を求められたら、「**confirm**」と入力してから、**[パブリック共有の許可]** を選択してください。

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

**AMI のパブリックアクセスのブロックを無効にするには**  
[disable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-block-public-access.html) コマンドを使用します。

**例: 特定のリージョンの場合**

```
aws ec2 disable-image-block-public-access --region us-east-1
```

出力例を次に示します。

```
{
   "ImageBlockPublicAccessState": "unblocked"
}
```

**例: アカウントの全リージョンの場合**

```
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 disable-image-block-public-access \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

出力例を次に示します。

```
Region           Public Access State
--------------   ----------------------
ap-south-1       unblocked
eu-north-1       unblocked
eu-west-3        unblocked
...
```

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

**AMI のパブリックアクセスのブロックを無効にするには**  
[Disable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageBlockPublicAccess.html) コマンドレットを使用します。

**例: 特定のリージョンの場合**

```
Disable-EC2ImageBlockPublicAccess -Region us-east-1
```

出力例を次に示します。

```
Value
-----
unblocked
```

**例: アカウントの全リージョンの場合**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (Disable-EC2ImageBlockPublicAccess -Region $_)
    }
} | `
Format-Table -AutoSize
```

出力例を次に示します。

```
Region         PublicAccessState
------         -----------------
ap-south-1     unblocked
eu-north-1     unblocked
eu-west-3      unblocked
...
```

------