Create CI user (AWS)
3557 ワード
Terraformベースのインフラストラクチャを自動化するパイプラインを構築しています.
CIのみの(最小ポリシー)AWSユーザを生成する必要があります.
最初にawsに加入した場合、そのアカウントはrootユーザーです.
また、rootユーザーは使用しないほうがいいです.
では、管理に使用するiamユーザーは何ですか?
(== administrative user)
スーパーユーザー(アカウント)ではなく新しいユーザーを作成した後、
このアカウントには、管理者権限を持つポリシーが付与されます.
その後rootユーザーは使用されなくなりました.
新しいアプリケーションのポリシー(ポリシー)には、次のものが含まれます.
以下のとおりです.
AWS CIユーザーが作成されました.
Gitlab上でCI操作を実行する場合、
環境変数にはAWSDIユーザー情報が必要です.
左側のsettingsをクリックし、
下図では見えませんが、左のバーGeneralを下にスクロールすると
CI/CDサブタブが再び表示されます.
そのラベルをクリックします.
次に、3つの環境変数を追加する作業を行います.
AWS ECRで作成したリポジトリのURIをコピーします.
gitlab settings->CI/CD->環境変数に追加します.
CIのみの(最小ポリシー)AWSユーザを生成する必要があります.
1.管理者のiamユーザーとしてログイン
最初にawsに加入した場合、そのアカウントはrootユーザーです.
また、rootユーザーは使用しないほうがいいです.
では、管理に使用するiamユーザーは何ですか?
(== administrative user)
スーパーユーザー(アカウント)ではなく新しいユーザーを作成した後、
このアカウントには、管理者権限を持つポリシーが付与されます.
その後rootユーザーは使用されなくなりました.
CIプレイヤーを作成する時だ。
新しいアプリケーションのポリシー(ポリシー)には、次のものが含まれます.
以下のとおりです.
1.ポリシーの作成
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TerraformRequiredPermissions",
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ec2:*"
],
"Resource": "*"
},
{
"Sid": "AllowListS3StateBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::info-share-tfstate"
},
{
"Sid": "AllowS3StateBucketAccess",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::info-share-tfstate/*"
},
{
"Sid": "LimitEC2Size",
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"ForAnyValue:StringNotLike": {
"ec2:InstanceType": [
"t2.micro"
]
}
}
},
{
"Sid": "AllowECRAccess",
"Effect": "Allow",
"Action": [
"ecr:*"
],
"Resource": "arn:aws:ecr:us-east-1:*:repository/recipe-app-api-devops"
},
{
"Sid": "AllowStateLockingAccess",
"Effect": "Allow",
"Action": [
"dynamodb:PutItem",
"dynamodb:DeleteItem",
"dynamodb:GetItem"
],
"Resource": [
"arn:aws:dynamodb:*:*:table/info-share-tf-state-lock"
]
}
]
}
2.ユーザーの作成
2.gitlabの設定
AWS CIユーザーが作成されました.
Gitlab上でCI操作を実行する場合、
環境変数にはAWSDIユーザー情報が必要です.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
ECR_REPO
gitlabプロジェクトに移動します.左側のsettingsをクリックし、
下図では見えませんが、左のバーGeneralを下にスクロールすると
CI/CDサブタブが再び表示されます.
そのラベルをクリックします.
次に、3つの環境変数を追加する作業を行います.
AWS ECRで作成したリポジトリのURIをコピーします.
gitlab settings->CI/CD->環境変数に追加します.
Reference
この問題について(Create CI user (AWS)), 我々は、より多くの情報をここで見つけました https://velog.io/@khh180cm/Create-CI-user-AWSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol