11.3. 시크릿 및 IAM 액세스 정책 생성
다음 명령을 실행하여 Secrets Manager에 보안을 생성합니다.
$ SECRET_ARN=$(aws --region "$REGION" secretsmanager create-secret \ --name MySecret --secret-string \ '{"username":"shadowman", "password":"hunter2"}' \ --query ARN --output text); echo $SECRET_ARN
다음 명령을 실행하여 IAM 액세스 정책 문서를 생성합니다.
$ cat << EOF > policy.json { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": ["$SECRET_ARN"] }] } EOF
다음 명령을 실행하여 IAM 액세스 정책을 생성합니다.
$ POLICY_ARN=$(aws --region "$REGION" --query Policy.Arn \ --output text iam create-policy \ --policy-name openshift-access-to-mysecret-policy \ --policy-document file://policy.json); echo $POLICY_ARN
다음 명령을 실행하여 IAM 역할 신뢰 정책 문서를 생성합니다.
참고신뢰 정책은 이 프로세스에서 나중에 생성하는 네임스페이스의 기본 서비스 계정에 잠겨 있습니다.
$ cat <<EOF > trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "StringEquals" : { "${OIDC_ENDPOINT}:sub": ["system:serviceaccount:my-application:default"] } }, "Principal": { "Federated": "arn:aws:iam::$AWS_ACCOUNT_ID:oidc-provider/${OIDC_ENDPOINT}" }, "Action": "sts:AssumeRoleWithWebIdentity" } ] } EOF
다음 명령을 실행하여 IAM 역할을 생성합니다.
$ ROLE_ARN=$(aws iam create-role --role-name openshift-access-to-mysecret \ --assume-role-policy-document file://trust-policy.json \ --query Role.Arn --output text); echo $ROLE_ARN
다음 명령을 실행하여 정책에 역할을 연결합니다.
$ aws iam attach-role-policy --role-name openshift-access-to-mysecret \ --policy-arn $POLICY_ARN