LoginSignup
1
1

【AWS】検証!Amazon CodeCatalystのDev Environmentで作成したコンピューティングリソースって中身どうなっているん?

Last updated at Posted at 2024-06-03

はじめに

この記事ではAmazon CodeCatalystのDev Environmentで作成したコンピューティングリソースを調査します。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。

CodeCatalystのDev Environmentで作成したコンピューティングリソースってどうなっているん

前回と前々回に渡り、CodeCatalystについて書きました。その際に疑問に思うこととして「Amazon CodeCatalyst(以下、CodeCatalyst)のIAMはどうなっているのか」というところです。

とくに前回のDev EnvironmentについてはCodeCatalystでEC2を構築しているように見えるため、「IAMロールのようなものがあるのではないか」と考えられます。

そこで今回はCodeCatalystのDev Environmentで作成したコンピューティングリソースの中身を調べたいと思います。

検証環境は以下の記事を参考に作成するため、一部省略します。なお、今回はAWS Builder IDを使ってセットアップします。

検証環境の作成

では、実際に環境を構築してやっていきたいと思います。

Dev EnvironmentsでVisual Studio Codeの開発環境を構築する

以下のURLにアクセスしてsource-repositoriesを開きます。
{スペース名}{プロジェクト名}は任意の名前

https://codecatalyst.aws/spaces/{スペース名}/projects/{プロジェクト名}/source-repositories

Create Dev Environmentの右にある逆三角形をクリックします。

Screenshot 2024-05-30 at 13.04.56.png

いくつか環境が選択できますが、ここではVisual Studio Codeを選択します。

Screenshot 2024-05-30 at 13.05.25.png

開発環境の設定と起動

開発環境を選択すると設定画面に遷移します。ブランチ、エイリアス、VPCコネクションなどの設定がありますが、ここではブランチのみ設定してCreateをクリックします。

Dev Environment Configurationの設定はデフォルトのSmall 2vCPU, 4GB RAMで進めます。

Screenshot 2024-05-30 at 13.05.38.png

Createを実行するとローカルにインストールされているVisual Studio Codeから通知が届きます。Open Visual Studio Code.appをクリックします。

Screenshot 2024-05-30 at 13.06.44.png

Visual StudioCodeの画面でポップアップが表示されるのでOpenをクリックします。

Screenshot 2024-05-30 at 13.07.13.png

これでAWS上にVisual Studio Codeを起動してローカルのVisual Studio Codeから接続できました。

接続確認

ターミナルを起動してuname -aを実行してみましょう。
まずはターミナルを起動します。TerminalをクリックしてNew Terminalを選択します。

Screenshot 2024-05-30 at 13.20.34.png

新しいターミナルで以下のコマンドを実行します。

uname -a

実行結果

Linux ip-10-130-38-171.us-west-2.compute.internal 6.1.90-99.173.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May  7 11:11:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

AWS上で起動しているターミナルであることが確認できました。

Dev Environmentで作成したコンピューティングを調査してみる

Dev Environmentで作成したコンピューティングリソースにはいくつかの疑問が浮かびます。

  • IAMはどうなっているのかAWSサービスにはアクセスできるのか
  • パブリックIPアドレスはあるのかあるとしたらどう調べるのか
  • メタデータはどうなっているのか

気になるので調査してみましょう。

IAMはどうなっているのかAWSサービスにはアクセスできるのか

※結論いうとセットアップ時ではできないです。

仮にもAWSのサービスなのでAWSで作成したリソースということは何かしらのロールを持っているに違いないと思います。

AWS CLIで検証してみます。まずはAWS CLIのプロファイルを持っているのかを確認します。

aws configure list-profiles

実行結果

codecatalyst

codecatalystという名前のプロファイルを持っているそうです。中身を確認するため、以下のコマンドを実行してみます。

aws configure list --profile codecatalyst

実行結果

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile             codecatalyst           manual    --profile
access_key                <not set>             None    None
access_key                <not set>             None    None
    region                us-west-2              env    ['AWS_REGION', 'AWS_DEFAULT_REGION']

access_keyaccess_keyが存在しないため、AWSサービスへのアクセスはできません。

そもそもCodeCatalystをセットアップした時にアカウント連携をしていますが、アカウント内のリソースを連携していません。

※でもそうするとCodeCatalystのリソース展開はどのIAMが担当するんだろうか?

パブリックIPアドレスはあるのかあるとしたらどう調べるのか

※結論いうとパブリックIPアドレスはあります。メタデータを使って調査できます。

メタデータはどうなっているのか

メタデータを使って調査していきましょう。参考:メタデータの調べ方

ではまず、基本となる最初のコマンドを実行します。

TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/

実行結果

ami-id
ami-launch-index
ami-manifest-path
autoscaling/
block-device-mapping/
events/
hostname
iam/
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
reservation-id
security-groups
services

パブリックIPv4アドレスを調べる

※結論いうとパブリックIPv4アドレスを持っています。

パブリックIPv4アドレスを持っているかを調査します。

curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-ipv4

実行結果

52.32.128.109

パブリックIPがあるということはおそらくホスト名もあるだろうということでホスト名を調べます。

curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-hostname

実行結果

ec2-52-32-128-109.us-west-2.compute.amazonaws.com

セキュリティグループ

最後に、もう一つ気になるところとしてAWSの環境に接続しているということはそこにはセキュリティもあるはず!ということでセキュリティグループも調べます。以下のコマンドを実行します。

curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/security-groups

実行結果

moontide-compute-stack-prod-us-west-2-cell-0-ecs-MoontideNoInboundSecurityGroupDF8C19F8-H9NGSEPKY6FC

実行結果で表示されたセキュリティグループはAWS マネジメントコンソールでは確認できませんでした。

まとめ

まだまだ謎が多いCodeCatalystという感じでこのコンピューティングリソースにはどういう権限があるのかよくわかりませんでした。
しかし、メタデータからさまざまな情報を探れますのでまだまだ調査のしがいがありそうです。

1
1
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
1
1