AWS マネージメントコンソール プライベートアクセスとは?
- AWS マネージメントコンソール プライベートアクセスは、AWS マネジメントコンソールへのアクセスを制御するための高度なセキュリティ機能です。
 
概要
- AWS マネジメントコンソール プライベートアクセスは、ユーザーがネットワーク内から予期しない AWS アカウントにサインインできないようにする場合に役立ちます。これは、VPC エンドポイントポリシーを使用して実装します。
 
以下の VPC エンドポイントポリシーは、指定された organization からの AWS アカウントへのサインインを許可し、他のアカウントへのサインインをブロックします。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgId": "o-xxxxxxxxxxx"
        }
      }
    }
  ]
}
この VPC エンドポイントポリシーは、特定の AWS アカウントへのサインインを制限し、他のアカウントへのサインインをブロックします。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalAccount": [ "111122223333", "222233334444" ]
        }
      }
    }
  ]
}
- 静的コンテンツや AWS PrivateLink で有効になっていない AWS リソースへアクセスするには、インターネット接続が引き続き必要です。
 
サポートされている AWS リージョン、サービス
- 2023年6月現在、東京リージョンには対応していないようです。
 
必要な VPC エンドポイントと DNS 構成
VPC エンドポイント
リージョンごとに次の 2 つの VPC エンドポイントが必要です。
| VPC エンドポイント | 説明 | 
|---|---|
| com.amazonaws.region.console | AWS マネジメントコンソール VPC エンドポイント | 
| com.amazonaws.region.signin | AWS サインイン VPC エンドポイント | 
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 | 
Amazon S3 を含む一部の AWS コンソールは、DNS 名に異なるパターンを使用するため、他の DNS 名の登録が必要になります。
例)
support.console.aws.amazon.com
s3.console.aws.amazon.com
試してみる
ドキュメントに従って試してみます。
ドキュメントには、3 パターン書かれていましたが、「Amazon WorkSpaces を使用したテストセットアップ」で動作確認してみたいと思います。
ここでは、ユーザー環境が WorkSpace 上で実行されている Web ブラウザを使用して AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセスする環境を作成してみたいと思います。
①ネットワーク環境は、AWS 公式ドキュメントにある AWS CloudFormation を利用してデプロイします。
「必要な VPC エンドポイントと DNS 構成」の項目でも説明したリソースを確認してみたいと思います。
②WorkSpaces を作成し起動します。
※ ここでの目標は、AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセスすることなので、WorkSpaces の作成については、AWS 公式ドキュメントを確認してください。
③WorkSpaces のログイン後、AWS マネジメントコンソール プライベートアクセスにサインインし、Amazon S3 コンソールにアクセス可能なことを確認します。
「AWS Manegement Console Private Access」と表示され、アクセスできたことが確認できました。

④(番外編)s3.console.aws.amazon.com の DNS を削除してみる。

はい、もちろん名前解決できないのでアクセスできません。
⑤(番外編)他リージョンのアクセスを確認してみる。
オハイオリージョン(us-east-2)に切り替え、EC2 にアクセスしてみました。

はい、こちらももちろんアクセスできませんね。
⑤(番外編)VPCエンドポイントポリシーを導入してみる。
今回 AWS CloudFormation で準備されていたVPCエンドポイントポリシーはデフォルトです。
つまり、冒頭で説明した特定の AWS アカウントへのサインインを制限するようなポリシーは適用されていません。
では、com.amazonaws.region.signin に冒頭のVPCエンドポイントポリシーを突っ込んでみましょう。

 そのまま、VPCエンドポイントポリシーにアクセスできないとのメッセージが出ました。




