LoginSignup
12
13

More than 5 years have passed since last update.

AWS CodeCommit の特定リポジトリへの専用ユーザーを作成してみる

Posted at

0.はじめに

AWS CodeCommit の特定のリポジトリに対して、
Git の基本操作だけを行えるユーザーを作成してみました。

権限設定の主な条件は、以下。

  • Git の基本的なコマンドを実行出来る。
  • リポジトリの作成や削除は行えない。
  • ブランチの作成や削除は行えない。

1.AWS IAM ポリシーの作成

  1. AWS IAM のコンソールへアクセス。
  2. ダッシュボードの「ポリシーの作成」ボタンを押下。

    • FireShot Capture 189 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

  3. 「Policy Generator」の「選択」ボタンを押下。

    • FireShot Capture 190 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

  4. 以下の手順で項目を入力し、「次のステップ」ボタンを押下。
    • 効果 : 許可
    • AWS サービス : AWS CodeCommit
    • アクション :
      • codecommit:ListRepositories
    • Amazon リソースネーム(ARN) : *
    • ※「ステートメントを追加」ボタンを押下

    • 効果 : 許可
    • AWS サービス : AWS CodeCommit
    • アクション :
      • codecommit:BatchGetRepositories
      • codecommit:GetBlob
      • codecommit:GetBranch
      • codecommit:GetCommit
      • codecommit:GetDifferences
      • codecommit:GetObjectIdentifier
      • codecommit:GetReferences
      • codecommit:GetRepository
      • codecommit:GetRepositoryTriggers
      • codecommit:GetTree
      • codecommit:GitPull
      • codecommit:GitPush
      • codecommit:ListBranches
      • codecommit:ListRepositories
    • Amazon リソースネーム(ARN) : ※許可するリポジトリの ARN
      • arn:aws:codecommit:ap-northeast-1:xxxxxxxxxxxx:XXXXXXXX
    • ※「ステートメントを追加」ボタンを押下

    • FireShot Capture 192 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

  5. 以下の項目を入力し、「ポリシーの作成」ボタンを押下。

    • ポリシー名 : GSCodeCommit_Sample_Developers_Access ※ 任意
    • 説明 : ※ 任意
    • ポリシードキュメント : ※ 以下の様な json データが表示されているはずです。
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Stmt*************",
                "Effect": "Allow",
                "Action": [
                    "codecommit:ListRepositories"
                ],
                "Resource": [
                    "*"
                ]
            },
            {
                "Sid": "Stmt*************",
                "Effect": "Allow",
                "Action": [
                    "codecommit:BatchGetRepositories",
                    "codecommit:GetBlob",
                    "codecommit:GetBranch",
                    "codecommit:GetCommit",
                    "codecommit:GetDifferences",
                    "codecommit:GetObjectIdentifier",
                    "codecommit:GetReferences",
                    "codecommit:GetRepository",
                    "codecommit:GetRepositoryTriggers",
                    "codecommit:GetTree",
                    "codecommit:GitPull",
                    "codecommit:GitPush",
                    "codecommit:ListBranches",
                    "codecommit:ListRepositories"
                ],
                "Resource": [
                    "arn:aws:codecommit:ap-northeast-1:xxxxxxxxxxxx:XXXXXXXX"
                ]
            }
        ]
    }
    
    • FireShot Capture 194 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

  6. IAM ポリシーの一覧で、作成されたポリシーを確認します。

    • FireShot Capture 195 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

2.AWS IAM ユーザーへのポリシーの適用

  1. AWS IAM のコンソールへアクセス。
  2. 「ユーザーを追加」ボタンを押下。

    • FireShot Capture 196 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png

  3. 以下の項目を入力し、「次のステップ:アクセス権限」ボタンを押下。
    • ユーザー名 : ※ 任意
    • アクセスの種類 :
      • プログラムによるアクセス : ☑︎
      • AWS マネジメントコンソールへのアクセス : □

    • FireShot Capture 197 - IAM Management Console_ - https___console.aws.amazon.com_iam.png

  4. 「既存のポリシーを直接アタッチ」を選択後、作成した IAM ポリシーを選択し、「次のステップ:確認」ボタンを押下する。

    • FireShot Capture 199 - IAM Management Console_ - https___console.aws.amazon.com_iam.png

  5. 設定内容を確認し、「ユーザーの作成」ボタンを押下する。

    • FireShot Capture 202 - IAM Management Console_ - https___console.aws.amazon.com_iam.png

  6. 作成したユーザーの内容(アクセスキー ID、シークレットアクセスキー)を確認し、保存しておきます。

    • FireShot Capture 203 - IAM Management Console_ - https___console.aws.amazon.com_iam.png

3.AWS CodeCommit の HTTPS Git 認証情報のの作成

  1. 作成したユーザーの概要画面を開き、「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」の「生成」ボタンを押下。

    • FireShot Capture 063 - IAM Management Con_ - https___console.aws.amazon.com_iam_home#_users_y.uekama.png

  2. 「生成された Git 認証情報」ダイアログが表示されるので、「証明書のダウンロード」ボタンを押下し、「リポジトリのクローンを作成するステップ」の 1 の記載の通りに、コンピュータ上の安全な場所に保存。

    • FireShot Capture 067 - IAM Management Con_ - https___console.aws.amazon.com_iam_home#_users_y.uekama.png

  3. あとは、ターミナルを開き git clone などを行います。

    • git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/********
      • ※ユーザー名とパスワードを求められたら、保存した Git 認証情報を対応するフィールドに入力。

99.ハマりポイント

  • 特にありませんが、今回の IAM ポリシーには、AWS CodeCommit 全体のリソースへの権限と特定のリソースへの権限と設定しましたが、その方が後々便利かなと思いそうしました。不要であれば、特定のリポジトリへの権限だけでいいと思います。

  • あと、ユーザーに直接 IAM ポリシーをアタッチしていますが、グループにアタッチして、そのグループに所属させるというやり方の方が便利かもしれません。

XX.まとめ

外部の方とのコードのやり取りをどうしようかな、と思っていて、
今回、AWS CodeCommit を使ってみました。

CodeCommit も Git もあまり詳しくないので、
もしかしたら、権限設定に誤りがあるかもしれません…。

その際は、
遠慮なくコメント下さい。

よろしくお願いします。

こちら、
以前投稿した、AWS CodeCommit 絡みのものです。
ご参考までに。

12
13
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
12
13