AWS CLI 도구에서 AWS 계정 번호를 얻는 빠른 방법은 무엇입니까?
내 계좌 번호를 빠르게 가져 오는 방법을 찾고 있었는데, 원래 사용 aws iam get-account-authorization-details --max-items 1하려고 생각 했지만 이렇게하는 데 몇 가지 문제가 있습니다. 계정 출처를 교차하지 않는 방법이 있습니까?
다음을 사용하여 Secure Token Service 하위 명령 에서 계정 번호를 가져올 수 있습니다 get-caller-identity.
aws sts get-caller-identity --output text --query 'Account'
AWS PowerShell CLI에 대한 제 관련 답변에서 계정 ID는 생성 한 리소스 Arn의 일부이며 자동으로 생성되는 리소스입니다. 일부 리소스는 사용자를 OwnerId로도 나열합니다.
기본 보안 그룹은 예약 된 보안 그룹으로 각 리전의 기본 VPC에 자동으로 생성됩니다. 로부터 문서 :
기본 보안 그룹은 삭제할 수 없습니다. EC2-Classic 기본 보안 그룹을 삭제하려고하면 다음 오류가 발생합니다. Client.InvalidGroup.Reserved : 보안 그룹 'default'가 예약되어 있습니다. VPC 기본 보안 그룹을 삭제하려고하면 다음 오류가 표시됩니다. Client.CannotDelete : 지정된 그룹 : "sg-51530134"이름 : "default"는 사용자가 삭제할 수 없습니다.
따라서 EC2 classic에 있거나 기본 VPC가있는 한 계정 ID를 검색 할 수있는 신뢰할 수있는 후보가됩니다 (*없는 경우 엣지 사례 참조).
예:
aws ec2 describe-security-groups \
--group-names 'Default' \
--query 'SecurityGroups[0].OwnerId' \
--output text
이것은 --query이 요청의 첫 번째 결과에 대해 출력을 "소유자 ID"로 필터링하는 데 사용 --output하고 계정 ID를 일반 텍스트로 출력하는 데 사용 합니다.
123456781234
에지 케이스 :
(@kenchew에게 감사드립니다) 지정된 리전에서 기본 VPC를 삭제 한 경우이 보안 그룹이 더 이상 존재하지 않으므로 다음 대체 솔루션 중 하나를 사용해야합니다.
추가 읽기 :
- AWS EC2 설명서 : 기본 보안 그룹
- AWS CLI 설명서 : aws ec2 describe-security-groups
- AWS Command Line Interface에서 명령 출력 제어
위임 된 역할로 실행되는 서버에서 실행중인 경우을 호출 할 수 없습니다 aws sts get-caller-identity. 또한 describe-security-groups항상 --group-names필터를 사용할 수는 없으므로 (기본 VPC가없는 경우 작동하지 않음) 첫 번째 보안 그룹을 선택하기 만하면됩니다. 어떤 종류의 인증을 사용하는지 또는 어떤 종류의 VPC를 가지고 있는지에 관계없이 이것이 가장 신뢰할 수있는 것으로 나타났습니다.
aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text
aws iam get-user [--profile <profile>]이것이 작동하려면 IAM 셀프 서비스 역할 만 필요하므로 제가 가장 좋아하는 방법은 사용 하는 것입니다.
'Programing' 카테고리의 다른 글
| R, xlsx 또는 xls로 Excel 파일 가져 오기 (0) | 2020.09.18 |
|---|---|
| 클릭시 확인 대화 상자-AngularJS (0) | 2020.09.18 |
| click () 대신 jQuery on ()을 사용하는 이유 (0) | 2020.09.18 |
| pandas.DataFrame을 뒤집는 올바른 방법? (0) | 2020.09.18 |
| ProcessBuilder : 기본 스레드를 차단하지 않고 시작된 프로세스의 stdout 및 stderr 전달 (0) | 2020.09.18 |