2026年10月18日日曜日

新方式AWSアカウントでCLI/Terraformが使えない?リージョン制限にハマった話

 

はじめに

数年ぶりにAWSアカウントを作ったところ、ログインもCLIも従来の手順では動かず、しばらくハマりました。原因は、今のAWSの新規登録が「プロジェクト型」という別の仕組みになっていたことです。

この記事では、次の点を順に整理します。

  • ブラウザからのアクセス方法
  • aws s3 ls が拒否された原因(リージョン制限)
  • CLIとTerraformを使うための設定
  • 無料期間と、アカウント閉鎖の流れ

今回のアカウントの正体は「プロジェクト型」

GoogleなどでサインインするAWSビルダーIDで作る、新方式のアカウントでした。1つのプロジェクトがAWSアカウント1つに対応し、AWSが管理する組織(Organizations)の中に作られます。

分かった特徴は次のとおりです。

  • 作成直後から$120のクレジットが付いていた(公式の説明は、初回$100に加えて最大$100を追加で獲得できるというもの)
  • ルートユーザーのパスワードでは入れず、プロジェクト画面が入口になる
  • AWS側のSCP(サービスコントロールポリシー)で、利用範囲が絞られている
  • 「高度な機能をアクティブ化」すると、制限を自分で管理できる通常の構成に移れる

ここから先の話は、すべてこの新方式のアカウントが前提です。従来のサインアップで作ったアカウントには当てはまりません。

ブラウザからのアクセスは「プロジェクト画面」から

パスワードを入力するのではなく、プロジェクト一覧の「AWS コンソール」ボタンから入ります。

  1. ビルダーID(Googleアカウント)でAWSにサインインする
  2. プロジェクト一覧で、Active のプロジェクトの「AWS コンソール」をクリックする
  3. マネジメントコンソールが開く

過去に作ったプロジェクトは Closed と表示され、使えませんでした。

ハマりどころ1: IAMユーザーでもルートユーザーでも入れない

IAMユーザーにコンソールサインインの項目が出ず、ルートユーザーのパスワードリセットメールも届きませんでした。

  • IAMユーザーの「セキュリティ認証情報」タブに、コンソールサインインの欄が見当たらなかった
  • アクセスキーの作成画面では、長期的な認証情報を避け、aws login やCloudShellを使うよう警告された
  • ルートユーザーのパスワードリセットを実行しても、Gmailにメールが届かなかった

