0.はじめに
AWS CodeCommit の特定のリポジトリに対して、
Git の基本操作だけを行えるユーザーを作成してみました。
権限設定の主な条件は、以下。
- Git の基本的なコマンドを実行出来る。
- リポジトリの作成や削除は行えない。
- ブランチの作成や削除は行えない。
1.AWS IAM ポリシーの作成
-
AWS IAM のコンソールへアクセス。
-
ダッシュボードの「ポリシーの作成」ボタンを押下。
-
「Policy Generator」の「選択」ボタンを押下。
-
以下の手順で項目を入力し、「次のステップ」ボタンを押下。
- 効果 : 許可
- 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
- ※「ステートメントを追加」ボタンを押下
-
-
以下の項目を入力し、「ポリシーの作成」ボタンを押下。
- ポリシー名 : 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" ] } ] }
-
IAM ポリシーの一覧で、作成されたポリシーを確認します。
* ![FireShot Capture 195 - IAM Management Console_ - https___console.aws.amazon.com_iam_home.png](https://qiita-image-store.s3.amazonaws.com/0/161939/a2560343-cdcc-7e92-8708-42dbf1532e7d.png)
2.AWS IAM ユーザーへのポリシーの適用
- AWS IAM のコンソールへアクセス。
- 「ユーザーを追加」ボタンを押下。
- 以下の項目を入力し、「次のステップ:アクセス権限」ボタンを押下。
- 「既存のポリシーを直接アタッチ」を選択後、作成した IAM ポリシーを選択し、「次のステップ:確認」ボタンを押下する。
- 設定内容を確認し、「ユーザーの作成」ボタンを押下する。
- 作成したユーザーの内容(アクセスキー ID、シークレットアクセスキー)を確認し、保存しておきます。
3.AWS CodeCommit の HTTPS Git 認証情報のの作成
- 作成したユーザーの概要画面を開き、「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」の「生成」ボタンを押下。
- 「生成された Git 認証情報」ダイアログが表示されるので、「証明書のダウンロード」ボタンを押下し、「リポジトリのクローンを作成するステップ」の 1 の記載の通りに、コンピュータ上の安全な場所に保存。
- あとは、ターミナルを開き 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 絡みのものです。
ご参考までに。