5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Organizations管理者のためのAmazon Q Developer Pro導入手順と注意点

Posted at

はじめに

  • AWS Summit Japan 2025のGameDayに参戦してきて、Amazon Q Developer(以下 Q Developer)のすごさを実感してきました

  • ということで業務効率化とお布施の意味を込めて、Q DeveloperのProサブスクリプションを有効化してみようかと思い、導入してみました

  • ただ、私は個人利用でありつつもAWS Organizations(以下 Organizations)で複数組織(OU)を利用し、AWS IAM Identity Center(以下 Identity Center)でサインイン管理をしています

    • 検証やハンズオンを行う場合、その権限やゴミ掃除を行う手間を省くため、一時アカウントを作成し、OUに属させるということをしています
    • 毎度AWSアカウントを作成して、Identity Centerに属させて...を手動で行うのはめんどくさすぎるので、Terraformで作成/設定を行っています
    • こちらの紹介はまた別記事にて...
      AWS Organizations構成図
  • この場合、Organizationsの管理アカウントで、Q DeveloperのProサブスクリプションを有効化すると、どの範囲までアクセスができるのでしょうか

  • 実際の設定手順と操作範囲を調査してみました

Q DeveloperとQ Developer Proサブスクリプション

Amazon Q Developerとは?

  • Q Developerは、AWSアプリケーションの理解、構築、拡張、運用を支援する生成AI搭載の対話型アシスタントです
    • AWSアーキテクチャ、AWSリソース、ベストプラクティス、ドキュメント、サポートなどについて質問することができます
    • Amazon Qは常に機能を更新しており、質問に対して最も文脈に関連した実用的な回答を提供します
  • 統合開発環境(IDE)で使用する場合、Amazon Qはソフトウェア開発支援を提供します
    • Amazon Qはコードについてチャットしたり、インラインでのコード補完を提供したり、全く新しいコードを生成したり、セキュリティ脆弱性についてコードをスキャンしたり、言語更新、デバッグ、最適化などのコードアップグレードや改善を行うことができます
  • Amazon QはAmazon Bedrockを基盤としており、これはAPIを通じて基盤モデル(FM)を利用可能にする完全マネージド型サービスです
    • Amazon Qを支えるモデルは、高品質なAWSコンテンツで強化されており、AWSでの構築を加速するために、より完全で実用的かつ参照可能な回答を提供します

Q Developer Proサブスクリプション

  • Amazon Q Developer 無料枠とProサブスクリプションの機能比較
    Amazon Q Developer_サブスクリプション比較.png

  • Amazon Q Developer Proの有効化をどのアカウントで行うか

    • Q Developer Proサブスクリプションは、個人アカウント(Builder ID)を持つユーザー、およびIAM Identity CenterでIDを持つユーザーが使用できます
    • 次の表を参照して、サインイン方法に応じて Q Developer Proサブスクリプションのさまざまなインターフェイスで Amazon Q が使用可能かどうかを確認ができます
      Amazon Q Developer_Proサブスクリプション_サインイン方法.png
  • Identity Centerの管理アカウント/メンバーアカウントのどちらでQ Developer Proを有効化するかによって、利用可能な機能/範囲は異なります

    • 管理アカウントを使用して組織インスタンスをデプロイする場合
      • 組織インスタンスを使用すると、すべてのサブスクリプションを1つのアカウントから管理できます
      • さらに、管理アカウントからサブスクリプションを作成した場合は、アクセスできる任意のアカウントを使用してQ Developerチャットにアクセスできます
    • メンバーアカウントを使用してアカウントインスタンスをデプロイする
      • アカウントインスタンスを使用する場合は、メンバーアカウントからのみサブスクリプションを管理できます
      • サブスクリプションは読み取り専用です
      • また、他のメンバーアカウントでQ Developerチャットにアクセスするには、そのアカウントに Q Developer Pro のサブスクリプションが必要です
      • メンバーアカウントにサブスクリプションがない場合、Q Developerチャットはデフォルトで無料利用枠になります
    • 参考:組織またはアカウントのインスタンスでサブスクリプションを管理する

目的

  • Identity Centerに属するユーザーで、Q DeveloperのProサブスクリプションを有効にする手順を確認する
  • Identity Centerに属するユーザーで、Q DeveloperのProサブスクリプションを有効したとき、どの範囲のAWSアカウントで操作ができるのかを確認する
    Organizations-範囲.drawio.png

前提

  • 親アカウントとなるAWS アカウントを作成していること
  • Organizations有効化していること
  • Identity Centerを有効化していること
  • Identity Centerで、Q Developerを契約したいユーザーを作成していること

上記が未達成の場合は、以下を参照ください