IAMユーザー用のサインインURL(https://<アカウントID>.signin.aws.amazon.com/console)を開くと、ログイン画面の前に「Choose AWS sessions」が表示されることもありました。すでにサインイン中のセッションがあるためで、「Add session」を押すと通常のIAMユーザー用ログイン画面に進めます。

従来の感覚では「アカウントが壊れているのでは」と疑いたくなりますが、新方式の仕様の違いだと考えています。メールが届かなかった理由は、確定できていません。

ハマりどころ2: SCPでS3もEC2も拒否される

原因はIAMの権限ではなく、リージョンを制限するSCPでした。

CLIの既定プロファイルにIAMユーザーのアクセスキーを設定して試したところ、S3もEC2も拒否されました。

$ aws s3 ls
aws: [ERROR]: An error occurred (AccessDenied) when calling the ListBuckets operation:
User: arn:aws:iam::<アカウントID>:user/test is not authorized to perform:
s3:ListAllMyBuckets with an explicit deny in a service control policy: ...

aws sts get-caller-identity は通ったため、認証は正常でした。SCPの拒否は、IAMに AdministratorAccess を付けても上書きできません。

ec2 describe-regions のような読み取りだけのAPIまで拒否されたため、最初は「ほぼ全サービスが止められている」と考えました。これは誤解でした。

コンソールでS3のバケット作成画面を開くと、リージョンが「アジアパシフィック (シドニー) ap-southeast-2」になっていました。そこでリージョンを指定して再実行すると、どちらも通りました。

$ aws s3 ls --region ap-southeast-2
$ aws ec2 describe-vpcs --region ap-southeast-2

東京(ap-northeast-1)を指定した ec2 describe-regions は拒否されました。SCPの中身は直接確認できないため推測ですが、このアカウントではプロジェクトを作ったリージョンだけが許可されているようです。公式ドキュメントにも、別のリージョンを使うにはSCPの変更が必要という趣旨の記述があります。

CLIとTerraformは、リージョンをシドニーに合わせれば使える

アクセスキーを使ったCLIは、既定リージョンを許可リージョンに合わせるだけで動きます。

aws configure set region ap-southeast-2

Terraformも、providerのリージョンを合わせます。

provider "aws" {
  region = "ap-southeast-2"
}

resource "aws_s3_bucket" "test" {
  bucket = "yourname-tf-test-20261018" # 世界で一意の名前にする
}

TerraformはCLIと同じ認証情報とリージョンを使うため動く見込みですが、手元では未実行です。試した結果を、ここに追記します。

補足です。aws login は、default プロファイルにアクセスキーが入っているとエラーになりました。使う場合は aws login --profile 名前 で別のプロファイルを作ります。長期のアクセスキーはAWSが非推奨としているので、慣れたら aws login へ移行するのが安全です。

アクティベーションは、東京などが必要になるまで保留

学習や小規模な検証なら、シドニー1リージョンのままで足ります。

アクティベーション画面と公式ドキュメントで確認できたことは、次のとおりです。

  • 元に戻せない(画面に警告が出る)
  • 有料プランが必須。有効化そのものは無料で、既存のリソースは維持される
  • 利用制限が外れ、通常の従量課金になると画面に書かれていた
  • 管理アカウント用に、ビルダーIDとは別のメールアドレスが必要だった(使用中のメールは既存のAWSアカウントに関連付け済みと表示された)
  • 有効化後は、SCPなどの組織のポリシーを自分で設定できる

東京リージョンやマルチリージョン構成、チーム運用が必要になったら、アクティベーションか、従来型の別アカウントを検討します。従来型は、サインアップ時に「Sign up for AWS (advanced)」を選ぶ方法です。ただし、過去にAWSアカウントを持っていると、無料プランやクレジットの対象外になる場合があると、公式のFAQに書かれています。

無料期間は最長6か月。クレジットが先に尽きればそこで終了

無料プランは、開設から6か月か、クレジットを使い切った時点の、早いほうで終わります。

  • 終了後: アカウントは閉鎖され、データは90日間保持される。その間に有料プランへアップグレードすれば再開でき、90日を過ぎると完全に削除される
  • 通知: クレジット残が50%、25%、10%になったときと、期限の15日前、7日前、2日前に届く
  • 今回の目安: 開設は2026年10月17日ごろと見られ、6か月後は2027年4月中旬。正確な日付はコンソールのBillingで確認する

注意点があります。クレジットの有効期限は、公式の紹介ページが6か月、AWS関連の解説記事が12か月と、情報が食い違っていました。アクティベーション(有料プランへの移行)後のクレジットの扱いも、資料によって書き方が違い、確認できていません。実行前に、BillingのCreditsで残高と期限を確認します。

閉鎖は「プロジェクト → 管理アカウント → ビルダーID」の順

課金を確実に止めるには、プロジェクトと管理アカウントの両方を閉じます。操作はAWS Settings(settings.aws.com)で行います。

  1. プロジェクトを閉じる(スペンドリミットを設定している場合は、先にオフにする)
  2. 管理アカウントを閉じる(プロジェクト一覧画面の「アクション」→「管理アカウントを閉じる」)
  3. 必要なら、ビルダーIDを削除する(管理アカウントを閉じた後でないとできない)

補足です。

  • 閉鎖前にリソースを削除する必要はないが、閉鎖後にAWSが中身を削除する(CloudTrailのトレイルを除く)
  • 閉鎖した翌月に、その分の請求書が届く
  • プロジェクトは、閉鎖から90日以内なら再開できる
  • 同じメールアドレスを別の組織で使い直すなら、閉鎖前にメールアドレスを変更しておく
  • 管理アカウントを閉じるには、先に全プロジェクトを閉じる必要がある。Closed と表示されたプロジェクトの扱いは未確認

まとめ: ハマらないためのチェックリスト

新方式のアカウントで操作が拒否されたら、まずリージョンを疑うのが近道です。

  • コンソール右上のリージョンを確認し、CLIとTerraformを同じリージョンに合わせる
  • ブラウザからは、プロジェクト画面の「AWS コンソール」から入る
  • SCPのエラーは、IAMの権限不足と区別する(IAMでは上書きできない)
  • 無料期間の終了日とクレジット残高を、Billingで確認する
  • アクティベーションは元に戻せないため、必要になるまで保留する
  • 不要になったら、リソースを片付けてから閉鎖する

参考リンク

記載は2026年10月18日時点の公式情報と、検索結果で確認した内容に基づきます。

新方式AWSアカウントでCLI/Terraformが使えない?リージョン制限にハマった話

  はじめに 数年ぶりにAWSアカウントを作ったところ、ログインもCLIも従来の手順では動かず、しばらくハマりました。原因は、今のAWSの新規登録が「プロジェクト型」という別の仕組みになっていたことです。 この記事では、次の点を順に整理します。 ブラウザからのアクセス方法 aws...