AWSGitIaC

AWS EC2からCodeCommitのリポジトリをCloneする

AWS

EC2インスタンスからCodeCommitのリポジトリをCloneする方法のメモです。

通常のCodeCommitのアクセスにはIAMユーザで認証情報を入力する必要があります。

ただし、CloudFormationなどでCodeCommitを利用する際にユーザ名やパスワードを利用するのは大変です。

そこで、IAMユーザの情報を使わずにCodeCommit上のリポジトリからcloneやpushなどの操作を行う方法についてメモします。

1. IAMユーザの情報を使わずにCodeCommitを操作する

対応としては、「AWS CLIの認証情報ヘルパー」というものを使用することでEC2インスタンスに割り当てられているRoleを使ってアクセスすることができます。

Using IAM with CodeCommit: Git credentials, SSH keys, and AWS access keys - AWS Identity and Access Management
Use Git credentials (static user name and password) or SSH keys (public and private key pairs) in AWS Identity and Access Management (IAM) for authentication wi...

2. 今回の構成

図にするとこんな感じになります。

3. Roleへ割り当てるPolicyの作成

EC2に割り当てているRoleへCodeCommitへのアクセス許可するポリシーを割り当てます。

例としては以下のようなCloudFormation Templateになります。

Ec2InstanceBaseRoleはEC2に割り当てられているRoleにしてください。

  CodeCommitPolicy:
    Type: 'AWS::IAM::Policy'
    Properties:
      PolicyName: "aws-infra-codecommit-policy"
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Action:
              - 'codecommit:GitPull'
              - 'codecommit:GitPush'
            Resource: !Sub "arn:aws:codecommit:ap-northeast-1:${AWS::AccountId}:<リポジトリ名>"
      Roles:
        - !Ref Ec2InstanceBaseRole

4. AWS CLIの認証情報ヘルパーを設定

以下のコマンドを実行して指定したCodeCommit上のリポジトリが認証を聞かれることなくCLoneができることを確認します。

CloudFormationのUserDataを使う場合には、HOMEの環境変数を指定する必要がありますので注意してください。

export HOME=/root
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/<リポジトリ名>

5. まとめ

想定した通りにEC2インスタンスからCodeCommitのリポジトリをCloneすることができました。 これをCloudFormtionと組み合わせることで効率的なセットアップが行えますね。

AWSを効率的に学習する方法

私がAWSを学習するために使った学習材料は「Udemy」だけです。

まずは座学を行ってAWSプラクティショナー もしくは ソリューションアーキテクト試験を取得することを目標にしました。

具体的にはUdemyで以下の2つの商材を購入して学習しました。AWS公式が提供している模擬試験も受けていません。

Udemyは世界最大級のオンライン学習プラットフォームで、世界中の学びたい人と教えたい人をオンラインでつなぐサービスです。 Udemyは米国Udemy,Inc.が運営するプラットフォームで日本ではベネッセが事業パートナーとして協業をしています。 C2C(consumer to consumer)により生まれる豊富で多彩な講座により個人の学習ニーズに応じた学びをみつけることができます。

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)

今回は以上となります。

コメント

タイトルとURLをコピーしました