Q Developer Proサブスクリプション有効化手順

  1. "Identity Center"⇒"設定"⇒"ID 強化セッション"を有効化する
    ※注意:本機能は一度有効化すると、そのIdentity Center内では無効化できません

    1. 無効化状態
      Identity-Center_設定_ID強化セッション_無効.png

    2. ID 強化セッション 隣の"有効化する"をクリックして有効化
      Identity-Center_設定_ID強化セッション_有効化.png

    3. 有効化状態
      Identity-Center_設定_ID強化セッション_有効.png

  2. Q Developer Profile を作成する

    1. "Q Developer (Including Amazon CodeWhisperer)"を検索

    2. Q Developer Profileがサポートされているリージョンを選択します

      • Q Developerは"アジアパシフィック (東京)"をサポートしていますが、残念ながらQ Developer Profileは"アジアパシフィック (東京)"をサポートしていません(2025年6月末時点)
      • "米国 (バージニア北部)"と"欧州 (フランクフルト)"が選択できますが、以下の制約があり、よっぽどの理由がなければ"米国 (バージニア北部)"を選択しましょう
        • 欧州 (フランクフルト)でサポートされない機能
          ・サポートとのチャット
          ・Amazon Q のトラブルシューティングリソース
          ・IDE での .NET 変換
          ・チャットアプリケーションにおける Amazon Q (Slack 向け)
          ・AWS コンソールモバイルアプリケーションの Amazon Q
          
        • IAM Identity Center workforce users
    3. Q Developerの画面で、"利用を開始"をクリック
      Amazon Q Developer_使用を開始.png

    4. Q Developerプロファイルを作成

      • プロファイル名を指定して、"作成"をクリック
        Amazon Q Developer_プロファイルを作成.png

      • 1~2分待つと次に進めます

    5. "割り当て ユーザーとグループ"画面が表示されますが、"完了"をクリック
      Amazon Q Developer_ユーザーとグループの割り当て.png

    6. 【オプション】Q Developer のログ記録を有効化

      1. (説明省略)ログ保管用のS3バケットを作成
        ※S3バケットは、項番2の"Q Developer Profileを作成"で選択したリージョンに作成する必要があります

      2. (説明省略)以下の形式でバケットポリシーを設定

        • "region"は基本"us-east-1"を指定します
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "QDeveloperLogsWrite",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "q.amazonaws.com"
                    },
                    "Action": [
                        "s3:PutObject"
                    ],
                    "Resource": [
                        "arn:aws:s3:::bucketName/prefix/*"
                    ],
                    "Condition": {
                        "StringEquals": {
                            "aws:SourceAccount": "accountId"
                        },
                        "ArnLike": {
                            "aws:SourceArn": "arn:aws:codewhisperer:region:accountId:*"
                        } 
                    }
                }
            ]
        }
        
      3. "Q Developer"⇒"プリファレンス"⇒"編集"をクリック
        Amazon Q Developer_プリファレンス.png

      4. "Q 開発者プロンプトロギング"のトグルをONにし、"S3の場所"に用意しておいたS3バケット名を記載して"保存"をクリック
        Amazon Q Developer_プリファレンス_設定.png

        ※プレフィクスは必須のようです

      5. 設定が完了すると、以下のようになります
        Amazon Q Developer_プリファレンス_設定_設定後.png

    7. 【オプション】CloudTrail を使用して IDE または CLI が出力する Q Developer イベントをログに記録する

      • IDEまたはCLIから取得できるイベントは、CloudTrailデータイベントです
      • デフォルトでは、CloudTrailはデータイベントをログに記録しないため、CloudTrailイベント履歴でイベントを確認することはできません
      • IDEまたはCLIが出力したQ DeveloperイベントをCloudTrailに記録するには、データイベントを記録するカスタム証跡を作成します
      • 手順はこちらをご覧ください
    8. サブスクリプションビューの設定を有効化する

      1. "Q Developer"⇒"セッティング"⇒"サブスクリプションビューの設定"の"編集"をクリック
        Amazon Q Developer_サブスクリプションビュー_設定.png

      2. トグルをONにして、"保存"をクリック
        Amazon Q Developer_サブスクリプションビュー_有効化.png

      3. 信頼されたアクセスが有効になっていることを確認する
        Amazon Q Developer_サブスクリプションビュー_有効化後.png

    9. Q Developer Proサブスクリプションをサブスクライブする

      1. "Amazon Q Developer"⇒"サブスクリプション"⇒"サブスクライブ"をクリック
        Amazon Q Developer_サブスクリプション.png

      2. 検索窓でProサブスクリプションを付与したいアカウントを検索し、表示させる
        Amazon Q Developer_サブスクリプション_割り当て-ユーザーとグループ.png

      3. "割り当てる"をクリック

    10. サブスクリプションの割り当てを待つ

      1. サブスクリプションの割り当て直後
        Amazon Q Developer_サブスクリプション_有効化待ち.png

      2. サブスクリプションが割り当てられた後

        • 1-2分経つと、画面上部に「1 名のユーザーの Amazon Q Developer Pro サブスクリプションが正常に作成されました」と表示されましたが、該当ユーザーのサブスクリプションステータス上は「利用不可」と表示されます

          • ※私の環境では、当初項番8を実施し忘れていたため"利用不可"と表示されていましたが、上記手順通りに実施するとまた異なる表示になる可能性があります
        • 「ユーザーがサブスクリプションに正常にアクセスできるようになるまでに最大 24 時間かかることがあります。」とのことで、時間を空けて再度アクセスしてみましょう
          Amazon Q Developer_サブスクリプション_有効化後.png

    11. サブスクリプションの有効化を確認する

      1. ユーザーの有効化であれば1~2時間、グループの有効化だと24時間程度待ち時間があるといわれていましたが、私の環境では約3時間かかりました

      2. "Q Developer"⇒"サブスクリプション"

        • 該当のユーザーで"サブスクリプションのステータス"が"アクティブ"になっていることを確認
          Amazon Q Developer_サブスクリプション_有効化後.png
      3. アクティベートされたメールが届くことを確認する
        Amazon Q Developer_有効化_メール.png

