AWS マネージメントコンソールへのプライベートアクセス

# AWS マネージメントコンソール プライベートアクセスとは？

https://aws.amazon.com/jp/about-aws/whats-new/2023/05/aws-management-console-private-access/

- AWS マネージメントコンソール プライベートアクセスは、AWS マネジメントコンソールへのアクセスを制御するための高度なセキュリティ機能です。

# 概要

- AWS マネジメントコンソール プライベートアクセスは、ユーザーがネットワーク内から予期しない AWS アカウントにサインインできないようにする場合に役立ちます。これは、VPC エンドポイントポリシーを使用して実装します。

　以下の VPC エンドポイントポリシーは、指定された organization からの AWS アカウントへのサインインを許可し、他のアカウントへのサインインをブロックします。

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgId": "o-xxxxxxxxxxx"
        }
      }
    }
  ]
}
```

　この VPC エンドポイントポリシーは、特定の AWS アカウントへのサインインを制限し、他のアカウントへのサインインをブロックします。

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalAccount": [ "111122223333", "222233334444" ]
        }
      }
    }
  ]
}
```

- 静的コンテンツや AWS PrivateLink で有効になっていない AWS リソースへアクセスするには、インターネット接続が引き続き必要です。

# サポートされている AWS リージョン、サービス

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html#supported-regions-consoles

- 2023年6月現在、東京リージョンには対応していないようです。

# 必要な VPC エンドポイントと DNS 構成

## VPC エンドポイント

リージョンごとに次の 2 つの VPC エンドポイントが必要です。

|VPC エンドポイント|説明|
|---|---|
|**com.amazonaws.region.console**|AWS マネジメントコンソール　VPC エンドポイント|
|**com.amazonaws.region.signin**|AWS サインイン　VPC エンドポイント|

:::note info
AWS マネジメントコンソールで使用する他のリージョンに関係なく、常にインフラストラクチャとネットワーク接続を米国東部 (バージニア北部) (us-east-1) リージョンにプロビジョニングする必要があります。
:::

## DNS設定

ネットワークトラフィックをそれぞれの VPC エンドポイントにルーティングするための DNS 設定が必要です。

|DNS|説明|
|---|---|
|**region.signin.aws.amazon.com**|AWS サインイン VPC エンドポイント用 DNS|
|**region.console.aws.amazon.com**|AWS マネジメントコンソール VPC エンドポイント用 DNS|
|**signin.aws.amazon.com**|米国東部 (バージニア北部) (us-east-1) の AWS サインイン VPC エンドポイント用 DNS|

:::note info
Amazon S3 を含む一部の AWS コンソールは、DNS 名に異なるパターンを使用するため、他の DNS 名の登録が必要になります。

例)
support.console.aws.amazon.com
s3.console.aws.amazon.com
:::

# 試してみる

ドキュメントに従って試してみます。

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/try-out-private-access.html

ドキュメントには、３ パターン書かれていましたが、「Amazon WorkSpaces を使用したテストセットアップ」で動作確認してみたいと思います。

ここでは、ユーザー環境が WorkSpace 上で実行されている　Web ブラウザを使用して AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセスする環境を作成してみたいと思います。

![スクリーンショット 2023-06-29 18.35.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/052cf7d8-6e46-fe55-1cc5-0b3deb2e777e.png)
※公式ドキュメントより

①ネットワーク環境は、AWS 公式ドキュメントにある AWS CloudFormation を利用してデプロイします。

「必要な VPC エンドポイントと DNS 構成」の項目でも説明したリソースを確認してみたいと思います。

**VPC エンドポイント**
![スクリーンショット 2023-06-29 19.21.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/4ddf1055-6734-a682-1be7-da1193ebd32e.png)

**DNS**
![スクリーンショット 2023-06-29 19.25.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ce643f1f-e113-799f-793d-3537d844a25d.png)
![スクリーンショット 2023-06-29 19.26.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/4fc988d7-eeae-ef25-ac76-bc578b3dfc0e.png)

②WorkSpaces を作成し起動します。
※ ここでの目標は、AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセスすることなので、WorkSpaces　の作成については、AWS 公式ドキュメントを確認してください。

③WorkSpaces のログイン後、AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセス可能なことを確認します。
「AWS Manegement Console Private Access」と表示され、アクセスできたことが確認できました。
![スクリーンショット 2023-06-29 19.47.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ad8b0768-0165-b689-6044-2dbbf106bb36.png)

④（番外編）**s3.console.aws.amazon.com** の　DNS　を削除してみる。
![スクリーンショット 2023-06-29 19.52.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/272c5ffb-a1f0-a964-6559-62695503de0a.png)
はい、もちろん名前解決できないのでアクセスできません。

⑤（番外編）他リージョンのアクセスを確認してみる。
オハイオリージョン（us-east-2）に切り替え、EC2　にアクセスしてみました。
![スクリーンショット 2023-06-29 20.01.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/2bfc6deb-859a-1cab-cfc7-28cfe8350aeb.png)
はい、こちらももちろんアクセスできませんね。

⑤（番外編）VPCエンドポイントポリシーを導入してみる。
今回　AWS CloudFormation　で準備されていたVPCエンドポイントポリシーはデフォルトです。
つまり、冒頭で説明した特定の AWS アカウントへのサインインを制限するようなポリシーは適用されていません。
では、**com.amazonaws.region.signin** に冒頭のVPCエンドポイントポリシーを突っ込んでみましょう。
![スクリーンショット 2023-06-29 20.09.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/18a9d254-95ef-ef14-8dd9-c08226cca360.png)
　そのまま、VPCエンドポイントポリシーにアクセスできないとのメッセージが出ました。
![スクリーンショット 2023-06-29 20.10.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6a4980da-1921-4965-3e39-79979188f9c7.png)