OIDC 지원!영구적인 AWS Access Key를 취소할 수 있습니다!
10101 단어 AWSCircleCIOIDCOpenIdConnecttech
이렇게 하면 AWS에서 발행하는 영구적인 Access 키를 취소할 수 있습니다!
이용 방법
1. CircleaCI의 Context 만들기 Organization ID 확인
1.1 Context 제작
이번을 위해서 AWS용 Context를 만들자.
환경 변수 설정은 나중에 수행됩니다.
1.2 Organization ID 확인
CircleaCI의 Organization ID는 https://app.circleci.com/의 Organization Settings>Contexts에서 얻을 수 있습니다.
이전에 Context를 만들지 않은 경우 Organization ID가 표시되지 않습니다.
▶Organization ID 유지
▶ context를 한 번도 만들지 않은 상태에서 Organization ID를 표시하지 않음
2. OIDC identity provider 만들기
탐색 패널의 ID 공급자(Identity providers)에 액세스합니다.
값
<organization-id>
은 1입니다.상자의 ID입니다.)공급자 유형(Provider type)
OpenID Connect
공급자 URL(Provider URL)
IAM 콘솔
개체
3. CircleaCI에 사용되는 IAM Role 만들기
(IAM 스크롤 막대를 만드는 방법은 자세히 언급되지 않았습니다.)
IAM 역할에 설정된 신뢰할 수 있는 엔티티는 웹 ID(Web Identity)를 선택하고, ID 공급자는 "2. OIDC identity provider 만들기"를 선택하여 ID 공급자를 만듭니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<AWS account id>:oidc-provider/oidc.circleci.com/org/<organization-id>"
},
"Action": "sts:AssumeRoleWithWebIdentity"
}
]
}
제작된 롤의 ARN은 잠시 후 사용하기 때문에 컨트롤하는 게 좋다.4. 1.1 제작된 Context에서 환경 변수 설정
Name
Value
AWS_REGION
<사용 영역>(예: ap-northeast-1)
AWS_IAM_ROLE_ARN
arn:aws:iam::
5. .circleci/config.만들다
다음 기술을 통해 AWS 인증이 가능하고
aws sts get-caller-identity
에서 AWS의AccentID 등을 취득할 수 있다.https://oidc.circleci.com/org/ 이것은 필자가 즉석에서 만든 것이다.circleaci/aws-Colorb에서는 지원받을 수 있으나 지원될 때까지 잠정 대책으로 투박한 orb를 만들었다.(문서를 전혀 쓰지 못해서 죄송합니다.)
※ 직접 사용해 보세요.
version: 2.1
orbs:
aws-cli: circleci/aws-[email protected]
aws-configure-with-oidc: l060ki/aws-configure-with-[email protected]
jobs:
build:
docker:
- image: cimg/python:3.10
environment:
AWS_REGION: ap-northeast-1
steps:
- aws-configure-with-oidc/assume-role:
role-arn: AWS_IAM_ROLE_ARN # context に設定した IAM Role の ENV の名前
- run:
name:
command: |
aws sts get-caller-identity
workflows:
build-and-test:
jobs:
- build:
context:
- aws-oidc-deploy
▶ 실행 결과덤
Assium Role이 특정 Project(Repository)에만 허용되는 경우
참조l060ki/[email protected]에서 알 수 있듯이
sub
에는 프로젝트-id가 포함되어 있다.이 기능을 사용하면 Assume Role이 특정 프로젝트의 가능성만 얻으려면 다음과 같은 신뢰 정책 수정을 통해 실현할 수 있다.{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<AWS account id>:oidc-provider/oidc.circleci.com/org/<organization-id>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"oidc.circleci.com/org/<organization-id>:sub": [
"org/<organization-id>/project/<project-id>/*"
]
}
}
}
]
}
최후
CircleaCI는 OIDC를 지원하므로 AWS IAM User의 Access Key를 폐기할 수 있으므로 키 변환이 필요하지 않습니다.
Reference
이 문제에 관하여(OIDC 지원!영구적인 AWS Access Key를 취소할 수 있습니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/1060ki/articles/3c17676f75a075텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)