VSCodeでQ Developerを有効化

  1. VSCode⇒"拡張機能"⇒"Amazon Q"と検索⇒"インストール"をクリック
    VSCode_AmazonQ拡張機能有効化.png

  2. VSCodeのアクティビティバー(画面左)にQ Developerのアイコンが表示されていることを確認する
    VSCode_AmazonQ拡張機能有効化_アイコン.png

  3. Q Developerにサインイン

    1. Q Developerのアイコンをクリック

    2. "Company account"⇒"Continue"をクリック
      VSCode_AmazonQ_サインイン.png

    3. Identity Centerのサインイン情報を入力
      VSCode_AmazonQ_サインイン-2.png

    4. サインイン用のURLを開く
      VSCode_AmazonQ_サインイン-3.png

    5. サインイン用のユーザー名/パスワード/(設定している方はMFAも)を入力し、サインインする
      VSCode_AmazonQ_サインイン-4.png

    6. VSCodeでデータアクセスを許可する
      VSCode_AmazonQ_サインイン-5.png

    7. VSCodeの左下に以下が表示されればサインイン成功
      VSCode_AmazonQ_サインイン-7.png

  4. チャットでQ Developerと会話してみる

    1. Amazon Qアイコンをクリックし、チャットを入力する
      VSCode_AmazonQ_チャット-1.png

      • 入力したプロンプト(事前にtestフォルダは作成済み)
        こんにちは!
        testディレクトリに、terraformで、Bedrockアプリを作るコードを作成してください
        
    2. 問題なく動いてくれました
      VSCode_AmazonQ_チャット-2.png

      VSCode_AmazonQ_チャット-3.png

      VSCode_AmazonQ_チャット-4.png

Q DeveloperはOrganization内のAWSアカウントの垣根を越えられるのか

  • やりたかったことは以下です
    Organizations-AmaQ接続.drawio.png

  • 結果は以下です

    • 指示
      VSCode_AmazonQ_Organization-1.png

    • 回答
      VSCode_AmazonQ_Organization-2.png

  • AWSアカウントをリストしてくれという指示に対して、リストしてくれている...ように見えるのですが、これはIdentity Centerで設定しているAWSアカウントではなく、ローカルの"~/.aws/*"に保存されている認証情報を拾ってきているだけです

  • すなわち、やってほしかった、同時に複数のAWSアカウントを操作することはできないようです

結果をまとめてみると

  • Identity Centerに紐づけてQ Developerを有効化したとしても、そこに紐づくAWSアカウントの認証情報を取得できるものでは無いようです

    • すなわち、Q Developerのサインインという操作は、"aws sso get-role-credentials"のようなAWSアカウントのクレデンシャル(アクセスキー/シークレットアクセスキー/トークン)を入手する操作とは異なるようです
  • そのため、Q Developerを利用するためのサインインと、その後操作したいAWSアカウントの認証は分けて考える必要があります

  • これはデメリットかと一瞬思ったのですが、一転メリットであると考えています

  • すなわち、Q Developerは1つだけ契約しておいて、Organizationの内外の複数AWSアカウントの認証を移動しつつ操作させることができる、ということです

  • 図解すると以下の選択肢②が正しかったようです
    organization-範囲-答え.drawio.png

  • うまく組み合わせて、Q Developerを使いこなして行きましょう

ちなみに...

q Chat at Macも試してみたのですが、仕様はVSCodeの拡張機能版と変わりませんでした

おわりに

  • 以下についてまとめました
    • Q DeveloperとQ Developer Proについて
    • Q DeveloperをOrganization/Identity Center環境での有効化手順
    • VSCodeでのQ Developerの有効化手順
    • Organization/Identity Center環境下でのQ Developerが操作できるAWSアカウントの範囲
  • 使ってみればそりゃあそうだよな...となるのですが、Organization/Identity Center環境では、同時に複数のAWSアカウントに対して操作することは残念ながらできませんでした
  • AWSアカウントのセキュリティの境界がしっかりしている、ということを知ることができました

参考

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?